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 9dc1e9874..5d4bedd05 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt @@ -23,7 +23,10 @@ import androidx.lifecycle.ProcessLifecycleOwner import androidx.preference.PreferenceManager import com.google.android.gms.wearable.Wearable import com.google.firebase.installations.FirebaseInstallations +import com.google.firebase.remoteconfig.ConfigUpdate +import com.google.firebase.remoteconfig.ConfigUpdateListener import com.google.firebase.remoteconfig.FirebaseRemoteConfig +import com.google.firebase.remoteconfig.FirebaseRemoteConfigException import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings import com.gu.toolargetool.TooLargeTool import com.habitrpg.android.habitica.data.ApiClient @@ -252,6 +255,15 @@ abstract class HabiticaBaseApplication : Application(), Application.ActivityLife remoteConfig.setConfigSettingsAsync(configSettings) remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults) remoteConfig.fetchAndActivate() + remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener { + + override fun onUpdate(configUpdate: ConfigUpdate) { + remoteConfig.activate() + } + + override fun onError(error: FirebaseRemoteConfigException) { + } + }) } private fun setupNotifications() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt index 18353081e..97d925741 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt @@ -445,15 +445,15 @@ class NavigationDrawerFragment : DialogFragment() { context.getString(R.string.questShop), ), ) - if (configManager.enableCustomizationShop()) { - items.add( - HabiticaDrawerItem( - R.id.customizationsShopFragment, - SIDEBAR_SHOPS_CUSTOMIZATIONS, - context.getString(R.string.customizations), - ), - ) - } + val customizationShopItem = HabiticaDrawerItem( + R.id.customizationsShopFragment, + SIDEBAR_SHOPS_CUSTOMIZATIONS, + context.getString(R.string.customizations), + ) + customizationShopItem.isVisible = configManager.enableCustomizationShop() + items.add( + customizationShopItem + ) val seasonalShopEntry = HabiticaDrawerItem( R.id.seasonalShopFragment, @@ -589,6 +589,11 @@ class NavigationDrawerFragment : DialogFragment() { adapter.updateItems(items) } + override fun onResume() { + super.onResume() + getItemWithIdentifier(SIDEBAR_SHOPS_CUSTOMIZATIONS)?.isVisible = configManager.enableCustomizationShop() + } + fun setSelection( transitionId: Int?, bundle: Bundle? = null,