diff --git a/presentation/build.gradle b/presentation/build.gradle index 6796d2c7..705fd4c3 100644 --- a/presentation/build.gradle +++ b/presentation/build.gradle @@ -50,8 +50,6 @@ android { buildConfigField "String", "PCLOUD_CLIENT_ID", "\"" + getApiKey('PCLOUD_CLIENT_ID') + "\"" manifestPlaceholders = [DROPBOX_API_KEY: getApiKey('DROPBOX_API_KEY'), ONEDRIVE_API_KEY_DECODED: getOnedriveApiKey()] - - resValue "string", "app_id", androidApplicationId } debug { @@ -69,8 +67,6 @@ android { applicationIdSuffix ".debug" versionNameSuffix '-DEBUG' - - resValue "string", "app_id", androidApplicationId + applicationIdSuffix } } diff --git a/presentation/src/main/java/org/cryptomator/presentation/intent/AutoUploadChooseVaultIntent.java b/presentation/src/main/java/org/cryptomator/presentation/intent/AutoUploadChooseVaultIntent.java new file mode 100644 index 00000000..f5f79627 --- /dev/null +++ b/presentation/src/main/java/org/cryptomator/presentation/intent/AutoUploadChooseVaultIntent.java @@ -0,0 +1,9 @@ +package org.cryptomator.presentation.intent; + +import org.cryptomator.generator.Intent; +import org.cryptomator.presentation.ui.activity.AutoUploadChooseVaultActivity; + +@Intent(AutoUploadChooseVaultActivity.class) +public interface AutoUploadChooseVaultIntent { + +} diff --git a/presentation/src/main/java/org/cryptomator/presentation/intent/BiometricAuthSettingsIntent.java b/presentation/src/main/java/org/cryptomator/presentation/intent/BiometricAuthSettingsIntent.java new file mode 100644 index 00000000..f3caedac --- /dev/null +++ b/presentation/src/main/java/org/cryptomator/presentation/intent/BiometricAuthSettingsIntent.java @@ -0,0 +1,9 @@ +package org.cryptomator.presentation.intent; + +import org.cryptomator.generator.Intent; +import org.cryptomator.presentation.ui.activity.BiometricAuthSettingsActivity; + +@Intent(BiometricAuthSettingsActivity.class) +public interface BiometricAuthSettingsIntent { + +} diff --git a/presentation/src/main/java/org/cryptomator/presentation/intent/LicenseIntent.java b/presentation/src/main/java/org/cryptomator/presentation/intent/LicenseIntent.java new file mode 100644 index 00000000..295df876 --- /dev/null +++ b/presentation/src/main/java/org/cryptomator/presentation/intent/LicenseIntent.java @@ -0,0 +1,9 @@ +package org.cryptomator.presentation.intent; + +import org.cryptomator.generator.Intent; +import org.cryptomator.presentation.ui.activity.LicensesActivity; + +@Intent(LicensesActivity.class) +public interface LicenseIntent { + +} diff --git a/presentation/src/main/java/org/cryptomator/presentation/presenter/SettingsPresenter.kt b/presentation/src/main/java/org/cryptomator/presentation/presenter/SettingsPresenter.kt index 6a81f530..42cd0395 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/presenter/SettingsPresenter.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/presenter/SettingsPresenter.kt @@ -19,6 +19,7 @@ import org.cryptomator.generator.Callback import org.cryptomator.presentation.BuildConfig import org.cryptomator.presentation.R import org.cryptomator.presentation.exception.ExceptionHandlers +import org.cryptomator.presentation.intent.Intents import org.cryptomator.presentation.logging.Logfiles import org.cryptomator.presentation.logging.ReleaseLogger import org.cryptomator.presentation.model.ProgressModel @@ -194,6 +195,26 @@ class SettingsPresenter @Inject internal constructor( }) } + fun onCloudSettingsClicked() { + startIntent(Intents.cloudSettingsIntent()) + } + + fun onBiometricAuthSettingsClicked() { + startIntent(Intents.biometricAuthSettingsIntent()) + } + + fun onCryptomatorVariantsClicked() { + startIntent(Intents.cryptomatorVariantsIntent()) + } + + fun onAutoUploadChooseVaultClicked() { + startIntent(Intents.autoUploadChooseVaultIntent()) + } + + fun onLicensedClicked() { + startIntent(Intents.licenseIntent()) + } + private inner class CreateErrorReportArchiveTask : AsyncTask() { override fun doInBackground(vararg params: Void?): File? { diff --git a/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt b/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt index d9d1e929..c5dfc0a6 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/service/PhotoContentJob.kt @@ -13,10 +13,9 @@ import android.net.Uri import android.os.Handler import android.provider.MediaStore import org.cryptomator.domain.exception.FatalBackendException +import org.cryptomator.presentation.BuildConfig import org.cryptomator.presentation.CryptomatorApp -import org.cryptomator.presentation.R import org.cryptomator.presentation.util.FileUtil -import org.cryptomator.presentation.util.ResourceHelper import org.cryptomator.util.SharedPreferencesHandler import org.cryptomator.util.file.MimeTypeMap import org.cryptomator.util.file.MimeTypes @@ -145,7 +144,7 @@ class PhotoContentJob : JobService() { private const val PHOTOS_CONTENT_JOB = 23 init { - val builder = JobInfo.Builder(PHOTOS_CONTENT_JOB, ComponentName(ResourceHelper.getString(R.string.app_id), PhotoContentJob::class.java.name)) + val builder = JobInfo.Builder(PHOTOS_CONTENT_JOB, ComponentName(BuildConfig.APPLICATION_ID, PhotoContentJob::class.java.name)) builder.addTriggerContentUri(JobInfo.TriggerContentUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, FLAG_NOTIFY_FOR_DESCENDANTS)) builder.addTriggerContentUri(JobInfo.TriggerContentUri(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, FLAG_NOTIFY_FOR_DESCENDANTS)) builder.addTriggerContentUri(JobInfo.TriggerContentUri(MediaStore.Images.Media.INTERNAL_CONTENT_URI, FLAG_NOTIFY_FOR_DESCENDANTS)) diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/SettingsFragment.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/SettingsFragment.kt index 6e4733e9..7d4fccba 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/SettingsFragment.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/SettingsFragment.kt @@ -62,6 +62,31 @@ class SettingsFragment : PreferenceFragmentCompat() { true } + private val cloudSettingsClickListener = Preference.OnPreferenceClickListener { + onCloudSettingsClicked() + true + } + + private val biometricAuthSettingsClickListener = Preference.OnPreferenceClickListener { + onBiometricAuthSettingsClicked() + true + } + + private val cryptomatorVariantsClickListener = Preference.OnPreferenceClickListener { + onCryptomatorVariantsClicked() + true + } + + private val autoUploadChooseVaultClickListener = Preference.OnPreferenceClickListener { + onAutoUploadChooseVaultClicked() + true + } + + private val licensesClickListener = Preference.OnPreferenceClickListener { + onLicensedClicked() + true + } + private val useAutoPhotoUploadChangedListener = Preference.OnPreferenceChangeListener { _, newValue -> onUseAutoPhotoUploadChanged(TRUE == newValue) true @@ -209,6 +234,11 @@ class SettingsFragment : PreferenceFragmentCompat() { if (BuildConfig.FLAVOR == "apkstore") { (findPreference(UPDATE_CHECK_ITEM_KEY) as Preference?)?.onPreferenceClickListener = updateCheckClickListener } + (findPreference(SharedPreferencesHandler.CLOUD_SETTINGS) as Preference?)?.onPreferenceClickListener = cloudSettingsClickListener + (findPreference(SharedPreferencesHandler.BIOMETRIC_AUTHENTICATION) as Preference?)?.onPreferenceClickListener = biometricAuthSettingsClickListener + (findPreference(SharedPreferencesHandler.CRYPTOMATOR_VARIANTS) as Preference?)?.onPreferenceClickListener = cryptomatorVariantsClickListener + (findPreference(SharedPreferencesHandler.PHOTO_UPLOAD_VAULT) as Preference?)?.onPreferenceClickListener = autoUploadChooseVaultClickListener + (findPreference(SharedPreferencesHandler.LICENSES_ACTIVITY) as Preference?)?.onPreferenceClickListener = licensesClickListener } fun deactivateDebugMode() { @@ -234,6 +264,26 @@ class SettingsFragment : PreferenceFragmentCompat() { activity().presenter().onCheckUpdateClicked() } + private fun onCloudSettingsClicked() { + activity().presenter().onCloudSettingsClicked() + } + + private fun onBiometricAuthSettingsClicked() { + activity().presenter().onBiometricAuthSettingsClicked() + } + + private fun onCryptomatorVariantsClicked() { + activity().presenter().onCryptomatorVariantsClicked() + } + + private fun onAutoUploadChooseVaultClicked() { + activity().presenter().onAutoUploadChooseVaultClicked() + } + + private fun onLicensedClicked() { + activity().presenter().onLicensedClicked() + } + private fun onDebugModeChanged(enabled: Boolean) { if (enabled) { activity().showDialog(DebugModeDisclaimerDialog.newInstance()) diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index f8a34297..d5618890 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -287,6 +287,9 @@ Keep unlocked Keep vaults unlocked while editing files + @string/screen_cryptomator_variants_title + Show variants of this app + @string/screen_settings_cloud_settings_label OneDrive connections diff --git a/presentation/src/main/res/xml/preferences.xml b/presentation/src/main/res/xml/preferences.xml index 0ff1497c..56d0f24c 100644 --- a/presentation/src/main/res/xml/preferences.xml +++ b/presentation/src/main/res/xml/preferences.xml @@ -16,25 +16,13 @@ android:key="@string/screen_settings_section_general" android:title="@string/screen_settings_section_general"> - - - - - + - - - - + android:title="@string/screen_settings_biometric_auth" /> + + @@ -123,13 +116,7 @@ - - - + android:title="@string/screen_settings_section_auto_photo_upload_vault" /> @@ -219,12 +206,9 @@ - - - + Unit) {