From b0dc24d55439145017735c637671e1e529f80d9c Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Fri, 15 Jul 2016 01:43:56 +0300 Subject: [PATCH] launcher activity market bug fixed --- .../navigation/activities/BaseActivity.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java index 12bb4ee..07e96df 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java @@ -1,6 +1,7 @@ package ru.touchin.roboswag.components.navigation.activities; import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -35,9 +36,25 @@ public abstract class BaseActivity extends AppCompatActivity return resumed; } + protected boolean isLauncherActivity() { + return false; + } + @Override protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + // Possible work around for market launches. See http://code.google.com/p/android/issues/detail?id=2373 + // for more details. Essentially, the market launches the main activity on top of other activities. + // we never want this to happen. Instead, we check if we are the root and if not, we finish. + if (isLauncherActivity() && !isTaskRoot()) { + final Intent intent = getIntent(); + if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(intent.getAction())) { + finish(); + return; + } + } + isCreatedSubject.onNext(true); }