Merge "Fix IllegalStateException in onBackPressed" into ub-contactsdialer-a-dev
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 9103a53..ec78b4d 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -142,6 +142,8 @@
private MultiSelectContactsListFragment mAllFragment;
private ContactTileListFragment mFavoritesFragment;
+ private boolean mIsVisible;
+
/** ViewPager for swipe */
private ViewPager mTabPager;
private ViewPagerTabs mViewPagerTabs;
@@ -410,6 +412,14 @@
configureFragments(!mIsRecreatedInstance);
}
super.onStart();
+
+ mIsVisible = true;
+ }
+
+ @Override
+ protected void onStop() {
+ mIsVisible = false;
+ super.onStop();
}
@Override
@@ -454,6 +464,13 @@
super.onDestroy();
}
+ /**
+ * Returns true when the Activity is currently visible (between onStart and onStop).
+ */
+ /* package */ boolean isVisible() {
+ return mIsVisible;
+ }
+
private void configureFragments(boolean fromRequest) {
if (fromRequest) {
ContactListFilter filter = null;
@@ -1338,6 +1355,10 @@
@Override
public void onBackPressed() {
+ if (!isVisible()) {
+ return;
+ }
+
if (mActionBarAdapter.isSelectionMode()) {
mActionBarAdapter.setSelectionMode(false);
mAllFragment.displayCheckBoxes(false);
@@ -1350,6 +1371,8 @@
@Override
protected void onSaveInstanceState(Bundle outState) {
+ mIsVisible = false;
+
super.onSaveInstanceState(outState);
mActionBarAdapter.onSaveInstanceState(outState);