diff options
author | blong <blong@codeaurora.org> | 2016-08-26 11:35:47 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-08-28 19:01:18 -0700 |
commit | e87079ee422b918b8e1510301fddbe3764ec4255 (patch) | |
tree | dd269335fb351e15c3716c1ee391bfda9ab05dc7 | |
parent | 5200e62f6636f8d29f96a33ad10f90ec24423632 (diff) | |
download | packages_apps_Contacts-e87079ee422b918b8e1510301fddbe3764ec4255.tar.gz packages_apps_Contacts-e87079ee422b918b8e1510301fddbe3764ec4255.tar.bz2 packages_apps_Contacts-e87079ee422b918b8e1510301fddbe3764ec4255.zip |
Fix NullPointerException in monkey test
- When fragment recreate in the background,need initial them
in the activity,so the FC will not happen
CRs-Fixed: 1059756
Change-Id: I9b6906f645eb72876c0211965635eb9650e2f0db
-rwxr-xr-x | src/com/android/contacts/activities/MultiPickContactsActivity.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/com/android/contacts/activities/MultiPickContactsActivity.java b/src/com/android/contacts/activities/MultiPickContactsActivity.java index 8452a2138..8d7824117 100755 --- a/src/com/android/contacts/activities/MultiPickContactsActivity.java +++ b/src/com/android/contacts/activities/MultiPickContactsActivity.java @@ -245,6 +245,7 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP // so the Fragment will only be created once. If we add a TAG manually, there will // occur crash. position = getRtlPosition(position); + if (mAreTabsHiddenInViewPager) { if (mPickMode.isPickCall()) { mDelCallLogFragment = new DelCallLogFragment(); @@ -289,6 +290,53 @@ public class MultiPickContactsActivity extends Activity implements ViewPager.OnP public int getCount() { return mAreTabsHiddenInViewPager ? 1 : TAB_INDEX_COUNT; } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + + Fragment f = (Fragment) super.instantiateItem(container, position); + + if (mAreTabsHiddenInViewPager) { + if (mPickMode.isPickCall()) { + if (mDelCallLogFragment == null) { + mDelCallLogFragment = (DelCallLogFragment) f; + mDelCallLogFragment + .setCheckListListener(new CheckListListener()); + } + } else { + if (mContactsFragment == null) { + mContactsFragment = (ContactsFragment) f; + mContactsFragment + .setCheckListListener(new CheckListListener()); + } + } + } else { + switch (position) { + case TAB_INDEX_RECENT: + if (mCallLogFragment == null) { + mCallLogFragment = (CallLogFragment) f; + mCallLogFragment + .setCheckListListener(new CheckListListener()); + } + break; + case TAB_INDEX_CONTACTS: + if (mContactsFragment == null) { + mContactsFragment = (ContactsFragment) f; + mContactsFragment + .setCheckListListener(new CheckListListener()); + } + break; + case TAB_INDEX_GROUP: + if (mGroupFragment == null) { + mGroupFragment = (GroupsFragment) f; + mGroupFragment + .setCheckListListener(new CheckListListener()); + } + break; + } + } + return f; + } } @Override |