Fix launch screen issues

This commit is contained in:
Phillip Thelen 2021-02-25 16:25:48 +01:00
parent d352c5dea4
commit 9ff612a015
5 changed files with 26 additions and 12 deletions

View file

@ -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"
}

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -10,7 +10,7 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 2838,
"versionCode": 2841,
"versionName": "3.2.1",
"outputFile": "Habitica-staff-release.apk"
}