Fix nullability issues that AOSP is complaining about now
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
index 531ce03..861598b 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreFilesFragment.kt
@@ -24,14 +24,14 @@
): View {
val v = super.onCreateView(inflater, container, savedInstanceState)
- val topStub: ViewStub = v.findViewById(R.id.topStub)
+ val topStub: ViewStub = v.requireViewById(R.id.topStub)
topStub.layoutResource = R.layout.header_snapshots
topStub.inflate()
- val bottomStub: ViewStub = v.findViewById(R.id.bottomStub)
+ val bottomStub: ViewStub = v.requireViewById(R.id.bottomStub)
bottomStub.layoutResource = R.layout.footer_snapshots
val footer = bottomStub.inflate()
- val skipView: TextView = footer.findViewById(R.id.skipView)
+ val skipView: TextView = footer.requireViewById(R.id.skipView)
skipView.setOnClickListener {
requireActivity().apply {
setResult(RESULT_OK)
@@ -54,7 +54,7 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_files_started, container, false)
- val button: Button = v.findViewById(R.id.button)
+ val button: Button = v.requireViewById(R.id.button)
button.setOnClickListener {
requireActivity().apply {
setResult(RESULT_OK)
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
index 17bf9fc..472776d 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreProgressFragment.kt
@@ -37,11 +37,11 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_progress, container, false)
- progressBar = v.findViewById(R.id.progressBar)
- titleView = v.findViewById(R.id.titleView)
- backupNameView = v.findViewById(R.id.backupNameView)
- appList = v.findViewById(R.id.appList)
- button = v.findViewById(R.id.button)
+ progressBar = v.requireViewById(R.id.progressBar)
+ titleView = v.requireViewById(R.id.titleView)
+ backupNameView = v.requireViewById(R.id.backupNameView)
+ appList = v.requireViewById(R.id.appList)
+ button = v.requireViewById(R.id.button)
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetAdapter.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetAdapter.kt
index f7e7cbb..f55ccbe 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetAdapter.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetAdapter.kt
@@ -31,8 +31,8 @@
inner class RestoreSetViewHolder(private val v: View) : ViewHolder(v) {
- private val titleView = v.findViewById<TextView>(R.id.titleView)
- private val subtitleView = v.findViewById<TextView>(R.id.subtitleView)
+ private val titleView = v.requireViewById<TextView>(R.id.titleView)
+ private val subtitleView = v.requireViewById<TextView>(R.id.subtitleView)
internal fun bind(item: RestorableBackup) {
v.setOnClickListener { listener.onRestorableBackupClicked(item) }
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
index 6959565..14c248a 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/RestoreSetFragment.kt
@@ -30,10 +30,10 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_set, container, false)
- listView = v.findViewById(R.id.listView)
- progressBar = v.findViewById(R.id.progressBar)
- errorView = v.findViewById(R.id.errorView)
- skipView = v.findViewById(R.id.skipView)
+ listView = v.requireViewById(R.id.listView)
+ progressBar = v.requireViewById(R.id.progressBar)
+ errorView = v.requireViewById(R.id.errorView)
+ skipView = v.requireViewById(R.id.skipView)
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/install/ApkRestore.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/install/ApkRestore.kt
index c469f00..a553ce8 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/install/ApkRestore.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/install/ApkRestore.kt
@@ -129,13 +129,13 @@
}
// get app icon and label (name)
- val appInfo = packageInfo.applicationInfo.apply {
+ val appInfo = packageInfo.applicationInfo?.apply {
// set APK paths before, so package manager can find it for icon extraction
sourceDir = cachedApk.absolutePath
publicSourceDir = cachedApk.absolutePath
}
- val icon = appInfo.loadIcon(pm)
- val name = pm.getApplicationLabel(appInfo)
+ val icon = appInfo?.loadIcon(pm)
+ val name = appInfo?.let { pm.getApplicationLabel(it) }
installResult.update(packageName) { result ->
result.copy(state = IN_PROGRESS, name = name, icon = icon)
diff --git a/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
index 62948cb..df46838 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/restore/install/InstallProgressFragment.kt
@@ -41,11 +41,11 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_restore_progress, container, false)
- progressBar = v.findViewById(R.id.progressBar)
- titleView = v.findViewById(R.id.titleView)
- backupNameView = v.findViewById(R.id.backupNameView)
- appList = v.findViewById(R.id.appList)
- button = v.findViewById(R.id.button)
+ progressBar = v.requireViewById(R.id.progressBar)
+ titleView = v.requireViewById(R.id.titleView)
+ backupNameView = v.requireViewById(R.id.backupNameView)
+ appList = v.requireViewById(R.id.appList)
+ button = v.requireViewById(R.id.button)
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/AboutDialogFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/AboutDialogFragment.kt
index 81738a2..ea56692 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/AboutDialogFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/AboutDialogFragment.kt
@@ -27,12 +27,12 @@
val v: View = inflater.inflate(R.layout.fragment_about, container, false)
val versionName = packageService.getVersionName(requireContext().packageName) ?: "???"
- val versionView: TextView = v.findViewById(R.id.versionView)
+ val versionView: TextView = v.requireViewById(R.id.versionView)
versionView.text = getString(R.string.about_version, versionName)
val linkMovementMethod = LinkMovementMethod.getInstance()
- val contributorsView = v.findViewById<TextView>(R.id.contributorView)
- val orgsView = v.findViewById<TextView>(R.id.about_contributing_organizations_content)
+ val contributorsView = v.requireViewById<TextView>(R.id.contributorView)
+ val orgsView = v.requireViewById<TextView>(R.id.about_contributing_organizations_content)
contributorsView.movementMethod = linkMovementMethod
orgsView.movementMethod = linkMovementMethod
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/AppStatusFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/AppStatusFragment.kt
index 85c1898..bb678e8 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/AppStatusFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/AppStatusFragment.kt
@@ -39,8 +39,8 @@
setHasOptionsMenu(true)
val v: View = inflater.inflate(R.layout.fragment_app_status, container, false)
- progressBar = v.findViewById(R.id.progressBar)
- list = v.findViewById(R.id.list)
+ progressBar = v.requireViewById(R.id.progressBar)
+ list = v.requireViewById(R.id.list)
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsActivity.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsActivity.kt
index 68194e2..11fc6b5 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsActivity.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsActivity.kt
@@ -61,7 +61,7 @@
pref: Preference,
): Boolean {
val fragment =
- supportFragmentManager.fragmentFactory.instantiate(classLoader, pref.fragment)
+ supportFragmentManager.fragmentFactory.instantiate(classLoader, pref.fragment!!)
if (pref.key == PREF_BACKUP_RECOVERY_CODE) fragment.arguments = Bundle().apply {
putBoolean(ARG_FOR_NEW_CODE, false)
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
index 38aaf80..8115c53 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
@@ -259,10 +259,14 @@
// warn if battery optimization is active
// we don't bother with yet another dialog, because the ROM should handle it
val context = requireContext()
- val powerManager = context.getSystemService(PowerManager::class.java)
- if (!powerManager.isIgnoringBatteryOptimizations(context.packageName)) {
- Toast.makeText(context, R.string.settings_backup_storage_battery_optimization,
- LENGTH_LONG).show()
+ val powerManager: PowerManager? = context.getSystemService(PowerManager::class.java)
+ if (powerManager != null &&
+ !powerManager.isIgnoringBatteryOptimizations(context.packageName)
+ ) {
+ Toast.makeText(
+ context, R.string.settings_backup_storage_battery_optimization,
+ LENGTH_LONG
+ ).show()
}
viewModel.enableStorageBackup()
backupStorage.isChecked = true
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsManager.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsManager.kt
index b7ab7c6..47176a0 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsManager.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsManager.kt
@@ -191,7 +191,7 @@
}
private fun hasUnmeteredInternet(context: Context): Boolean {
- val cm = context.getSystemService(ConnectivityManager::class.java)
+ val cm = context.getSystemService(ConnectivityManager::class.java) ?: return false
val isMetered = cm.isActiveNetworkMetered
val capabilities = cm.getNetworkCapabilities(cm.activeNetwork) ?: return false
return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && !isMetered
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
index cf1b338..f56faa2 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
@@ -60,7 +60,8 @@
) : RequireProvisioningViewModel(app, settingsManager, keyManager) {
private val contentResolver = app.contentResolver
- private val connectivityManager = app.getSystemService(ConnectivityManager::class.java)
+ private val connectivityManager: ConnectivityManager? =
+ app.getSystemService(ConnectivityManager::class.java)
override val isRestoreOperation = false
@@ -129,13 +130,13 @@
// register network observer if needed
if (networkCallback.registered && !storage.requiresNetwork) {
- connectivityManager.unregisterNetworkCallback(networkCallback)
+ connectivityManager?.unregisterNetworkCallback(networkCallback)
networkCallback.registered = false
} else if (!networkCallback.registered && storage.requiresNetwork) {
val request = NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build()
- connectivityManager.registerNetworkCallback(request, networkCallback)
+ connectivityManager?.registerNetworkCallback(request, networkCallback)
networkCallback.registered = true
}
@@ -156,7 +157,7 @@
override fun onCleared() {
contentResolver.unregisterContentObserver(storageObserver)
if (networkCallback.registered) {
- connectivityManager.unregisterNetworkCallback(networkCallback)
+ connectivityManager?.unregisterNetworkCallback(networkCallback)
networkCallback.registered = false
}
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/ApkBackup.kt b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/ApkBackup.kt
index b248b8d..c55eb8d 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/ApkBackup.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/ApkBackup.kt
@@ -74,13 +74,14 @@
}
// TODO remove when adding support for packages with multiple signers
- if (packageInfo.signingInfo.hasMultipleSigners()) {
+ val signingInfo = packageInfo.signingInfo ?: return null
+ if (signingInfo.hasMultipleSigners()) {
Log.e(TAG, "Package $packageName has multiple signers. Not backing it up.")
return null
}
// get signatures
- val signatures = packageInfo.signingInfo.getSignatures()
+ val signatures = signingInfo.getSignatures()
if (signatures.isEmpty()) {
Log.e(TAG, "Package $packageName has no signatures. Not backing it up.")
return null
@@ -107,7 +108,8 @@
}
// get an InputStream for the APK
- val inputStream = getApkInputStream(packageInfo.applicationInfo.sourceDir)
+ val sourceDir = packageInfo.applicationInfo?.sourceDir ?: return null
+ val inputStream = getApkInputStream(sourceDir)
// copy the APK to the storage's output and calculate SHA-256 hash while at it
val name = crypto.getNameForApk(metadataManager.salt, packageName)
val sha256 = copyStreamsAndGetHash(inputStream, streamGetter(name))
@@ -158,7 +160,7 @@
): List<ApkSplit> {
check(packageInfo.splitNames != null)
// attention: though not documented, splitSourceDirs can be null
- val splitSourceDirs = packageInfo.applicationInfo.splitSourceDirs ?: emptyArray()
+ val splitSourceDirs = packageInfo.applicationInfo?.splitSourceDirs ?: emptyArray()
check(packageInfo.splitNames.size == splitSourceDirs.size) {
"Size Mismatch! ${packageInfo.splitNames.size} != ${splitSourceDirs.size} " +
"splitNames is ${packageInfo.splitNames.toList()}, " +
@@ -238,8 +240,10 @@
/**
* Returns a list of Base64 encoded SHA-256 signature hashes.
*/
-fun SigningInfo.getSignatures(): List<String> {
- return if (hasMultipleSigners()) {
+fun SigningInfo?.getSignatures(): List<String> {
+ return if (this == null) {
+ emptyList()
+ } else if (hasMultipleSigners()) {
apkContentsSigners.map { signature ->
hashSignature(signature).encodeBase64()
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/PackageService.kt b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/PackageService.kt
index 7a59437..58afe8d 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/PackageService.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/PackageService.kt
@@ -174,7 +174,8 @@
}
private fun PackageInfo.allowsBackup(): Boolean {
- if (packageName == MAGIC_PACKAGE_MANAGER || applicationInfo == null) return false
+ val appInfo = applicationInfo
+ if (packageName == MAGIC_PACKAGE_MANAGER || appInfo == null) return false
return if (settingsManager.d2dBackupsEnabled()) {
/**
@@ -191,7 +192,7 @@
*/
true
} else {
- applicationInfo.flags and FLAG_ALLOW_BACKUP != 0
+ appInfo.flags and FLAG_ALLOW_BACKUP != 0
}
}
@@ -226,8 +227,9 @@
}
internal fun PackageInfo.isSystemApp(): Boolean {
- if (packageName == MAGIC_PACKAGE_MANAGER || applicationInfo == null) return true
- return applicationInfo.flags and FLAG_SYSTEM != 0
+ val appInfo = applicationInfo
+ if (packageName == MAGIC_PACKAGE_MANAGER || appInfo == null) return true
+ return appInfo.flags and FLAG_SYSTEM != 0
}
/**
@@ -235,18 +237,21 @@
* We don't back up those APKs.
*/
internal fun PackageInfo.isNotUpdatedSystemApp(): Boolean {
- if (packageName == MAGIC_PACKAGE_MANAGER || applicationInfo == null) return true
- val isSystemApp = applicationInfo.flags and FLAG_SYSTEM != 0
- val isUpdatedSystemApp = applicationInfo.flags and FLAG_UPDATED_SYSTEM_APP != 0
+ val appInfo = applicationInfo
+ if (packageName == MAGIC_PACKAGE_MANAGER || appInfo == null) return true
+ val isSystemApp = appInfo.flags and FLAG_SYSTEM != 0
+ val isUpdatedSystemApp = appInfo.flags and FLAG_UPDATED_SYSTEM_APP != 0
return isSystemApp && !isUpdatedSystemApp
}
internal fun PackageInfo.isStopped(): Boolean {
- if (packageName == MAGIC_PACKAGE_MANAGER || applicationInfo == null) return false
- return applicationInfo.flags and FLAG_STOPPED != 0
+ val appInfo = applicationInfo
+ if (packageName == MAGIC_PACKAGE_MANAGER || appInfo == null) return false
+ return appInfo.flags and FLAG_STOPPED != 0
}
internal fun PackageInfo.isTestOnly(): Boolean {
- if (packageName == MAGIC_PACKAGE_MANAGER || applicationInfo == null) return false
- return applicationInfo.flags and FLAG_TEST_ONLY != 0
+ val appInfo = applicationInfo
+ if (packageName == MAGIC_PACKAGE_MANAGER || appInfo == null) return false
+ return appInfo.flags and FLAG_TEST_ONLY != 0
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/AppViewHolder.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/AppViewHolder.kt
index 37686fc..8a3cd45 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/AppViewHolder.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/AppViewHolder.kt
@@ -8,9 +8,9 @@
import android.view.View.VISIBLE
import android.widget.ImageView
import android.widget.ProgressBar
-import android.widget.Switch
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.switchmaterial.SwitchMaterial
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.ui.AppBackupState.FAILED
import com.stevesoltys.seedvault.ui.AppBackupState.IN_PROGRESS
@@ -22,12 +22,12 @@
protected val pm: PackageManager = context.packageManager
protected val clickableBackground = v.background!!
- protected val appIcon: ImageView = v.findViewById(R.id.appIcon)
- protected val appName: TextView = v.findViewById(R.id.appName)
- protected val appInfo: TextView = v.findViewById(R.id.appInfo)
- protected val appStatus: ImageView = v.findViewById(R.id.appStatus)
- protected val progressBar: ProgressBar = v.findViewById(R.id.progressBar)
- protected val switchView: Switch = v.findViewById(R.id.switchView)
+ protected val appIcon: ImageView = v.requireViewById(R.id.appIcon)
+ protected val appName: TextView = v.requireViewById(R.id.appName)
+ protected val appInfo: TextView = v.requireViewById(R.id.appInfo)
+ protected val appStatus: ImageView = v.requireViewById(R.id.appStatus)
+ protected val progressBar: ProgressBar = v.requireViewById(R.id.progressBar)
+ protected val switchView: SwitchMaterial = v.requireViewById(R.id.switchView)
init {
// don't use clickable background by default
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt
index 1003300..5d35a5c 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt
@@ -27,8 +27,8 @@
class RecoveryCodeViewHolder(v: View) : RecyclerView.ViewHolder(v) {
- private val num = v.findViewById<TextView>(R.id.num)
- private val word = v.findViewById<TextView>(R.id.word)
+ private val num = v.requireViewById<TextView>(R.id.num)
+ private val word = v.requireViewById<TextView>(R.id.word)
internal fun bind(number: Int, item: CharArray) {
num.text = number.toString()
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt
index 76ee2d6..4853aaa 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt
@@ -71,24 +71,24 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_recovery_code_input, container, false)
- if (!isDebugBuild()) getActivity()?.window?.addFlags(FLAG_SECURE)
+ if (!isDebugBuild()) activity?.window?.addFlags(FLAG_SECURE)
- introText = v.findViewById(R.id.introText)
- doneButton = v.findViewById(R.id.doneButton)
- newCodeButton = v.findViewById(R.id.newCodeButton)
- wordLayout1 = v.findViewById(R.id.wordLayout1)
- wordLayout2 = v.findViewById(R.id.wordLayout2)
- wordLayout3 = v.findViewById(R.id.wordLayout3)
- wordLayout4 = v.findViewById(R.id.wordLayout4)
- wordLayout5 = v.findViewById(R.id.wordLayout5)
- wordLayout6 = v.findViewById(R.id.wordLayout6)
- wordLayout7 = v.findViewById(R.id.wordLayout7)
- wordLayout8 = v.findViewById(R.id.wordLayout8)
- wordLayout9 = v.findViewById(R.id.wordLayout9)
- wordLayout10 = v.findViewById(R.id.wordLayout10)
- wordLayout11 = v.findViewById(R.id.wordLayout11)
- wordLayout12 = v.findViewById(R.id.wordLayout12)
- wordList = v.findViewById(R.id.wordList)
+ introText = v.requireViewById(R.id.introText)
+ doneButton = v.requireViewById(R.id.doneButton)
+ newCodeButton = v.requireViewById(R.id.newCodeButton)
+ wordLayout1 = v.requireViewById(R.id.wordLayout1)
+ wordLayout2 = v.requireViewById(R.id.wordLayout2)
+ wordLayout3 = v.requireViewById(R.id.wordLayout3)
+ wordLayout4 = v.requireViewById(R.id.wordLayout4)
+ wordLayout5 = v.requireViewById(R.id.wordLayout5)
+ wordLayout6 = v.requireViewById(R.id.wordLayout6)
+ wordLayout7 = v.requireViewById(R.id.wordLayout7)
+ wordLayout8 = v.requireViewById(R.id.wordLayout8)
+ wordLayout9 = v.requireViewById(R.id.wordLayout9)
+ wordLayout10 = v.requireViewById(R.id.wordLayout10)
+ wordLayout11 = v.requireViewById(R.id.wordLayout11)
+ wordLayout12 = v.requireViewById(R.id.wordLayout12)
+ wordList = v.requireViewById(R.id.wordList)
arguments?.getBoolean(ARG_FOR_NEW_CODE, true)?.let {
forStoringNewCode = it
@@ -148,7 +148,7 @@
}
if (forStoringNewCode) {
val keyguardManager = requireContext().getSystemService(KeyguardManager::class.java)
- if (keyguardManager.isDeviceSecure) {
+ if (keyguardManager?.isDeviceSecure == true) {
// if we have a lock-screen secret, we can ask for it before storing the code
storeNewCodeAfterAuth(input)
} else {
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt
index 012ce09..ca585e3 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt
@@ -28,10 +28,10 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_recovery_code_output, container, false)
- if (!isDebugBuild()) getActivity()?.window?.addFlags(FLAG_SECURE)
+ if (!isDebugBuild()) activity?.window?.addFlags(FLAG_SECURE)
- wordList = v.findViewById(R.id.wordList)
- confirmCodeButton = v.findViewById(R.id.confirmCodeButton)
+ wordList = v.requireViewById(R.id.wordList)
+ confirmCodeButton = v.requireViewById(R.id.confirmCodeButton)
return v
}
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageCheckFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageCheckFragment.kt
index fe45f4c..b1df24e 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageCheckFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageCheckFragment.kt
@@ -41,10 +41,10 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_storage_check, container, false)
- titleView = v.findViewById(R.id.titleView)
- progressBar = v.findViewById(R.id.progressBar)
- errorView = v.findViewById(R.id.errorView)
- backButton = v.findViewById(R.id.backButton)
+ titleView = v.requireViewById(R.id.titleView)
+ progressBar = v.requireViewById(R.id.progressBar)
+ errorView = v.requireViewById(R.id.errorView)
+ backButton = v.requireViewById(R.id.backButton)
return v
}
@@ -56,7 +56,7 @@
val errorMsg = requireArguments().getString(ERROR_MSG)
if (errorMsg != null) {
- view.findViewById<View>(R.id.patienceView).visibility = GONE
+ view.requireViewById<View>(R.id.patienceView).visibility = GONE
progressBar.visibility = INVISIBLE
errorView.text = errorMsg
errorView.visibility = VISIBLE
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionAdapter.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionAdapter.kt
index ff4c448..ab2a906 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionAdapter.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionAdapter.kt
@@ -45,9 +45,9 @@
internal inner class StorageOptionViewHolder(private val v: View) : ViewHolder(v) {
- private val iconView = v.findViewById<ImageView>(R.id.iconView)
- private val titleView = v.findViewById<TextView>(R.id.titleView)
- private val summaryView = v.findViewById<TextView>(R.id.summaryView)
+ private val iconView = v.requireViewById<ImageView>(R.id.iconView)
+ private val titleView = v.requireViewById<TextView>(R.id.titleView)
+ private val summaryView = v.requireViewById<TextView>(R.id.summaryView)
internal fun bind(item: StorageOption) {
if (item.enabled) {
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
index fc84248..12c6526 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/StorageOptionsFragment.kt
@@ -57,12 +57,12 @@
): View {
val v: View = inflater.inflate(R.layout.fragment_storage_root, container, false)
- titleView = v.findViewById(R.id.titleView)
- warningIcon = v.findViewById(R.id.warningIcon)
- warningText = v.findViewById(R.id.warningText)
- listView = v.findViewById(R.id.listView)
- progressBar = v.findViewById(R.id.progressBar)
- skipView = v.findViewById(R.id.skipView)
+ titleView = v.requireViewById(R.id.titleView)
+ warningIcon = v.requireViewById(R.id.warningIcon)
+ warningText = v.requireViewById(R.id.warningText)
+ listView = v.requireViewById(R.id.listView)
+ progressBar = v.requireViewById(R.id.progressBar)
+ skipView = v.requireViewById(R.id.skipView)
return v
}
diff --git a/app/src/main/res/layout/list_item_app_status.xml b/app/src/main/res/layout/list_item_app_status.xml
index 5d630c7..b556a19 100644
--- a/app/src/main/res/layout/list_item_app_status.xml
+++ b/app/src/main/res/layout/list_item_app_status.xml
@@ -68,7 +68,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
- <Switch
+ <com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"