Show app icon on Phone search UI.
Change-Id: I2c09ed6635b27042c7c98bb40c41fa1724e533db
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index c63f76a..9c6e243 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -340,6 +340,10 @@
public void onShortcutIntentCreated(Intent intent) {
returnPickerResult(intent);
}
+
+ public void onHomeInActionBarSelected() {
+ ContactSelectionActivity.this.onBackPressed();
+ }
}
private final class PostalAddressPickerActionListener implements
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index 37da553..bc89d2d 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -202,6 +202,11 @@
public void onShortcutIntentCreated(Intent intent) {
Log.w(TAG, "Unsupported intent has come (" + intent + "). Ignoring.");
}
+
+ @Override
+ public void onHomeInActionBarSelected() {
+ exitSearchUi();
+ }
};
/**
@@ -652,6 +657,8 @@
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+ actionBar.setDisplayShowHomeEnabled(true);
+ actionBar.setDisplayHomeAsUpEnabled(true);
// Show the search fragment and hide everything else.
final FragmentTransaction transaction = getFragmentManager().beginTransaction();
@@ -669,6 +676,13 @@
}
}
+ private void hideInputMethod(View view) {
+ InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+ if (imm != null) {
+ imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+ }
+ }
+
/**
* Goes back to usual Phone UI with tags. Previously selected Tag and associated Fragment
* should be automatically focused again.
@@ -678,6 +692,7 @@
// We want to hide SearchView and show Tabs. Also focus on previously selected one.
actionBar.setDisplayShowCustomEnabled(false);
+ actionBar.setDisplayShowHomeEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
final FragmentTransaction transaction = getFragmentManager().beginTransaction();
@@ -686,6 +701,8 @@
mViewPager.setVisibility(View.VISIBLE);
+ hideInputMethod(getCurrentFocus());
+
// Request to update option menu.
invalidateOptionsMenu();
diff --git a/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
index 1a90122..0077c78 100644
--- a/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
+++ b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
@@ -15,6 +15,7 @@
*/
package com.android.contacts.list;
+import android.app.ActionBar;
import android.content.Intent;
import android.net.Uri;
@@ -32,4 +33,9 @@
* Returns the selected number as a shortcut intent.
*/
void onShortcutIntentCreated(Intent intent);
+
+ /**
+ * Called when home menu in {@link ActionBar} is clicked by the user.
+ */
+ void onHomeInActionBarSelected();
}
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
index 3be55ce..2976cb4 100644
--- a/src/com/android/contacts/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -23,6 +23,7 @@
import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -51,6 +52,18 @@
this.mListener = listener;
}
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ final int itemId = item.getItemId();
+ if (itemId == android.R.id.home) { // See ActionBar#setDisplayHomeAsUpEnabled()
+ if (mListener != null) {
+ mListener.onHomeInActionBarSelected();
+ }
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
/**
* @param shortcutAction either {@link Intent#ACTION_CALL} or
* {@link Intent#ACTION_SENDTO} or null.