From 532fd74d2f33b045924ef091b2ec5b9d9d3e951b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Thu, 13 Jun 2024 16:39:18 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E3=83=AD=E3=82=B0=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/kidshift/KidShiftApplication.java | 33 ++++++++++++++++--- .../kidshift/utils/impl/FeatureFlagImpl.java | 27 +++++++-------- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/one/nem/kidshift/KidShiftApplication.java b/app/src/main/java/one/nem/kidshift/KidShiftApplication.java index 06a966f..3d3931a 100644 --- a/app/src/main/java/one/nem/kidshift/KidShiftApplication.java +++ b/app/src/main/java/one/nem/kidshift/KidShiftApplication.java @@ -5,20 +5,45 @@ import android.util.Log; import com.google.android.material.color.DynamicColors; +import javax.inject.Inject; + import dagger.hilt.android.HiltAndroidApp; +import one.nem.kidshift.utils.FeatureFlag; +import one.nem.kidshift.utils.KSLogger; @HiltAndroidApp public class KidShiftApplication extends Application { + @Inject + FeatureFlag featureFlag; + + @Inject + KSLogger logger; + @Override public void onCreate() { super.onCreate(); - if(DynamicColors.isDynamicColorAvailable()) { - Log.d("StartUp/DynamicColors", "DynamicColors is available!"); - DynamicColors.applyToActivitiesIfAvailable(this); +// if(DynamicColors.isDynamicColorAvailable()) { +// Log.d("StartUp/DynamicColors", "DynamicColors is available!"); +// DynamicColors.applyToActivitiesIfAvailable(this); +// } else { +// Log.d("StartUp/DynamicColors", "DynamicColors is not available."); +// } + + logger.setTag("KidShiftApplication"); + logger.info("super.onCreate() completed"); + + if(featureFlag.isEnabled("dynamicColorEnabled")) { + if (DynamicColors.isDynamicColorAvailable()) { + DynamicColors.applyToActivitiesIfAvailable(this); + logger.info("DynamicColors is available and applied to activities."); + } else { + logger.info("DynamicColors is not available."); + } } else { - Log.d("StartUp/DynamicColors", "DynamicColors is not available."); + logger.info("DynamicColors feature is disabled by feature flag."); } + } } diff --git a/utils/src/main/java/one/nem/kidshift/utils/impl/FeatureFlagImpl.java b/utils/src/main/java/one/nem/kidshift/utils/impl/FeatureFlagImpl.java index 7b7f68b..632eba9 100644 --- a/utils/src/main/java/one/nem/kidshift/utils/impl/FeatureFlagImpl.java +++ b/utils/src/main/java/one/nem/kidshift/utils/impl/FeatureFlagImpl.java @@ -10,13 +10,14 @@ import java.util.Objects; import javax.inject.Inject; import dagger.hilt.android.qualifiers.ApplicationContext; +import one.nem.kidshift.utils.KSLogger; import one.nem.kidshift.utils.models.feature.FeatureFlagItemModel; import one.nem.kidshift.utils.FeatureFlag; public class FeatureFlagImpl implements FeatureFlag { private final Context applicationContext; - + private final KSLogger logger; private final SharedPreferences sharedPreferences; // ここを書き換えてプロファイルを書き換え @@ -39,8 +40,10 @@ public class FeatureFlagImpl implements FeatureFlag { } @Inject - public FeatureFlagImpl(@ApplicationContext Context applicationContext) { + public FeatureFlagImpl(@ApplicationContext Context applicationContext, KSLogger logger) { this.applicationContext = applicationContext; + this.logger = logger; + this.logger.setTag("FeatureFlagImpl"); this.sharedPreferences = applicationContext.getSharedPreferences("feat_flg", Context.MODE_PRIVATE); init(); } @@ -64,22 +67,15 @@ public class FeatureFlagImpl implements FeatureFlag { // init private void initBase() { // ベース, (= Production) - setFlag("isBaseEnabled", true, false); - setFlag("isBetaEnabled", false, false); - setFlag("isDevelopEnabled", false, false); - setFlag("overrideTest", false, true); + setFlag("dynamicColorEnable", true, false); } private void initBeta() { // 上書き - setFlag("isBaseEnabled", false, true); - setFlag("isBetaEnabled", true, true); - setFlag("isDevelopEnabled", false, true); + setFlag("dynamicColorEnable", true, true); } private void initDevelop() { // 上書き - setFlag("isBaseEnabled", false, true); - setFlag("isBetaEnabled", false, true); - setFlag("isDevelopEnabled", true, true); + setFlag("dynamicColorEnable", true, true); } // utils @@ -109,7 +105,12 @@ public class FeatureFlagImpl implements FeatureFlag { @Override public boolean isEnabled(String key) { - return Objects.requireNonNull(featureFlagMap.get(key)).state(); + try { + return Objects.requireNonNull(featureFlagMap.get(key)).getValue(); + } catch (NullPointerException e) { + logger.error("Invalid key: " + key + "\nReturning false"); + return false; // 存在しないキーはクラッシュ回避のためfalseを返す + } } @Override -- 2.45.1 From 53c536ecb8418792f98b8e26cebd6d15da6b7d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Thu, 13 Jun 2024 16:57:53 +0900 Subject: [PATCH 2/2] fix typo --- app/src/main/java/one/nem/kidshift/KidShiftApplication.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/one/nem/kidshift/KidShiftApplication.java b/app/src/main/java/one/nem/kidshift/KidShiftApplication.java index 3d3931a..fe1d736 100644 --- a/app/src/main/java/one/nem/kidshift/KidShiftApplication.java +++ b/app/src/main/java/one/nem/kidshift/KidShiftApplication.java @@ -34,7 +34,7 @@ public class KidShiftApplication extends Application { logger.setTag("KidShiftApplication"); logger.info("super.onCreate() completed"); - if(featureFlag.isEnabled("dynamicColorEnabled")) { + if(featureFlag.isEnabled("dynamicColorEnable")) { if (DynamicColors.isDynamicColorAvailable()) { DynamicColors.applyToActivitiesIfAvailable(this); logger.info("DynamicColors is available and applied to activities."); -- 2.45.1