summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Jang <wjang@google.com>2015-04-03 21:46:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-03 21:46:34 +0000
commit9233f5034e1400b25fa80f6250ee189e4e0be39e (patch)
tree2d52855580f30dc3f37fa3a58b97a0c12385f01c
parent092e74e944caf757676eebd1dd73fb5e29cc39db (diff)
parenta69f58fcf5c143ac7dd6421a30004d56813e321a (diff)
downloadandroid_packages_apps_Contacts-9233f5034e1400b25fa80f6250ee189e4e0be39e.tar.gz
android_packages_apps_Contacts-9233f5034e1400b25fa80f6250ee189e4e0be39e.tar.bz2
android_packages_apps_Contacts-9233f5034e1400b25fa80f6250ee189e4e0be39e.zip
Merge "Don't add compact editor fragment if it's already there"
-rw-r--r--res/layout/compact_contact_editor_activity.xml10
-rw-r--r--res/layout/compact_contact_editor_fragment.xml1
-rw-r--r--src/com/android/contacts/activities/CompactContactEditorActivity.java7
-rw-r--r--src/com/android/contacts/editor/ContactEditorBaseFragment.java6
-rw-r--r--src/com/android/contacts/editor/ContactEditorFragment.java4
5 files changed, 18 insertions, 10 deletions
diff --git a/res/layout/compact_contact_editor_activity.xml b/res/layout/compact_contact_editor_activity.xml
index bb89d0135..db847b011 100644
--- a/res/layout/compact_contact_editor_activity.xml
+++ b/res/layout/compact_contact_editor_activity.xml
@@ -16,13 +16,7 @@
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/compact_contact_editor_fragment_container"
android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <fragment android:id="@+id/compact_contact_editor_fragment"
- class="com.android.contacts.editor.CompactContactEditorFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
-
-</FrameLayout>
+ android:layout_height="match_parent"/>
diff --git a/res/layout/compact_contact_editor_fragment.xml b/res/layout/compact_contact_editor_fragment.xml
index a6cda4c2a..696f8db95 100644
--- a/res/layout/compact_contact_editor_fragment.xml
+++ b/res/layout/compact_contact_editor_fragment.xml
@@ -16,6 +16,7 @@
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/compact_contact_editor_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_primary"
diff --git a/src/com/android/contacts/activities/CompactContactEditorActivity.java b/src/com/android/contacts/activities/CompactContactEditorActivity.java
index c1c6c40fb..e85059148 100644
--- a/src/com/android/contacts/activities/CompactContactEditorActivity.java
+++ b/src/com/android/contacts/activities/CompactContactEditorActivity.java
@@ -36,6 +36,13 @@ public class CompactContactEditorActivity extends ContactEditorBaseActivity {
mFragment = (CompactContactEditorFragment) getFragmentManager().findFragmentById(
R.id.compact_contact_editor_fragment);
+ if (mFragment == null) {
+ mFragment = new CompactContactEditorFragment();
+ getFragmentManager().beginTransaction()
+ .add(R.id.compact_contact_editor_fragment_container,
+ (CompactContactEditorFragment) mFragment)
+ .commit();
+ }
mFragment.setListener(mFragmentListener);
final String action = getIntent().getAction();
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index f6c495278..a7686ae3d 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -647,7 +647,9 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
case REQUEST_CODE_ACCOUNTS_CHANGED: {
// Bail if the account selector was not successful.
if (resultCode != Activity.RESULT_OK) {
- mListener.onReverted();
+ if (mListener != null) {
+ mListener.onReverted();
+ }
return;
}
// If there's an account specified, use it.
@@ -993,6 +995,8 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
// prompt the user again, then launch the account prompt.
if (mEditorUtils.shouldShowAccountChangedNotification()) {
Intent intent = new Intent(mContext, ContactEditorAccountsChangedActivity.class);
+ // Prevent a second instance from being started on rotates
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mStatus = Status.SUB_ACTIVITY;
startActivityForResult(intent, REQUEST_CODE_ACCOUNTS_CHANGED);
} else {
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 5b3c7fa61..494972921 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -124,7 +124,9 @@ public class ContactEditorFragment extends ContactEditorBaseFragment implements
@Override
public void onExternalEditorRequest(AccountWithDataSet account, Uri uri) {
- mListener.onCustomEditContactActivityRequested(account, uri, null, false);
+ if (mListener != null) {
+ mListener.onCustomEditContactActivityRequested(account, uri, null, false);
+ }
}
@Override