summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/menu/phone_favorite_options.xml24
-rw-r--r--src/com/android/contacts/activities/DialtactsActivity.java5
-rw-r--r--src/com/android/contacts/list/PhoneFavoriteFragment.java45
3 files changed, 72 insertions, 2 deletions
diff --git a/res/menu/phone_favorite_options.xml b/res/menu/phone_favorite_options.xml
new file mode 100644
index 000000000..ac67d6e25
--- /dev/null
+++ b/res/menu/phone_favorite_options.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/menu_import_export"
+ android:title="@string/menu_import_export" />
+
+ <item
+ android:id="@+id/menu_accounts"
+ android:title="@string/menu_accounts" />
+</menu>
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index a997aa00b..d4a96e1ee 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -566,6 +566,9 @@ public class DialtactsActivity extends TransactionSafeActivity {
&& mContactListFilterController.getFilter() != null) {
mPhoneFavoriteFragment.setFilter(mContactListFilterController.getFilter());
}
+ if (currentPosition == TAB_INDEX_FAVORITES) {
+ mPhoneFavoriteFragment.onVisibilityChanged(true);
+ }
} else if (fragment instanceof PhoneNumberPickerFragment) {
mSearchFragment = (PhoneNumberPickerFragment) fragment;
mSearchFragment.setOnPhoneNumberPickerActionListener(mPhoneNumberPickerActionListener);
@@ -817,7 +820,7 @@ public class DialtactsActivity extends TransactionSafeActivity {
final MenuItem filterOptionMenuItem = menu.findItem(R.id.filter_option);
final MenuItem addContactOptionMenuItem = menu.findItem(R.id.add_contact);
final MenuItem callSettingsMenuItem = menu.findItem(R.id.menu_call_settings);
- Tab tab = getActionBar().getSelectedTab();
+ final Tab tab = getActionBar().getSelectedTab();
if (mInSearchUi) {
searchMenuItem.setVisible(false);
if (ViewConfiguration.get(this).hasPermanentMenuKey()) {
diff --git a/src/com/android/contacts/list/PhoneFavoriteFragment.java b/src/com/android/contacts/list/PhoneFavoriteFragment.java
index af0699563..b512bf10d 100644
--- a/src/com/android/contacts/list/PhoneFavoriteFragment.java
+++ b/src/com/android/contacts/list/PhoneFavoriteFragment.java
@@ -18,6 +18,8 @@ package com.android.contacts.list;
import com.android.contacts.ContactPhotoManager;
import com.android.contacts.ContactTileLoaderFactory;
import com.android.contacts.R;
+import com.android.contacts.activities.DialtactsActivity.ViewPagerVisibilityListener;
+import com.android.contacts.interactions.ImportExportDialogFragment;
import com.android.contacts.preference.ContactsPreferences;
import com.android.contacts.util.AccountFilterUtil;
@@ -32,9 +34,15 @@ import android.database.Cursor;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Directory;
+import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@@ -53,7 +61,8 @@ import android.widget.TextView;
* {@link PhoneNumberListAdapter} into one unified list using {@link PhoneFavoriteMergedAdapter}.
* A contact filter header is also inserted between those adapters' results.
*/
-public class PhoneFavoriteFragment extends Fragment implements OnItemClickListener {
+public class PhoneFavoriteFragment extends Fragment implements OnItemClickListener,
+ ViewPagerVisibilityListener{
private static final String TAG = PhoneFavoriteFragment.class.getSimpleName();
private static final boolean DEBUG = false;
@@ -215,12 +224,15 @@ public class PhoneFavoriteFragment extends Fragment implements OnItemClickListen
new ContactsPreferenceChangeListener();
private final ScrollListener mScrollListener = new ScrollListener();
+ private boolean mShowOptionsMenu;
+
@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
if (savedState != null) {
mFilter = savedState.getParcelable(KEY_FILTER);
}
+ setHasOptionsMenu(true);
}
@Override
@@ -319,6 +331,32 @@ public class PhoneFavoriteFragment extends Fragment implements OnItemClickListen
}
@Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ super.onCreateOptionsMenu(menu, inflater);
+ if (mShowOptionsMenu) {
+ inflater.inflate(R.menu.phone_favorite_options, menu);
+ }
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.menu_import_export:
+ ImportExportDialogFragment.show(getFragmentManager());
+ return true;
+ case R.id.menu_accounts:
+ final Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);
+ intent.putExtra(Settings.EXTRA_AUTHORITIES, new String[] {
+ ContactsContract.AUTHORITY
+ });
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ startActivity(intent);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public void onStart() {
super.onStart();
@@ -453,4 +491,9 @@ public class PhoneFavoriteFragment extends Fragment implements OnItemClickListen
public void setListener(Listener listener) {
mListener = listener;
}
+
+ @Override
+ public void onVisibilityChanged(boolean visible) {
+ mShowOptionsMenu = visible;
+ }
} \ No newline at end of file