diff options
author | Alexander Zatsepin <az@mapswithme.com> | 2018-04-26 18:28:00 +0300 |
---|---|---|
committer | Arsentiy Milchakov <milcars@mapswithme.com> | 2018-04-26 19:06:25 +0300 |
commit | d297549180387d0a508d15c8952ccc991387a118 (patch) | |
tree | 183567834e5291a75241d7a4aa1c35c5456a56da | |
parent | c856580fe3173688bee0d2a1607d59eb250c01eb (diff) |
[android] Added base activity delegate to SplashActivity to make it themized and loggable
4 files changed, 57 insertions, 10 deletions
diff --git a/android/src/com/mapswithme/maps/SplashActivity.java b/android/src/com/mapswithme/maps/SplashActivity.java index 7f5bdca676..ba517f3d69 100644 --- a/android/src/com/mapswithme/maps/SplashActivity.java +++ b/android/src/com/mapswithme/maps/SplashActivity.java @@ -7,12 +7,15 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StyleRes; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentManager; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; +import com.mapswithme.maps.base.BaseActivity; +import com.mapswithme.maps.base.BaseActivityDelegate; import com.mapswithme.maps.downloader.UpdaterDialogFragment; import com.mapswithme.maps.editor.ViralFragment; import com.mapswithme.maps.news.BaseNewsFragment; @@ -23,13 +26,14 @@ import com.mapswithme.maps.permissions.StoragePermissionsDialogFragment; import com.mapswithme.util.Config; import com.mapswithme.util.Counters; import com.mapswithme.util.PermissionsUtils; +import com.mapswithme.util.ThemeUtils; import com.mapswithme.util.UiUtils; import com.mapswithme.util.concurrency.UiThread; import com.mapswithme.util.statistics.PushwooshHelper; import com.my.tracker.MyTracker; public class SplashActivity extends AppCompatActivity - implements BaseNewsFragment.NewsDialogListener + implements BaseNewsFragment.NewsDialogListener, BaseActivity { public static final String EXTRA_INTENT = "extra_intent"; private static final String EXTRA_ACTIVITY_TO_START = "extra_activity_to_start"; @@ -82,6 +86,9 @@ public class SplashActivity extends AppCompatActivity } }; + @NonNull + private final BaseActivityDelegate mBaseDelegate = new BaseActivityDelegate(this); + public static void start(@NonNull Context context, @Nullable Class<? extends Activity> activityToStart, @Nullable Intent initialIntent) @@ -105,6 +112,7 @@ public class SplashActivity extends AppCompatActivity protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mBaseDelegate.onCreate(); handleUpdateMapsFragmentCorrectly(savedInstanceState); UiThread.cancelDelayedTasks(mPermissionsDelayedTask); UiThread.cancelDelayedTasks(mInitCoreDelayedTask); @@ -113,6 +121,13 @@ public class SplashActivity extends AppCompatActivity initView(); } + @Override + protected void onNewIntent(Intent intent) + { + super.onNewIntent(intent); + mBaseDelegate.onNewIntent(intent); + } + private void handleUpdateMapsFragmentCorrectly(@Nullable Bundle savedInstanceState) { if (savedInstanceState == null) @@ -150,6 +165,7 @@ public class SplashActivity extends AppCompatActivity protected void onStart() { super.onStart(); + mBaseDelegate.onStart(); MyTracker.onStartActivity(this); } @@ -157,6 +173,7 @@ public class SplashActivity extends AppCompatActivity protected void onResume() { super.onResume(); + mBaseDelegate.onResume(); mCanceled = false; mPermissionsGranted = PermissionsUtils.isExternalStorageGranted(); DialogFragment storagePermissionsDialog = StoragePermissionsDialogFragment.find(this); @@ -190,20 +207,29 @@ public class SplashActivity extends AppCompatActivity @Override protected void onPause() { + super.onPause(); + mBaseDelegate.onPause(); mCanceled = true; UiThread.cancelDelayedTasks(mPermissionsDelayedTask); UiThread.cancelDelayedTasks(mInitCoreDelayedTask); UiThread.cancelDelayedTasks(mFinalDelayedTask); - super.onPause(); } @Override protected void onStop() { super.onStop(); + mBaseDelegate.onStop(); MyTracker.onStopActivity(this); } + @Override + protected void onDestroy() + { + super.onDestroy(); + mBaseDelegate.onDestroy(); + } + private void resumeDialogs() { if (mCanceled) @@ -328,4 +354,23 @@ public class SplashActivity extends AppCompatActivity startActivity(result); finish(); } + + @Override + @NonNull + public Activity get() + { + return this; + } + + @Override + public int getThemeResourceId(@NonNull String theme) + { + if (ThemeUtils.isDefaultTheme(theme)) + return R.style.MwmTheme; + + if (ThemeUtils.isNightTheme(theme)) + return R.style.MwmTheme_Night; + + throw new IllegalArgumentException("Attempt to apply unsupported theme: " + theme); + } } diff --git a/android/src/com/mapswithme/maps/base/BaseActivity.java b/android/src/com/mapswithme/maps/base/BaseActivity.java index 408bd59155..09f71017c6 100644 --- a/android/src/com/mapswithme/maps/base/BaseActivity.java +++ b/android/src/com/mapswithme/maps/base/BaseActivity.java @@ -6,6 +6,7 @@ import android.support.annotation.StyleRes; public interface BaseActivity { + @NonNull Activity get(); @StyleRes int getThemeResourceId(@NonNull String theme); diff --git a/android/src/com/mapswithme/maps/base/BaseActivityDelegate.java b/android/src/com/mapswithme/maps/base/BaseActivityDelegate.java index b5a11ed033..0f05a6c48e 100644 --- a/android/src/com/mapswithme/maps/base/BaseActivityDelegate.java +++ b/android/src/com/mapswithme/maps/base/BaseActivityDelegate.java @@ -14,7 +14,7 @@ import com.mapswithme.util.concurrency.UiThread; import com.mapswithme.util.statistics.Statistics; import com.my.tracker.MyTracker; -class BaseActivityDelegate +public class BaseActivityDelegate { private static final String TAG = BaseActivityDelegate.class.getSimpleName(); @NonNull @@ -22,12 +22,12 @@ class BaseActivityDelegate @Nullable private String mThemeName; - BaseActivityDelegate(@NonNull BaseActivity activity) + public BaseActivityDelegate(@NonNull BaseActivity activity) { mActivity = activity; } - void onNewIntent(@NonNull Intent intent) + public void onNewIntent(@NonNull Intent intent) { logLifecycleMethod("onNewIntent(" + intent + ")"); } @@ -40,26 +40,26 @@ class BaseActivityDelegate mActivity.get().setTheme(mActivity.getThemeResourceId(mThemeName)); } - void onDestroy() + public void onDestroy() { logLifecycleMethod("onDestroy()"); ViewServer.get(mActivity.get()).removeWindow(mActivity.get()); } - void onPostCreate() + public void onPostCreate() { logLifecycleMethod("onPostCreate()"); ViewServer.get(mActivity.get()).addWindow(mActivity.get()); } - void onStart() + public void onStart() { logLifecycleMethod("onStart()"); Statistics.INSTANCE.startActivity(mActivity.get()); MyTracker.onStartActivity(mActivity.get()); } - void onStop() + public void onStop() { logLifecycleMethod("onStop()"); Statistics.INSTANCE.stopActivity(mActivity.get()); @@ -80,7 +80,7 @@ class BaseActivityDelegate org.alohalytics.Statistics.logEvent("$onPause", mActivity.getClass().getSimpleName()); } - void onPostResume() + public void onPostResume() { logLifecycleMethod("onPostResume()"); if (!TextUtils.isEmpty(mThemeName) && mThemeName.equals(Config.getCurrentUiTheme())) diff --git a/android/src/com/mapswithme/maps/base/BaseMwmFragmentActivity.java b/android/src/com/mapswithme/maps/base/BaseMwmFragmentActivity.java index 3eff1b013d..034b54115e 100644 --- a/android/src/com/mapswithme/maps/base/BaseMwmFragmentActivity.java +++ b/android/src/com/mapswithme/maps/base/BaseMwmFragmentActivity.java @@ -31,6 +31,7 @@ public abstract class BaseMwmFragmentActivity extends AppCompatActivity private boolean mInitializationCompleted = false; @Override + @NonNull public Activity get() { return this; |