diff --git a/ChangeLog.md b/ChangeLog.md index 2e1e2db..a8e14be 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,6 @@ +Version: 1.1.4 +Fix the bug that navigation may crash the app when the app just resumes from other app such as facebook login + Version: 1.1.3 * Broke Android SDK dependency out from Android Mvc Controller module * Update Espresso to 2.2 diff --git a/README.md b/README.md index 5ce1fe8..1625e2c 100644 --- a/README.md +++ b/README.md @@ -33,13 +33,13 @@ The library is currently release to jCenter and MavenCentral com.shipdream android-mvc - 1.1.3 + 1.1.4 ``` **Gradle:** ```groovy -compile "com.shipdream:android-mvc:1.1.3" +compile "com.shipdream:android-mvc:1.1.4" ``` ## Dependency injection with reference count diff --git a/build.gradle b/build.gradle index 7f9232e..9cabbdf 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ def jacocoCoveredProjects = [ project(":library:android-mvc-controller") ] -allprojects{ +allprojects { repositories { jcenter() mavenLocal() @@ -62,7 +62,7 @@ ext { version = [ major: 1, minor: 1, - patch : 3 + patch : 4 ] libGroup = 'com.shipdream' libVersion = "${version.major}.${version.minor}.${version.patch}" diff --git a/documents/sites/Site-MarkDown.md b/documents/sites/Site-MarkDown.md index 7b31f74..eb4fa73 100644 --- a/documents/sites/Site-MarkDown.md +++ b/documents/sites/Site-MarkDown.md @@ -40,13 +40,13 @@ The library is currently release to jCenter and MavenCentral com.shipdream android-mvc - 1.1.3 + 1.1.4 ``` **Gradle:** ```groovy -compile "com.shipdream:android-mvc:1.1.3" +compile "com.shipdream:android-mvc:1.1.4" ``` ## Samples diff --git a/library/android-mvc/src/main/java/com/shipdream/lib/android/mvc/view/MvcActivity.java b/library/android-mvc/src/main/java/com/shipdream/lib/android/mvc/view/MvcActivity.java index 5533c00..e54a4f4 100644 --- a/library/android-mvc/src/main/java/com/shipdream/lib/android/mvc/view/MvcActivity.java +++ b/library/android-mvc/src/main/java/com/shipdream/lib/android/mvc/view/MvcActivity.java @@ -110,8 +110,8 @@ void addPendingOnViewReadyActions(Runnable runnable) { public static abstract class DelegateFragment extends MvcFragment { private static final String MVC_STATE_BUNDLE_KEY = AndroidMvc.MVC_SATE_PREFIX + "RootBundle"; private Logger mLogger = LoggerFactory.getLogger(getClass()); - //Mimic the behavior of Android framework to manage the state save state - private boolean mStateSaved = false; + //Track if the state is saved and not able to commit fragment transaction + private boolean canCommitFragmentTransaction = false; private List mPendingNavActions = new ArrayList<>(); private List mPendingOnViewReadyActions = new ArrayList<>(); @@ -325,9 +325,10 @@ public void onViewStateRestored(Bundle savedInstanceState) { protected abstract void onStartUp(); @Override - public void onStart() { - super.onStart(); - mStateSaved = false; + public void onResume() { + super.onResume(); + canCommitFragmentTransaction = true; + runPendingNavigationActions(); } @@ -341,9 +342,9 @@ private void runPendingNavigationActions() { } @Override - public void onStop() { - super.onStop(); - mStateSaved = true; + public void onPause() { + super.onPause(); + canCommitFragmentTransaction = false; } @Override @@ -357,9 +358,7 @@ public void onSaveInstanceState(Bundle outState) { } public void onEvent(final NavigationController.EventC2V.OnLocationForward event) { - if (mStateSaved) { - //TODO: seems will have potential problem when the app is killed. Should - //respond back to nav controller to issue the back action action when the app restarts. + if (!canCommitFragmentTransaction) { mPendingNavActions.add(new Runnable() { @Override public void run() { @@ -428,7 +427,7 @@ private void performForwardNav(NavigationController.EventC2V.OnLocationForward e } public void onEvent(final NavigationController.EventC2V.OnLocationBack event) { - if (mStateSaved) { + if (!canCommitFragmentTransaction) { mPendingNavActions.add(new Runnable() { @Override public void run() {