* Shows a list of all available {@link Groups} available, letting the user
* select which ones they want to be visible.
*/
-public final class DisplayGroupsActivity extends ExpandableListActivity implements
+public final class ContactsPreferencesActivity extends ExpandableListActivity implements
AdapterView.OnItemClickListener, View.OnClickListener {
private static final String TAG = "DisplayGroupsActivity";
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- setContentView(R.layout.act_display_groups);
+ setContentView(R.layout.contacts_preferences);
mList = getExpandableListView();
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
final LayoutInflater inflater = getLayoutInflater();
+ addWithPhonesOnlyPreferenceView(inflater);
+ addDivider(inflater);
+ addSortOrderPreferenceView(inflater);
+ addDivider(inflater);
+ addDisplayOrderPreferenceView(inflater);
+ addDisplayGroupHeader(inflater);
+
+ findViewById(R.id.btn_done).setOnClickListener(this);
+ findViewById(R.id.btn_discard).setOnClickListener(this);
+
+ // Catch clicks on the header views
+ mList.setOnItemClickListener(this);
+ mList.setOnCreateContextMenuListener(this);
+
+ mSortOrder = mContactsPrefs.getSortOrder();
+ mDisplayOrder = mContactsPrefs.getDisplayOrder();
+
+ // Start background query to find account details
+ new QueryGroupsTask(this).execute();
+ }
+
+ private LayoutInflater addWithPhonesOnlyPreferenceView(LayoutInflater inflater) {
// Add the "Only contacts with phones" header modifier.
mHeaderPhones = inflater.inflate(R.layout.display_options_phones_only, mList, false);
mHeaderPhones.setId(R.id.header_phones);
}
mList.addHeaderView(mHeaderPhones, null, true);
-
- addSortOrderView();
- addDisplayOrderView();
-
- // Add the separator before showing the detailed group list.
- mHeaderSeparator = inflater.inflate(R.layout.list_separator, mList, false);
- {
- final TextView text1 = (TextView)mHeaderSeparator;
- text1.setText(R.string.headerContactGroups);
- }
- mList.addHeaderView(mHeaderSeparator, null, false);
-
- findViewById(R.id.btn_done).setOnClickListener(this);
- findViewById(R.id.btn_discard).setOnClickListener(this);
-
- // Catch clicks on the header views
- mList.setOnItemClickListener(this);
- mList.setOnCreateContextMenuListener(this);
-
- mSortOrder = mContactsPrefs.getSortOrder();
- mDisplayOrder = mContactsPrefs.getDisplayOrder();
-
- // Start background query to find account details
- new QueryGroupsTask(this).execute();
+ return inflater;
}
- private void addSortOrderView() {
- final LayoutInflater inflater = getLayoutInflater();
+ private void addSortOrderPreferenceView(LayoutInflater inflater) {
mSortOrderView = inflater.inflate(R.layout.preference_with_more_button, mList, false);
+
View preferenceLayout = mSortOrderView.findViewById(R.id.preference);
preferenceLayout.setOnClickListener(new View.OnClickListener() {
mList.addHeaderView(mSortOrderView, null, false);
}
- private void addDisplayOrderView() {
- final LayoutInflater inflater = getLayoutInflater();
-
+ private void addDisplayOrderPreferenceView(LayoutInflater inflater) {
mDisplayOrderView = inflater.inflate(R.layout.preference_with_more_button, mList, false);
View preferenceLayout = mDisplayOrderView.findViewById(R.id.preference);
preferenceLayout.setOnClickListener(new View.OnClickListener() {
mList.addHeaderView(mDisplayOrderView, null, false);
}
+ private void addDivider(LayoutInflater inflater) {
+ View divider = inflater.inflate(R.layout.horizontal_divider, mList, false);
+ mList.addHeaderView(divider, null, false);
+ }
+
+ private void addDisplayGroupHeader(LayoutInflater inflater) {
+ // Add the separator before showing the detailed group list.
+ mHeaderSeparator = inflater.inflate(R.layout.list_separator, mList, false);
+ {
+ final TextView text1 = (TextView)mHeaderSeparator;
+ text1.setText(R.string.headerContactGroups);
+ }
+ mList.addHeaderView(mHeaderSeparator, null, false);
+ }
+
@Override
protected void onResume() {
super.onResume();
}
@Override
- protected Dialog onCreateDialog(int id) {
+ protected Dialog onCreateDialog(int id, Bundle args) {
switch (id) {
case DIALOG_SORT_ORDER:
return createSortOrderDialog();
};
return new AlertDialog.Builder(this)
- .setIcon(android.R.drawable.ic_dialog_alert)
+ .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
.setTitle(R.string.display_options_sort_list_by)
.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
};
return new AlertDialog.Builder(this)
- .setIcon(android.R.drawable.ic_dialog_alert)
+ .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
.setTitle(R.string.display_options_view_names_as)
.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
@Override
- protected void onPrepareDialog(int id, Dialog dialog) {
+ protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
switch (id) {
case DIALOG_SORT_ORDER:
setCheckedItem(dialog,
* {@link Sources#getAccounts(boolean)} that provides groups.
*/
private static class QueryGroupsTask extends
- WeakAsyncTask<Void, Void, AccountSet, DisplayGroupsActivity> {
- public QueryGroupsTask(DisplayGroupsActivity target) {
+ WeakAsyncTask<Void, Void, AccountSet, ContactsPreferencesActivity> {
+ public QueryGroupsTask(ContactsPreferencesActivity target) {
super(target);
}
@Override
- protected AccountSet doInBackground(DisplayGroupsActivity target,
+ protected AccountSet doInBackground(ContactsPreferencesActivity target,
Void... params) {
final Context context = target;
final Sources sources = Sources.getInstance(context);
}
@Override
- protected void onPostExecute(DisplayGroupsActivity target, AccountSet result) {
+ protected void onPostExecute(ContactsPreferencesActivity target, AccountSet result) {
// Build adapter to show available groups
final Context context = target;
final DisplayAdapter adapter = new DisplayAdapter(context, result);
private static Uri addCallerIsSyncAdapterParameter(Uri uri) {
return uri.buildUpon()
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
- .build();
+ .build();
}
/**