From 9ff612a015f5d32b5d1f6c95620c62ab2e2a784e Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 25 Feb 2021 16:25:48 +0100 Subject: [PATCH] Fix launch screen issues --- Habitica/build.gradle | 2 +- .../android/habitica/HabiticaBaseApplication.kt | 6 +++++- .../habitica/ui/activities/MainActivity.kt | 15 ++++++--------- .../fragments/preferences/PreferencesFragment.kt | 13 +++++++++++++ Habitica/staff/release/output-metadata.json | 2 +- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Habitica/build.gradle b/Habitica/build.gradle index 2e534b961..049b1d552 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -150,7 +150,7 @@ android { buildConfigField "String", "TESTING_LEVEL", "\"production\"" resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW" - versionCode 2838 + versionCode 2844 versionName "3.2.1" } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt index 8d67b9787..07631123b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt @@ -79,7 +79,9 @@ abstract class HabiticaBaseApplication : Application() { if (!BuildConfig.DEBUG) { try { Amplitude.getInstance().initialize(this, getString(R.string.amplitude_app_id)).enableForegroundTracking(this) - val identify = Identify().setOnce("androidStore", BuildConfig.STORE) + val identify = Identify() + .setOnce("androidStore", BuildConfig.STORE) + .set("launch_screen", sharedPrefs.getString("launch_screen", "")) Amplitude.getInstance().identify(identify) } catch (ignored: Resources.NotFoundException) { } @@ -224,11 +226,13 @@ abstract class HabiticaBaseApplication : Application() { val useReminder = preferences.getBoolean("use_reminder", false) val reminderTime = preferences.getString("reminder_time", "19:00") val lightMode = preferences.getString("theme_mode", "system") + val launchScreen = preferences.getString("launch_screen", "") preferences.edit { clear() putBoolean("use_reminder", useReminder) putString("reminder_time", reminderTime) putString("theme_mode", lightMode) + putString("launch_screen", launchScreen) } reloadUserComponent() getInstance(context)?.lazyApiHelper?.updateAuthenticationCredentials(null, null) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index 0cfba8543..289994a9a 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -334,14 +334,6 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { launchScreen = sharedPreferences.getString("launch_screen", "") } - private fun openTaskType(taskType: String) { - if (supportFragmentManager.findFragmentById(R.id.nav_host_fragment) is TasksFragment) { - binding.bottomNavigation.activeTaskType = taskType - } else { - MainNavigationController.navigate(R.id.tasksFragment, bundleOf(Pair("taskType", taskType))) - } - } - override fun onRestoreInstanceState(savedInstanceState: Bundle) { super.onRestoreInstanceState(savedInstanceState) Log.e("RESTORED:", savedInstanceState.toString()) @@ -368,9 +360,14 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment val navigationController = navHostFragment.navController MainNavigationController.setup(navigationController) + navigationController.addOnDestinationChangedListener { _, destination, arguments -> updateToolbarTitle(destination, arguments) } when (launchScreen) { - "/party" -> MainNavigationController.navigate(R.id.partyFragment) + "/party" -> { + if (user?.party?.id != null) { + MainNavigationController.navigate(R.id.partyFragment) + } + } } launchScreen = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt index 69585d9d8..e8a0bd4d4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt @@ -86,6 +86,9 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare val themeModePreference = findPreference("theme_mode") as? ListPreference themeModePreference?.summary = themeModePreference?.entry ?: "Follow System" + val launchScreenPreference = findPreference("launch_screen") as? ListPreference + launchScreenPreference?.summary = launchScreenPreference?.entry ?: "Habits" + val taskDisplayPreference = findPreference("task_display") as? ListPreference if (configManager.enableTaskDisplayMode()) { @@ -248,6 +251,10 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare .subscribe({ }, RxErrorHandler.handleEmptyError())) } } + "launch_screen" -> { + val preference = findPreference(key) as ListPreference + preference.summary = preference.entry ?: "Habits" + } } } @@ -305,6 +312,12 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare preference.summary = context?.getString(R.string.username_not_confirmed) } + if (user?.party?.id?.isNotBlank() != true) { + val launchScreenPreference = findPreference("launch_screen") as ListPreference + launchScreenPreference.entries = resources.getStringArray(R.array.launch_screen_types).dropLast(1).toTypedArray() + launchScreenPreference.entryValues = resources.getStringArray(R.array.launch_screen_values).dropLast(1).toTypedArray() + } + val disablePMsPreference = findPreference("disablePMs") as? CheckBoxPreference val inbox = user?.inbox disablePMsPreference?.isChecked = inbox?.optOut ?: true diff --git a/Habitica/staff/release/output-metadata.json b/Habitica/staff/release/output-metadata.json index cddd6064d..cc2823e6a 100644 --- a/Habitica/staff/release/output-metadata.json +++ b/Habitica/staff/release/output-metadata.json @@ -10,7 +10,7 @@ { "type": "SINGLE", "filters": [], - "versionCode": 2838, + "versionCode": 2841, "versionName": "3.2.1", "outputFile": "Habitica-staff-release.apk" }