From 93a3016f6fd50e386c203c9c480ba00387cbfc7a Mon Sep 17 00:00:00 2001 From: feilong Date: Sun, 29 Mar 2020 09:35:04 +0800 Subject: [PATCH] Use remote config to show start msg. --- app/build.gradle | 1 + .../cimoc/manager/PreferenceManager.java | 1 + .../cimoc/ui/activity/MainActivity.java | 39 +++++++++++++++++-- app/src/main/res/xml/remote_config.xml | 9 +++++ 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/xml/remote_config.xml diff --git a/app/build.gradle b/app/build.gradle index 305d98d3..2a04c08a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -99,6 +99,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72" implementation 'com.google.firebase:firebase-analytics:17.4.4' implementation 'com.google.firebase:firebase-crashlytics:17.1.1' + implementation 'com.google.firebase:firebase-config:19.2.0' } repositories { mavenCentral() diff --git a/app/src/main/java/com/hiroshi/cimoc/manager/PreferenceManager.java b/app/src/main/java/com/hiroshi/cimoc/manager/PreferenceManager.java index ab79de7c..a5cd7af8 100644 --- a/app/src/main/java/com/hiroshi/cimoc/manager/PreferenceManager.java +++ b/app/src/main/java/com/hiroshi/cimoc/manager/PreferenceManager.java @@ -31,6 +31,7 @@ public class PreferenceManager { public static final String PREF_APP_VERSION = "pref_app_version"; public static final String PREF_MAIN_NOTICE = "pref_main_notice"; + public static final String PREF_MAIN_NOTICE_LAST = "pref_main_notice_last"; public static final String PREF_READER_MODE = "pref_reader_mode"; public static final String PREF_READER_KEEP_BRIGHT = "pref_reader_keep_on"; diff --git a/app/src/main/java/com/hiroshi/cimoc/ui/activity/MainActivity.java b/app/src/main/java/com/hiroshi/cimoc/ui/activity/MainActivity.java index c716a5d5..9e4ee606 100644 --- a/app/src/main/java/com/hiroshi/cimoc/ui/activity/MainActivity.java +++ b/app/src/main/java/com/hiroshi/cimoc/ui/activity/MainActivity.java @@ -12,23 +12,31 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StyleRes; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; import com.google.android.material.navigation.NavigationView; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.ActionBarDrawerToggle; + +import android.util.Log; import android.util.SparseArray; import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; +import android.widget.Toast; import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.common.ResizeOptions; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; +import com.google.firebase.remoteconfig.FirebaseRemoteConfig; +import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings; import com.hiroshi.cimoc.App; import com.hiroshi.cimoc.R; import com.hiroshi.cimoc.component.ThemeResponsive; @@ -504,10 +512,35 @@ private void changeTheme(@StyleRes int theme, @ColorRes int primary, @ColorRes i } private boolean showAuthorNotice() { + FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); + FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() + .setMinimumFetchIntervalInSeconds(3600) + .build(); + mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings); + mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config); + mFirebaseRemoteConfig.fetchAndActivate() + .addOnCompleteListener(this, new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + boolean updated = task.getResult(); + Log.d("FireBase_FirstOpenMsg", "Config params updated: " + updated); + } else { + Log.d("FireBase_FirstOpenMsg", "Config params updated Failed. "); + } + + String showMsg = mFirebaseRemoteConfig.getString("first_open_msg"); + if (!mPreference.getBoolean(PreferenceManager.PREF_MAIN_NOTICE, false) + || showMsg.compareTo(mPreference.getString(PreferenceManager.PREF_MAIN_NOTICE_LAST, "")) != 0) { + mPreference.putString(PreferenceManager.PREF_MAIN_NOTICE_LAST, showMsg); + MessageDialogFragment fragment = MessageDialogFragment.newInstance(R.string.main_notice, + showMsg, false, DIALOG_REQUEST_NOTICE); + fragment.show(getFragmentManager(), null); + } + } + }); + if (!mPreference.getBoolean(PreferenceManager.PREF_MAIN_NOTICE, false)) { - MessageDialogFragment fragment = MessageDialogFragment.newInstance(R.string.main_notice, - R.string.main_notice_content, false, DIALOG_REQUEST_NOTICE); - fragment.show(getFragmentManager(), null); return true; } return false; diff --git a/app/src/main/res/xml/remote_config.xml b/app/src/main/res/xml/remote_config.xml new file mode 100644 index 00000000..b1224742 --- /dev/null +++ b/app/src/main/res/xml/remote_config.xml @@ -0,0 +1,9 @@ + + + + + first_open_msg + Welcome to Cimoc! + + + \ No newline at end of file