Controller becomes Fragment and Configuration disappears.
Change-Id: I432b16f8b617765e770a8b2be34632c10d5d913d
diff --git a/src/com/android/contacts/ContactsApplicationController.java b/src/com/android/contacts/ContactsApplicationController.java
index ac7fd3f..41daf26 100644
--- a/src/com/android/contacts/ContactsApplicationController.java
+++ b/src/com/android/contacts/ContactsApplicationController.java
@@ -17,8 +17,10 @@
/**
* An interface that captures various top-level actions that can be performed in
- * the Contacts app.
+ * the Contacts app. This is a temporary class to be replaced by individual
+ * listeners for various actions.
*/
+@Deprecated
public interface ContactsApplicationController {
/**
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 3187e41..beb693a 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -17,9 +17,11 @@
package com.android.contacts;
import com.android.contacts.list.ContactEntryListAdapter;
-import com.android.contacts.list.ContactEntryListConfiguration;
+import com.android.contacts.list.ContactEntryListFragment;
import com.android.contacts.list.ContactItemListAdapter;
import com.android.contacts.list.ContactsIntentResolver;
+import com.android.contacts.list.DefaultContactListFragment;
+import com.android.contacts.list.MultiplePhonePickerFragment;
import com.android.contacts.model.ContactsSource;
import com.android.contacts.model.Sources;
import com.android.contacts.ui.ContactsPreferences;
@@ -33,6 +35,7 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
+import android.app.FragmentTransaction;
import android.app.SearchManager;
import android.content.AsyncQueryHandler;
import android.content.ContentResolver;
@@ -454,7 +457,7 @@
};
private ContactsIntentResolver mIntentResolver;
- protected ContactEntryListConfiguration mConfig;
+ protected ContactEntryListFragment mListFragment;
private ListView mListView;
@@ -484,24 +487,29 @@
// Resolve the intent
final Intent intent = getIntent();
- mConfig = resolveIntent(intent);
- initContentView();
+ if (!resolveIntent(intent)) {
+ return;
+ }
+
+ FragmentTransaction transaction = openFragmentTransaction();
+ transaction.add(mListFragment, android.R.id.content);
+ transaction.commit();
}
- protected ContactEntryListConfiguration resolveIntent(final Intent intent) {
+ protected boolean resolveIntent(final Intent intent) {
mIntentResolver.setIntent(intent);
if (!mIntentResolver.isValid()) { // Invalid intent
setResult(RESULT_CANCELED);
finish();
- return null;
+ return false;
}
Intent redirect = mIntentResolver.getRedirectIntent();
if (redirect != null) { // Need to start a different activity
startActivity(redirect);
finish();
- return null;
+ return false;
}
setTitle(mIntentResolver.getActivityTitle());
@@ -521,22 +529,46 @@
mShowNumberOfContacts = mIntentResolver.mShowNumberOfContacts;
mGroupName = mIntentResolver.mGroupName;
- return mIntentResolver.getConfiguration();
- }
-
- public void initContentView() {
- setContentView(mConfig.createView());
-
- mListView = (ListView) findViewById(android.R.id.list);
-
- if (mSearchMode) {
- setupSearchView();
+ switch (mMode) {
+ case MODE_DEFAULT: {
+ mListFragment = new DefaultContactListFragment();
+ if (!mSearchMode) {
+ mListFragment.setSectionHeaderDisplayEnabled(true);
+ }
+ break;
+ }
+ case MODE_LEGACY_PICK_POSTAL:
+ case MODE_PICK_POSTAL:
+ case MODE_LEGACY_PICK_PHONE:
+ case MODE_PICK_PHONE:
+ case MODE_STREQUENT:
+ case MODE_FREQUENT: {
+ mListFragment = new DefaultContactListFragment();
+ break;
+ }
+ case MODE_PICK_MULTIPLE_PHONES: {
+ mListFragment = new MultiplePhonePickerFragment();
+ break;
+ }
+ default: {
+ mListFragment = new DefaultContactListFragment();
+ if (!mSearchMode) {
+ mListFragment.setSectionHeaderDisplayEnabled(true);
+ }
+ }
}
- View emptyView = mListView.getEmptyView();
- if (emptyView instanceof ContactListEmptyView) {
- mEmptyView = (ContactListEmptyView)emptyView;
+ mListFragment.setSearchMode(mSearchMode);
+ mListFragment.setSearchResultsMode(mSearchResultsMode);
+ mListFragment.setQueryString(mInitialFilter);
+
+ if ((mMode & MODE_MASK_SHOW_PHOTOS) == MODE_MASK_SHOW_PHOTOS) {
+ mListFragment.setPhotoLoaderEnabled(true);
}
+
+ mListFragment.setContactsApplicationController(this);
+
+ return true;
}
// TODO move this to the configuration object(s)
@@ -583,7 +615,7 @@
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_FLING) {
mPhotoLoader.pause();
- } else if (mConfig.isPhotoLoaderEnabled()) {
+ } else if (mListFragment.isPhotoLoaderEnabled()) {
mPhotoLoader.resume();
}
}
@@ -649,6 +681,18 @@
protected void onResume() {
super.onResume();
+ // TODO move this to onAttach of the corresponding fragment
+ mListView = (ListView) findViewById(android.R.id.list);
+
+ if (mSearchMode) {
+ setupSearchView();
+ }
+
+ View emptyView = mListView.getEmptyView();
+ if (emptyView instanceof ContactListEmptyView) {
+ mEmptyView = (ContactListEmptyView)emptyView;
+ }
+
registerProviderStatusObserver();
mPhotoLoader.resume();
@@ -1933,7 +1977,7 @@
baseUri = Contacts.CONTENT_URI;
}
- if (mConfig.isSectionHeaderDisplayEnabled()) {
+ if (mListFragment.isSectionHeaderDisplayEnabled()) {
return buildSectionIndexerUri(baseUri);
} else {
return baseUri;
diff --git a/src/com/android/contacts/JoinContactActivity.java b/src/com/android/contacts/JoinContactActivity.java
index e555523..bacd0af 100644
--- a/src/com/android/contacts/JoinContactActivity.java
+++ b/src/com/android/contacts/JoinContactActivity.java
@@ -17,9 +17,8 @@
package com.android.contacts;
-import com.android.contacts.list.ContactEntryListConfiguration;
import com.android.contacts.list.JoinContactListAdapter;
-import com.android.contacts.list.JoinContactListConfiguration;
+import com.android.contacts.list.JoinContactListFragment;
import android.content.ContentUris;
import android.content.Intent;
@@ -72,7 +71,7 @@
private JoinContactListAdapter mAdapter;
@Override
- protected ContactEntryListConfiguration resolveIntent(Intent intent) {
+ protected boolean resolveIntent(Intent intent) {
mMode = MODE_PICK_CONTACT;
mTargetContactId = intent.getLongExtra(EXTRA_TARGET_CONTACT_ID, -1);
if (mTargetContactId == -1) {
@@ -80,15 +79,19 @@
+ EXTRA_TARGET_CONTACT_ID);
setResult(RESULT_CANCELED);
finish();
- return null;
+ return false;
}
- return new JoinContactListConfiguration(this, this);
+
+ mListFragment = new JoinContactListFragment();
+
+ return true;
}
@Override
- public void initContentView() {
- setContentView(mConfig.createView());
+ protected void onResume() {
+ super.onResume();
+ // TODO move this to onAttach of the corresponding fragment
TextView blurbView = (TextView)findViewById(R.id.join_contact_blurb);
String blurb = getString(R.string.blurbJoinContactDataWith,
diff --git a/src/com/android/contacts/MultiplePhonePickerActivity.java b/src/com/android/contacts/MultiplePhonePickerActivity.java
index 3eeb20a..492f419 100644
--- a/src/com/android/contacts/MultiplePhonePickerActivity.java
+++ b/src/com/android/contacts/MultiplePhonePickerActivity.java
@@ -18,7 +18,6 @@
import com.android.contacts.list.MultiplePhoneExtraAdapter;
import com.android.contacts.list.MultiplePhonePickerAdapter;
-import com.android.contacts.list.MultiplePhonePickerConfiguration;
import com.android.contacts.list.MultiplePhonePickerItemView;
import com.android.contacts.list.MultiplePhoneSelection;
@@ -129,8 +128,10 @@
}
@Override
- public void initContentView() {
- super.initContentView();
+ protected void onResume() {
+ super.onResume();
+
+ // TODO move this to onAttach of the corresponding fragment
ListView listView = (ListView)findViewById(android.R.id.list);
((MultiplePhonePickerAdapter)listView.getAdapter()).setExtraAdapter(mPhoneNumberAdapter);
ViewStub stub = (ViewStub)findViewById(R.id.footer_stub);
diff --git a/src/com/android/contacts/list/ContactEntryListController.java b/src/com/android/contacts/list/ContactEntryListController.java
deleted file mode 100644
index a190b4e..0000000
--- a/src/com/android/contacts/list/ContactEntryListController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.list;
-
-import com.android.contacts.ContactsApplicationController;
-
-import android.content.Context;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-
-/**
- * Common base class for various contact-related list controllers.
- */
-public abstract class ContactEntryListController implements AdapterView.OnItemClickListener {
-
- private final Context mContext;
- private final ContactsApplicationController mAppController;
- private ListAdapter mAdapter;
- private ListView mListView;
-
- public ContactEntryListController(Context context,
- ContactsApplicationController appController) {
- this.mContext = context;
- this.mAppController = appController;
- }
-
- public Context getContext() {
- return mContext;
- }
-
- public ContactsApplicationController getContactsApplicationController() {
- return mAppController;
- }
-
- public void setAdapter(ListAdapter adapter) {
- mAdapter = adapter;
- }
-
- public ListAdapter getAdapter() {
- return mAdapter;
- }
-
- public void setListView(ListView listView) {
- mListView = listView;
- }
-
- public ListView getListView() {
- return mListView;
- }
-
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- hideSoftKeyboard();
-
- onItemClick(position, id);
- }
-
- protected abstract void onItemClick(int position, long id);
-
- private void hideSoftKeyboard() {
- // Hide soft keyboard, if visible
- InputMethodManager inputMethodManager = (InputMethodManager)
- mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
- inputMethodManager.hideSoftInputFromWindow(mListView.getWindowToken(), 0);
- }
-}
diff --git a/src/com/android/contacts/list/ContactEntryListConfiguration.java b/src/com/android/contacts/list/ContactEntryListFragment.java
similarity index 61%
rename from src/com/android/contacts/list/ContactEntryListConfiguration.java
rename to src/com/android/contacts/list/ContactEntryListFragment.java
index 88cf001..25f5674 100644
--- a/src/com/android/contacts/list/ContactEntryListConfiguration.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -21,98 +21,37 @@
import com.android.contacts.R;
import com.android.contacts.widget.PinnedHeaderListView;
+import android.app.Fragment;
import android.content.Context;
import android.text.Html;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
/**
- * Common base class for configurations of various contact-related lists, e.g.
- * contact list, phone number list etc.
+ * Common base class for various contact-related list fragments.
*/
-public abstract class ContactEntryListConfiguration {
+public abstract class ContactEntryListFragment extends Fragment
+ implements AdapterView.OnItemClickListener {
- private final Context mContext;
- private final ContactsApplicationController mApplicationController;
private boolean mSectionHeaderDisplayEnabled;
private boolean mPhotoLoaderEnabled;
private boolean mSearchMode;
private boolean mSearchResultsMode;
private String mQueryString;
- public ContactEntryListConfiguration(Context context,
- ContactsApplicationController applicationController) {
- this.mContext = context;
- this.mApplicationController = applicationController;
- }
+ private ContactsApplicationController mAppController;
+ private ListAdapter mAdapter;
+ private ListView mListView;
- public Context getContext() {
- return mContext;
- }
-
- public ContactsApplicationController getApplicationController() {
- return mApplicationController;
- }
-
- protected abstract View inflateView();
+ protected abstract View inflateView(LayoutInflater inflater, ViewGroup container);
protected abstract ListAdapter createListAdapter();
- protected abstract ContactEntryListController createController();
-
- public View createView() {
- View view = inflateView();
- ListAdapter adapter = createListAdapter();
- ContactEntryListController controller = createController();
- configureView(view, adapter, controller);
- return view;
- }
-
- protected void configureView(View view, ListAdapter adapter,
- ContactEntryListController controller) {
- ListView listView = (ListView)view.findViewById(android.R.id.list);
- if (listView == null) {
- throw new RuntimeException(
- "Your content must have a ListView whose id attribute is " +
- "'android.R.id.list'");
- }
-
- View emptyView = view.findViewById(com.android.internal.R.id.empty);
- if (emptyView != null) {
- listView.setEmptyView(emptyView);
- }
-
- controller.setAdapter(adapter);
- listView.setAdapter(adapter);
- listView.setOnItemClickListener(controller);
- controller.setListView(listView);
-
- ((ContactsListActivity)mContext).setupListView(adapter, listView);
-
- configurePinnedHeader(listView, adapter);
-
- if (isSearchResultsMode()) {
- TextView titleText = (TextView)view.findViewById(R.id.search_results_for);
- if (titleText != null) {
- titleText.setText(Html.fromHtml(getContext().getString(R.string.search_results_for,
- "<b>" + getQueryString() + "</b>")));
- }
- }
- }
-
- private void configurePinnedHeader(ListView listView, ListAdapter adapter) {
- if (!mSectionHeaderDisplayEnabled) {
- return;
- }
-
- if (listView instanceof PinnedHeaderListView
- && adapter instanceof PinnedHeaderListAdapter) {
- PinnedHeaderListView pinnedHeaderList = (PinnedHeaderListView)listView;
- PinnedHeaderListAdapter pinnedHeaderListAdapter = (PinnedHeaderListAdapter)adapter;
- View headerView = pinnedHeaderListAdapter.createPinnedHeaderView(pinnedHeaderList);
- pinnedHeaderList.setPinnedHeaderView(headerView);
- }
- }
+ protected abstract void onItemClick(int position, long id);
public void setSectionHeaderDisplayEnabled(boolean flag) {
mSectionHeaderDisplayEnabled = flag;
@@ -153,4 +92,79 @@
public void setQueryString(String queryString) {
mQueryString = queryString;
}
+
+ @Deprecated
+ public void setContactsApplicationController(ContactsApplicationController controller) {
+ mAppController = controller;
+ }
+
+ @Deprecated
+ public ContactsApplicationController getContactsApplicationController() {
+ return mAppController;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container) {
+ View view = inflateView(inflater, container);
+ mAdapter = createListAdapter();
+ configureView(view, mAdapter);
+ return view;
+ }
+
+ protected void configureView(View view, ListAdapter adapter) {
+ mListView = (ListView)view.findViewById(android.R.id.list);
+ if (mListView == null) {
+ throw new RuntimeException(
+ "Your content must have a ListView whose id attribute is " +
+ "'android.R.id.list'");
+ }
+
+ View emptyView = view.findViewById(com.android.internal.R.id.empty);
+ if (emptyView != null) {
+ mListView.setEmptyView(emptyView);
+ }
+
+ mListView.setAdapter(adapter);
+ mListView.setOnItemClickListener(this);
+
+ ((ContactsListActivity)getActivity()).setupListView(adapter, mListView);
+
+ configurePinnedHeader(mListView, adapter);
+
+ if (isSearchResultsMode()) {
+ TextView titleText = (TextView)view.findViewById(R.id.search_results_for);
+ if (titleText != null) {
+ titleText.setText(Html.fromHtml(getActivity().getString(R.string.search_results_for,
+ "<b>" + getQueryString() + "</b>")));
+ }
+ }
+ }
+
+ private void configurePinnedHeader(ListView listView, ListAdapter adapter) {
+ if (!mSectionHeaderDisplayEnabled) {
+ return;
+ }
+
+ if (listView instanceof PinnedHeaderListView
+ && adapter instanceof PinnedHeaderListAdapter) {
+ PinnedHeaderListView pinnedHeaderList = (PinnedHeaderListView)listView;
+ PinnedHeaderListAdapter pinnedHeaderListAdapter = (PinnedHeaderListAdapter)adapter;
+ View headerView = pinnedHeaderListAdapter.createPinnedHeaderView(pinnedHeaderList);
+ pinnedHeaderList.setPinnedHeaderView(headerView);
+ }
+ }
+
+ public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+ hideSoftKeyboard();
+
+ onItemClick(position, id);
+ }
+
+
+ private void hideSoftKeyboard() {
+ // Hide soft keyboard, if visible
+ InputMethodManager inputMethodManager = (InputMethodManager)
+ getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputMethodManager.hideSoftInputFromWindow(mListView.getWindowToken(), 0);
+ }
}
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index b5f8caf..1aec32d 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -474,46 +474,4 @@
}
return null;
}
-
- public ContactEntryListConfiguration getConfiguration() {
- ContactEntryListConfiguration config;
- switch (mMode) {
- case MODE_DEFAULT: {
- config = new DefaultContactListConfiguration(mContext, mAppController);
- if (!mSearchMode) {
- config.setSectionHeaderDisplayEnabled(true);
- }
- break;
- }
- case MODE_LEGACY_PICK_POSTAL:
- case MODE_PICK_POSTAL:
- case MODE_LEGACY_PICK_PHONE:
- case MODE_PICK_PHONE:
- case MODE_STREQUENT:
- case MODE_FREQUENT: {
- config = new DefaultContactListConfiguration(mContext, mAppController);
- break;
- }
- case MODE_PICK_MULTIPLE_PHONES: {
- config = new MultiplePhonePickerConfiguration(mContext, mAppController);
- break;
- }
- default: {
- config = new DefaultContactListConfiguration(mContext, mAppController);
- if (!mSearchMode) {
- config.setSectionHeaderDisplayEnabled(true);
- }
- }
- }
-
- config.setSearchMode(mSearchMode);
- config.setSearchResultsMode(mSearchResultsMode);
- config.setQueryString(mInitialFilter);
-
- if ((mMode & MODE_MASK_SHOW_PHOTOS) == MODE_MASK_SHOW_PHOTOS) {
- config.setPhotoLoaderEnabled(true);
- }
-
- return config;
- }
}
diff --git a/src/com/android/contacts/list/DefaultContactListController.java b/src/com/android/contacts/list/DefaultContactListController.java
deleted file mode 100644
index 4bb1416..0000000
--- a/src/com/android/contacts/list/DefaultContactListController.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.list;
-
-import com.android.contacts.ContactsApplicationController;
-
-import android.content.Context;
-
-/**
- * Controller for the default contact list.
- */
-public class DefaultContactListController extends ContactEntryListController {
-
- public DefaultContactListController(Context context,
- ContactsApplicationController appController) {
- super(context, appController);
- }
-
- @Override
- protected void onItemClick(int position, long id) {
- // TODO instead of delegating the entire procedure to the ContactsListActivity,
- // figure out what the specific action is and delegate the specific action.
- getContactsApplicationController().onListItemClick(position, id);
- }
-}
diff --git a/src/com/android/contacts/list/DefaultContactListConfiguration.java b/src/com/android/contacts/list/DefaultContactListFragment.java
similarity index 67%
rename from src/com/android/contacts/list/DefaultContactListConfiguration.java
rename to src/com/android/contacts/list/DefaultContactListFragment.java
index 52238aa..51ee2cc 100644
--- a/src/com/android/contacts/list/DefaultContactListConfiguration.java
+++ b/src/com/android/contacts/list/DefaultContactListFragment.java
@@ -13,44 +13,40 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package com.android.contacts.list;
-import com.android.contacts.ContactsApplicationController;
import com.android.contacts.ContactsListActivity;
import com.android.contacts.R;
-import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ListAdapter;
/**
- * Configuration for the default contact list.
+ * Fragment for the default contact list.
*/
-public class DefaultContactListConfiguration extends ContactEntryListConfiguration {
+public class DefaultContactListFragment extends ContactEntryListFragment {
- public DefaultContactListConfiguration(Context context,
- ContactsApplicationController applicationController) {
- super(context, applicationController);
+ @Override
+ protected void onItemClick(int position, long id) {
+ // TODO instead of delegating the entire procedure to the ContactsListActivity,
+ // figure out what the specific action is and delegate the specific action.
+ getContactsApplicationController().onListItemClick(position, id);
}
@Override
- public ListAdapter createListAdapter() {
+ protected ListAdapter createListAdapter() {
ContactItemListAdapter adapter =
- new ContactItemListAdapter((ContactsListActivity)getContext());
+ new ContactItemListAdapter((ContactsListActivity)getActivity());
adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
adapter.setDisplayPhotos(isPhotoLoaderEnabled());
return adapter;
}
@Override
- public ContactEntryListController createController() {
- return new DefaultContactListController(getContext(), getApplicationController());
- }
-
- @Override
- protected View inflateView() {
- LayoutInflater inflater = LayoutInflater.from(getContext());
+ protected View inflateView(LayoutInflater inflater, ViewGroup container) {
if (isSearchMode()) {
return inflater.inflate(R.layout.contacts_search_content, null);
} else if (isSearchResultsMode()) {
diff --git a/src/com/android/contacts/list/JoinContactListConfiguration.java b/src/com/android/contacts/list/JoinContactListFragment.java
similarity index 63%
rename from src/com/android/contacts/list/JoinContactListConfiguration.java
rename to src/com/android/contacts/list/JoinContactListFragment.java
index 5839010..52beb4a 100644
--- a/src/com/android/contacts/list/JoinContactListConfiguration.java
+++ b/src/com/android/contacts/list/JoinContactListFragment.java
@@ -15,44 +15,36 @@
*/
package com.android.contacts.list;
-import com.android.contacts.ContactsApplicationController;
import com.android.contacts.JoinContactActivity;
import com.android.contacts.R;
-import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ListAdapter;
/**
- * Configuration for the default contact list.
+ * Fragment for the Join Contact list.
*/
-public class JoinContactListConfiguration extends ContactEntryListConfiguration {
-
- public JoinContactListConfiguration(Context context,
- ContactsApplicationController applicationController) {
- super(context, applicationController);
- }
+public class JoinContactListFragment extends ContactEntryListFragment {
@Override
public ListAdapter createListAdapter() {
JoinContactListAdapter adapter =
- new JoinContactListAdapter((JoinContactActivity)getContext());
+ new JoinContactListAdapter((JoinContactActivity)getActivity());
adapter.setSectionHeaderDisplayEnabled(true);
adapter.setDisplayPhotos(true);
return adapter;
}
@Override
- public ContactEntryListController createController() {
-
- // TODO needs a separate controller
- return new DefaultContactListController(getContext(), getApplicationController());
+ protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+ return inflater.inflate(R.layout.contacts_list_content_join, null);
}
@Override
- protected View inflateView() {
- LayoutInflater inflater = LayoutInflater.from(getContext());
- return inflater.inflate(R.layout.contacts_list_content_join, null);
+ protected void onItemClick(int position, long id) {
+ // TODO
+ throw new UnsupportedOperationException();
}
}
diff --git a/src/com/android/contacts/list/MultiplePhonePickerConfiguration.java b/src/com/android/contacts/list/MultiplePhonePickerFragment.java
similarity index 61%
rename from src/com/android/contacts/list/MultiplePhonePickerConfiguration.java
rename to src/com/android/contacts/list/MultiplePhonePickerFragment.java
index 66c3d95..fd3b517 100644
--- a/src/com/android/contacts/list/MultiplePhonePickerConfiguration.java
+++ b/src/com/android/contacts/list/MultiplePhonePickerFragment.java
@@ -15,45 +15,36 @@
*/
package com.android.contacts.list;
-import com.android.contacts.ContactsApplicationController;
import com.android.contacts.MultiplePhonePickerActivity;
import com.android.contacts.R;
-import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ListAdapter;
/**
- * Configuration for the multiple phone picker.
+ * Fragment for the multiple phone picker.
*/
-public class MultiplePhonePickerConfiguration extends ContactEntryListConfiguration {
-
- public MultiplePhonePickerConfiguration(Context context,
- ContactsApplicationController applicationController) {
- super(context, applicationController);
- }
+public class MultiplePhonePickerFragment extends ContactEntryListFragment {
@Override
public ListAdapter createListAdapter() {
MultiplePhonePickerAdapter adapter =
- new MultiplePhonePickerAdapter((MultiplePhonePickerActivity)getContext());
+ new MultiplePhonePickerAdapter((MultiplePhonePickerActivity)getActivity());
adapter.setSectionHeaderDisplayEnabled(true);
adapter.setDisplayPhotos(true);
return adapter;
}
@Override
- public ContactEntryListController createController() {
-
- // TODO this needs a separate controller
- return new DefaultContactListController(getContext(), getApplicationController());
+ protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+ return inflater.inflate(R.layout.contacts_list_content, null);
}
@Override
- protected View inflateView() {
- // TODO implement a proper search mode for MultiPicker
- LayoutInflater inflater = LayoutInflater.from(getContext());
- return inflater.inflate(R.layout.contacts_list_content, null);
+ protected void onItemClick(int position, long id) {
+ // TODO
+ throw new UnsupportedOperationException();
}
}