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() {