Revert "Set up fragments just after setContentView()."
It crashed on 2-pane portrait. Seems like there's no ContactDetailFragment in the layout...
This reverts commit 0dafecbe5dbf810d83f9cf0ce590e8e055c53a48
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index 1414f80..b78fad2 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -19,13 +19,10 @@
import com.android.contacts.test.InjectedServices;
import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
-import android.view.View;
/**
* A common superclass for Contacts activities that handles application-wide services.
@@ -89,32 +86,4 @@
public void onServiceCompleted(Intent callbackIntent) {
onNewIntent(callbackIntent);
}
-
- /**
- * Convenient version of {@link FragmentManager#findFragmentById(int)}, which throws
- * an exception if the fragment doesn't exist.
- */
- @SuppressWarnings("unchecked")
- public <T extends Fragment> T getFragment(int id) {
- T result = (T)getFragmentManager().findFragmentById(id);
- if (result == null) {
- throw new IllegalArgumentException("fragment 0x" + Integer.toHexString(id)
- + " doesn't exist");
- }
- return result;
- }
-
- /**
- * Convenient version of {@link #findViewById(int)}, which throws
- * an exception if the view doesn't exist.
- */
- @SuppressWarnings("unchecked")
- public <T extends View> T getView(int id) {
- T result = (T)findViewById(id);
- if (result == null) {
- throw new IllegalArgumentException("view 0x" + Integer.toHexString(id)
- + " doesn't exist");
- }
- return result;
- }
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 1bc5d06..12a17f2 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -90,6 +90,7 @@
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListPopupWindow;
+import android.widget.SearchView;
import android.widget.Toast;
import java.util.ArrayList;
@@ -209,13 +210,38 @@
@Override
public void onAttachFragment(Fragment fragment) {
- if (fragment instanceof ContactsUnavailableFragment) {
- // This fragment is inflated dynamically, we'll initialize it here in onAttachFragment,
- // as opposed to configureContentView().
+ if (fragment instanceof DefaultContactBrowseListFragment) {
+ mAllFragment = (DefaultContactBrowseListFragment)fragment;
+ mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
+ if (!getWindow().hasFeature(Window.FEATURE_ACTION_BAR)) {
+ mAllFragment.setContextMenuAdapter(
+ new ContactBrowseListContextMenuAdapter(mAllFragment));
+ }
+ } else if (fragment instanceof GroupBrowseListFragment) {
+ mGroupsFragment = (GroupBrowseListFragment) fragment;
+ mGroupsFragment.setListener(new GroupBrowserActionListener());
+ } else if (fragment instanceof ContactDetailFragment) {
+ mContactDetailFragment = (ContactDetailFragment) fragment;
+ mContactDetailFragment.setListener(mContactDetailFragmentListener);
+ } else if (fragment instanceof ContactDetailUpdatesFragment) {
+ mContactDetailUpdatesFragment = (ContactDetailUpdatesFragment) fragment;
+ } else if (fragment instanceof ContactsUnavailableFragment) {
mContactsUnavailableFragment = (ContactsUnavailableFragment)fragment;
mContactsUnavailableFragment.setProviderStatusLoader(mProviderStatusLoader);
mContactsUnavailableFragment.setOnContactsUnavailableActionListener(
new ContactsUnavailableFragmentListener());
+ } else if (fragment instanceof ContactLoaderFragment) {
+ mContactDetailLoaderFragment = (ContactLoaderFragment) fragment;
+ mContactDetailLoaderFragment.setListener(mContactDetailLoaderFragmentListener);
+ } else if (fragment instanceof GroupDetailFragment) {
+ mGroupDetailFragment = (GroupDetailFragment) fragment;
+ mGroupDetailFragment.setListener(mGroupDetailFragmentListener);
+ mGroupDetailFragment.setQuickContact(PhoneCapabilityTester.isUsingTwoPanes(this));
+ } else if (fragment instanceof StrequentContactListFragment) {
+ mFavoritesFragment = (StrequentContactListFragment) fragment;
+ mFavoritesFragment.setListener(mFavoritesFragmentListener);
+ mFavoritesFragment.setDisplayType(DisplayType.STARRED_ONLY);
+ mFavoritesFragment.setQuickContact(PhoneCapabilityTester.isUsingTwoPanes(this));
}
}
@@ -249,6 +275,39 @@
return;
}
+ if (createContentView) {
+ setContentView(R.layout.people_activity);
+
+ mFavoritesView = findViewById(R.id.favorites_view);
+ mDetailsView = findViewById(R.id.details_view);
+ mBrowserView = findViewById(R.id.browse_view);
+
+ final FragmentManager fragmentManager = getFragmentManager();
+ mFavoritesFragment = (StrequentContactListFragment) fragmentManager
+ .findFragmentById(R.id.favorites_fragment);
+ mFrequentFragment = (StrequentContactListFragment) fragmentManager
+ .findFragmentById(R.id.frequent_fragment);
+ mAllFragment = (DefaultContactBrowseListFragment) fragmentManager
+ .findFragmentById(R.id.all_fragment);
+ mGroupsFragment = (GroupBrowseListFragment) fragmentManager
+ .findFragmentById(R.id.groups_fragment);
+ // Hide all tabs (the current tab will later be reshown once a tab is selected)
+ final FragmentTransaction transaction = fragmentManager.beginTransaction();
+ transaction.hide(mAllFragment);
+ transaction.hide(mGroupsFragment);
+
+ if (mFrequentFragment != null) {
+ mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
+ }
+ if (mContactDetailFragment != null) {
+ transaction.hide(mContactDetailFragment);
+ }
+ if (mGroupDetailFragment != null) {
+ transaction.hide(mGroupDetailFragment);
+ }
+ transaction.commit();
+ }
+
if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT
&& !PhoneCapabilityTester.isUsingTwoPanes(this)) {
redirect = new Intent(this, ContactDetailActivity.class);
@@ -259,65 +318,6 @@
return;
}
- if (createContentView) {
- setContentView(R.layout.people_activity);
-
- final FragmentManager fragmentManager = getFragmentManager();
-
- // Hide all tabs (the current tab will later be reshown once a tab is selected)
- final FragmentTransaction transaction = fragmentManager.beginTransaction();
-
- // Common fragments that exist on both 1 and 2 panes.
- mFavoritesFragment = getFragment(R.id.favorites_fragment);
- mFavoritesFragment.setListener(mFavoritesFragmentListener);
- mFavoritesFragment.setDisplayType(DisplayType.STARRED_ONLY);
-
- mAllFragment = getFragment(R.id.all_fragment);
- mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
- if (!getWindow().hasFeature(Window.FEATURE_ACTION_BAR)) {
- mAllFragment.setContextMenuAdapter(
- new ContactBrowseListContextMenuAdapter(mAllFragment));
- }
-
- mGroupsFragment = getFragment(R.id.groups_fragment);
- mGroupsFragment.setListener(new GroupBrowserActionListener());
-
- transaction.hide(mAllFragment);
- transaction.hide(mGroupsFragment);
-
- if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
- mFavoritesFragment.setQuickContact(true);
-
- // Container views for fragments
- mFavoritesView = getView(R.id.favorites_view);
- mDetailsView = getView(R.id.details_view);
- mBrowserView = getView(R.id.browse_view);
-
- // 2-pane only fragments
- mFrequentFragment = getFragment(R.id.frequent_fragment);
- mFrequentFragment.setListener(mFavoritesFragmentListener);
- mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
- mFrequentFragment.setQuickContact(true);
-
- mContactDetailFragment = getFragment(R.id.about_fragment);
- mContactDetailFragment.setListener(mContactDetailFragmentListener);
-
- mContactDetailUpdatesFragment = getFragment(R.id.updates_fragment);
-
- mContactDetailLoaderFragment = getFragment(R.id.contact_detail_loader_fragment);
- mContactDetailLoaderFragment.setListener(mContactDetailLoaderFragmentListener);
-
- mGroupDetailFragment = getFragment(R.id.group_detail_fragment);
- mGroupDetailFragment.setListener(mGroupDetailFragmentListener);
- mGroupDetailFragment.setQuickContact(true);
-
- transaction.hide(mContactDetailFragment);
- transaction.hide(mGroupDetailFragment);
- }
- transaction.commit();
- fragmentManager.executePendingTransactions();
- }
-
setTitle(mRequest.getActivityTitle());
ActionBar actionBar = getActionBar();
mActionBarAdapter = new ActionBarAdapter(this, this);