summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblong <blong@codeaurora.org>2016-08-26 11:35:47 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-28 19:01:18 -0700
commite87079ee422b918b8e1510301fddbe3764ec4255 (patch)
treedd269335fb351e15c3716c1ee391bfda9ab05dc7
parent5200e62f6636f8d29f96a33ad10f90ec24423632 (diff)
downloadpackages_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-xsrc/com/android/contacts/activities/MultiPickContactsActivity.java48
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