diff options
author | Walter Jang <wjang@google.com> | 2015-04-03 21:46:33 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-03 21:46:34 +0000 |
commit | 9233f5034e1400b25fa80f6250ee189e4e0be39e (patch) | |
tree | 2d52855580f30dc3f37fa3a58b97a0c12385f01c | |
parent | 092e74e944caf757676eebd1dd73fb5e29cc39db (diff) | |
parent | a69f58fcf5c143ac7dd6421a30004d56813e321a (diff) | |
download | android_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"
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 |