Renaming NavigationBar to ActionBarAdapter
Also, moving browser modes to a class of their own.
Change-Id: Ie2745581537e09717a2c7a58ecebec1b7ada0c81
diff --git a/src/com/android/contacts/activities/NavigationBar.java b/src/com/android/contacts/activities/ActionBarAdapter.java
similarity index 79%
rename from src/com/android/contacts/activities/NavigationBar.java
rename to src/com/android/contacts/activities/ActionBarAdapter.java
index 5b6caa6..2247d93 100644
--- a/src/com/android/contacts/activities/NavigationBar.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 The Android Open Source Project
+ * 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.
@@ -33,12 +33,12 @@
import java.util.HashMap;
/**
- * Navigation bar at the top of the Contacts activity.
+ * Adapter for the action bar at the top of the Contacts activity.
*/
-public class NavigationBar implements OnFilterTextListener, OnClickListener {
+public class ActionBarAdapter implements OnFilterTextListener, OnClickListener {
public interface Listener {
- void onNavigationBarChange();
+ void onAction();
}
private static final String EXTRA_KEY_DEFAULT_MODE = "navBar.defaultMode";
@@ -49,12 +49,8 @@
private static final String KEY_MODE_FAVORITES = "mode_favorites";
private static final String KEY_MODE_SEARCH = "mode_search";
- public static final int MODE_CONTACTS = 0;
- public static final int MODE_FAVORITES = 1;
- public static final int MODE_SEARCH = 2;
-
- private int mMode = MODE_CONTACTS;
- private int mDefaultMode = MODE_CONTACTS;
+ private int mMode = ContactBrowserMode.MODE_CONTACTS;
+ private int mDefaultMode = ContactBrowserMode.MODE_CONTACTS;
private String mQueryString;
private HashMap<Integer, Bundle> mSavedStateByMode = new HashMap<Integer, Bundle>();
@@ -71,7 +67,7 @@
private ToggleButton mSearchButton;
private ImageView mCancelSearchButton;
- public NavigationBar(Context context) {
+ public ActionBarAdapter(Context context) {
mContext = context;
}
@@ -83,19 +79,19 @@
mDefaultMode = savedState.getInt(EXTRA_KEY_DEFAULT_MODE, -1);
mMode = savedState.getInt(EXTRA_KEY_MODE, -1);
mQueryString = savedState.getString(EXTRA_KEY_QUERY);
- restoreSavedState(savedState, MODE_CONTACTS, KEY_MODE_CONTACTS);
- restoreSavedState(savedState, MODE_FAVORITES, KEY_MODE_FAVORITES);
- restoreSavedState(savedState, MODE_SEARCH, KEY_MODE_SEARCH);
+ restoreSavedState(savedState, ContactBrowserMode.MODE_CONTACTS, KEY_MODE_CONTACTS);
+ restoreSavedState(savedState, ContactBrowserMode.MODE_FAVORITES, KEY_MODE_FAVORITES);
+ restoreSavedState(savedState, ContactBrowserMode.MODE_SEARCH, KEY_MODE_SEARCH);
}
int actionCode = request.getActionCode();
if (mDefaultMode == -1) {
mDefaultMode = actionCode == ContactsRequest.ACTION_DEFAULT
- ? NavigationBar.MODE_CONTACTS
- : NavigationBar.MODE_FAVORITES;
+ ? ContactBrowserMode.MODE_CONTACTS
+ : ContactBrowserMode.MODE_FAVORITES;
}
if (mMode == -1) {
- mMode = request.isSearchMode() ? NavigationBar.MODE_SEARCH : mDefaultMode;
+ mMode = request.isSearchMode() ? ContactBrowserMode.MODE_SEARCH : mDefaultMode;
}
if (mQueryString == null) {
mQueryString = request.getQueryString();
@@ -133,7 +129,7 @@
mMode = mode;
update();
if (mListener != null) {
- mListener.onNavigationBarChange();
+ mListener.onAction();
}
}
@@ -156,7 +152,7 @@
public void update() {
switch(mMode) {
- case MODE_CONTACTS:
+ case ContactBrowserMode.MODE_CONTACTS:
mContactsButton.setChecked(true);
mFavoritesButton.setChecked(false);
mSearchButton.setChecked(false);
@@ -164,7 +160,7 @@
mSearchEditText.setVisibility(View.GONE);
mCancelSearchButton.setVisibility(View.GONE);
break;
- case MODE_FAVORITES:
+ case ContactBrowserMode.MODE_FAVORITES:
mContactsButton.setChecked(false);
mFavoritesButton.setChecked(true);
mSearchButton.setChecked(false);
@@ -172,7 +168,7 @@
mSearchEditText.setVisibility(View.GONE);
mCancelSearchButton.setVisibility(View.GONE);
break;
- case MODE_SEARCH:
+ case ContactBrowserMode.MODE_SEARCH:
mContactsButton.setChecked(false);
mFavoritesButton.setChecked(false);
mSearchButton.setVisibility(View.GONE);
@@ -187,19 +183,21 @@
}
public void toggleSearchMode() {
- setMode(mMode == MODE_SEARCH ? mDefaultMode : MODE_SEARCH);
+ setMode(mMode == ContactBrowserMode.MODE_SEARCH
+ ? mDefaultMode
+ : ContactBrowserMode.MODE_SEARCH);
}
@Override
public void onClick(View view) {
if (view == mSearchButton) {
- setMode(MODE_SEARCH);
+ setMode(ContactBrowserMode.MODE_SEARCH);
} else if (view == mContactsButton) {
- setMode(MODE_CONTACTS);
- setDefaultMode(MODE_CONTACTS);
+ setMode(ContactBrowserMode.MODE_CONTACTS);
+ setDefaultMode(ContactBrowserMode.MODE_CONTACTS);
} else if (view == mFavoritesButton) {
- setMode(MODE_FAVORITES);
- setDefaultMode(MODE_FAVORITES);
+ setMode(ContactBrowserMode.MODE_FAVORITES);
+ setDefaultMode(ContactBrowserMode.MODE_FAVORITES);
} else { // mCancelSearchButton
setMode(mDefaultMode);
}
@@ -209,7 +207,7 @@
public void onFilterChange(String queryString) {
mQueryString = queryString;
if (mListener != null) {
- mListener.onNavigationBarChange();
+ mListener.onAction();
}
}
@@ -230,9 +228,9 @@
outState.putInt(EXTRA_KEY_DEFAULT_MODE, mDefaultMode);
outState.putInt(EXTRA_KEY_MODE, mMode);
outState.putString(EXTRA_KEY_QUERY, mQueryString);
- saveInstanceState(outState, MODE_CONTACTS, KEY_MODE_CONTACTS);
- saveInstanceState(outState, MODE_FAVORITES, KEY_MODE_FAVORITES);
- saveInstanceState(outState, MODE_SEARCH, KEY_MODE_SEARCH);
+ saveInstanceState(outState, ContactBrowserMode.MODE_CONTACTS, KEY_MODE_CONTACTS);
+ saveInstanceState(outState, ContactBrowserMode.MODE_FAVORITES, KEY_MODE_FAVORITES);
+ saveInstanceState(outState, ContactBrowserMode.MODE_SEARCH, KEY_MODE_SEARCH);
}
private void saveInstanceState(Bundle outState, int mode, String key) {
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 40b5693..eb951d2 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 The Android Open Source Project
+ * 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.
@@ -60,7 +60,7 @@
* the right
*/
public class ContactBrowserActivity extends Activity
- implements View.OnCreateContextMenuListener, NavigationBar.Listener,
+ implements View.OnCreateContextMenuListener, ActionBarAdapter.Listener,
DialogManager.DialogShowingViewActivity {
private static final String TAG = "ContactBrowserActivity";
@@ -79,31 +79,33 @@
DIALOG_MANAGER_ID_2);
private ContactsIntentResolver mIntentResolver;
+ private ContactsRequest mRequest;
+
+ private boolean mHasActionBar;
+ private ActionBarAdapter mActionBarAdapter;
+
+ /**
+ * Contact browser mode, see {@link ContactBrowserMode}.
+ */
+ private int mMode = -1;
+
private ContactBrowseListFragment mListFragment;
-
- private PhoneNumberInteraction mPhoneNumberCallInteraction;
- private PhoneNumberInteraction mSendTextMessageInteraction;
- private ContactDeletionInteraction mContactDeletionInteraction;
- private ImportExportInteraction mImportExportInteraction;
-
private ContactNoneFragment mEmptyFragment;
+ private boolean mContactContentDisplayed;
private ContactDetailFragment mDetailFragment;
private DetailFragmentListener mDetailFragmentListener = new DetailFragmentListener();
private ContactEditorFragment mEditorFragment;
private EditorFragmentListener mEditorFragmentListener = new EditorFragmentListener();
+ private PhoneNumberInteraction mPhoneNumberCallInteraction;
+ private PhoneNumberInteraction mSendTextMessageInteraction;
+ private ContactDeletionInteraction mContactDeletionInteraction;
+ private ImportExportInteraction mImportExportInteraction;
+
private boolean mSearchInitiated;
- private ContactsRequest mRequest;
-
- private boolean mContactContentDisplayed;
- private NavigationBar mNavigationBar;
- private int mMode = -1;
-
- private boolean mHasActionBar;
-
public ContactBrowserActivity() {
mIntentResolver = new ContactsIntentResolver(this);
}
@@ -151,15 +153,14 @@
setTitle(mRequest.getActivityTitle());
setContentView(R.layout.contact_browser);
-
mHasActionBar = getWindow().hasFeature(Window.FEATURE_ACTION_BAR);
if (mHasActionBar) {
- mNavigationBar = new NavigationBar(this);
- mNavigationBar.onCreate(savedState, mRequest);
- mNavigationBar.setListener(this);
+ mActionBarAdapter = new ActionBarAdapter(this);
+ mActionBarAdapter.onCreate(savedState, mRequest);
+ mActionBarAdapter.setListener(this);
ActionBar actionBar = getActionBar();
- View navBarView = mNavigationBar.onCreateView(getLayoutInflater());
+ View navBarView = mActionBarAdapter.onCreateView(getLayoutInflater());
actionBar.setCustomNavigationMode(navBarView);
}
@@ -174,19 +175,19 @@
private void configureListFragment() {
int mode = -1;
if (mHasActionBar) {
- mode = mNavigationBar.getMode();
- if (mode == NavigationBar.MODE_SEARCH
- && TextUtils.isEmpty(mNavigationBar.getQueryString())) {
- mode = mNavigationBar.getDefaultMode();
+ mode = mActionBarAdapter.getMode();
+ if (mode == ContactBrowserMode.MODE_SEARCH
+ && TextUtils.isEmpty(mActionBarAdapter.getQueryString())) {
+ mode = mActionBarAdapter.getDefaultMode();
}
} else {
int actionCode = mRequest.getActionCode();
if (actionCode == ContactsRequest.ACTION_FREQUENT ||
actionCode == ContactsRequest.ACTION_STARRED ||
actionCode == ContactsRequest.ACTION_STREQUENT) {
- mode = NavigationBar.MODE_FAVORITES;
+ mode = ContactBrowserMode.MODE_FAVORITES;
} else {
- mode = NavigationBar.MODE_CONTACTS;
+ mode = ContactBrowserMode.MODE_CONTACTS;
}
}
@@ -195,11 +196,11 @@
closeListFragment();
mMode = mode;
switch (mMode) {
- case NavigationBar.MODE_CONTACTS: {
+ case ContactBrowserMode.MODE_CONTACTS: {
mListFragment = createListFragment(ContactsRequest.ACTION_DEFAULT);
break;
}
- case NavigationBar.MODE_FAVORITES: {
+ case ContactBrowserMode.MODE_FAVORITES: {
int favoritesAction = mRequest.getActionCode();
if (favoritesAction == ContactsRequest.ACTION_DEFAULT) {
favoritesAction = ContactsRequest.ACTION_STREQUENT;
@@ -207,19 +208,19 @@
mListFragment = createListFragment(favoritesAction);
break;
}
- case NavigationBar.MODE_SEARCH: {
+ case ContactBrowserMode.MODE_SEARCH: {
mListFragment = createContactSearchFragment();
break;
}
}
}
- if (mMode == NavigationBar.MODE_SEARCH) {
- mListFragment.setQueryString(mNavigationBar.getQueryString());
+ if (mMode == ContactBrowserMode.MODE_SEARCH) {
+ mListFragment.setQueryString(mActionBarAdapter.getQueryString());
}
if (mHasActionBar) {
- Bundle savedStateForMode = mNavigationBar.getSavedStateForMode(mMode);
+ Bundle savedStateForMode = mActionBarAdapter.getSavedStateForMode(mMode);
if (savedStateForMode != null) {
mListFragment.restoreSavedState(savedStateForMode);
}
@@ -239,7 +240,7 @@
if (mHasActionBar) {
Bundle state = new Bundle();
mListFragment.onSaveInstanceState(state);
- mNavigationBar.saveStateForMode(mMode, state);
+ mActionBarAdapter.saveStateForMode(mMode, state);
}
mListFragment = null;
@@ -328,8 +329,11 @@
mEmptyFragment = null;
}
+ /**
+ * Handler for action bar actions.
+ */
@Override
- public void onNavigationBarChange() {
+ public void onAction() {
configureListFragment();
setupContactDetailFragment(mListFragment.getSelectedContactUri());
}
@@ -551,7 +555,7 @@
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
- if (mContactContentDisplayed) {
+ if (mHasActionBar) {
inflater.inflate(R.menu.actions, menu);
return true;
} else if (mRequest.getActionCode() == ContactsRequest.ACTION_DEFAULT ||
@@ -740,10 +744,10 @@
if (unicodeChar != 0) {
String query = new String(new int[]{ unicodeChar }, 0, 1);
- if (mContactContentDisplayed) {
- if (mNavigationBar.getMode() != NavigationBar.MODE_SEARCH) {
- mNavigationBar.setQueryString(query);
- mNavigationBar.setMode(NavigationBar.MODE_SEARCH);
+ if (mHasActionBar) {
+ if (mActionBarAdapter.getMode() != ContactBrowserMode.MODE_SEARCH) {
+ mActionBarAdapter.setQueryString(query);
+ mActionBarAdapter.setMode(ContactBrowserMode.MODE_SEARCH);
return true;
}
} else if (!mRequest.isSearchMode()) {
@@ -779,8 +783,8 @@
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(KEY_MODE, mMode);
- if (mNavigationBar != null) {
- mNavigationBar.onSaveInstanceState(outState);
+ if (mActionBarAdapter != null) {
+ mActionBarAdapter.onSaveInstanceState(outState);
}
}
diff --git a/src/com/android/contacts/activities/ContactBrowserMode.java b/src/com/android/contacts/activities/ContactBrowserMode.java
new file mode 100644
index 0000000..c135c1d
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactBrowserMode.java
@@ -0,0 +1,28 @@
+/*
+ * 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.activities;
+
+/**
+ * Contact browser mode constants.
+ */
+public class ContactBrowserMode {
+
+ public static final int MODE_CONTACTS = 0;
+ public static final int MODE_FAVORITES = 1;
+ public static final int MODE_SEARCH = 2;
+
+}