summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorYiqun Wu <yiqunw@google.com>2019-07-29 17:11:56 -0700
committerYiqun Wu <yiqunw@google.com>2019-08-01 16:20:39 -0700
commit45fd4c8c310ba2802184ce388e720b023cdee9dc (patch)
tree8f5d5df7349e5240f6e14bc701b44bec7b0c8815 /src/com/android
parent31c1e28a2ed2149fad6bc734ca103982a3369b07 (diff)
downloadplatform_packages_apps_Car_Dialer-45fd4c8c310ba2802184ce388e720b023cdee9dc.tar.gz
platform_packages_apps_Car_Dialer-45fd4c8c310ba2802184ce388e720b023cdee9dc.tar.bz2
platform_packages_apps_Car_Dialer-45fd4c8c310ba2802184ce388e720b023cdee9dc.zip
Set up action bar on back stack change.
Cleanup the action bar set up in search page. No need to set background on fragment resume. Bug: 138810581 Test: manually Change-Id: I396142a87103eea2ce797b90f9ca469f981784f0
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/car/dialer/ui/TelecomActivity.java6
-rw-r--r--src/com/android/car/dialer/ui/common/DialerBaseFragment.java34
-rw-r--r--src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java2
-rw-r--r--src/com/android/car/dialer/ui/dialpad/DialpadFragment.java2
-rw-r--r--src/com/android/car/dialer/ui/dialpad/InCallDialpadFragment.java2
-rw-r--r--src/com/android/car/dialer/ui/search/ContactResultsFragment.java35
6 files changed, 21 insertions, 60 deletions
diff --git a/src/com/android/car/dialer/ui/TelecomActivity.java b/src/com/android/car/dialer/ui/TelecomActivity.java
index 32737d11..10e37b93 100644
--- a/src/com/android/car/dialer/ui/TelecomActivity.java
+++ b/src/com/android/car/dialer/ui/TelecomActivity.java
@@ -362,6 +362,12 @@ public class TelecomActivity extends FragmentActivity implements
: R.style.RootToolbarDisplayOptions,
android.R.attr.displayOptions);
getActionBar().setDisplayOptions(displayOptions);
+
+ Fragment topFragment = getSupportFragmentManager().findFragmentById(
+ R.id.content_fragment_container);
+ if (topFragment instanceof DialerBaseFragment) {
+ ((DialerBaseFragment) topFragment).setupActionBar(getActionBar());
+ }
}
@Override
diff --git a/src/com/android/car/dialer/ui/common/DialerBaseFragment.java b/src/com/android/car/dialer/ui/common/DialerBaseFragment.java
index 2eb276f9..fb7a4a4d 100644
--- a/src/com/android/car/dialer/ui/common/DialerBaseFragment.java
+++ b/src/com/android/car/dialer/ui/common/DialerBaseFragment.java
@@ -18,7 +18,6 @@ package com.android.car.dialer.ui.common;
import android.app.ActionBar;
import android.app.Activity;
-import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
@@ -52,44 +51,13 @@ public abstract class DialerBaseFragment extends Fragment {
setHasOptionsMenu(true);
}
- @Override
- public void onResume() {
- setFullScreenBackground();
-
- Activity parentActivity = getActivity();
- ActionBar actionBar = parentActivity.getActionBar();
- if (actionBar != null) {
- setupActionBar(actionBar);
- }
-
- super.onResume();
- }
-
- /**
- * Sets a fullscreen background to its parent Activity.
- */
- protected void setFullScreenBackground() {
- Activity parentActivity = getActivity();
- if (parentActivity instanceof DialerFragmentParent) {
- ((DialerFragmentParent) parentActivity).setBackground(getFullScreenBackgroundColor());
- }
- }
-
/** Customizes the action bar. Can be overridden in subclasses. */
- protected void setupActionBar(@NonNull ActionBar actionBar) {
+ public void setupActionBar(@NonNull ActionBar actionBar) {
actionBar.setTitle(getActionBarTitle());
actionBar.setCustomView(null);
setActionBarBackground(getContext().getDrawable(R.color.app_bar_background_color));
}
- /**
- * Returns the full screen background for its parent Activity. Override this function to
- * change the background.
- */
- protected Drawable getFullScreenBackgroundColor() {
- return new ColorDrawable(Themes.getAttrColor(getContext(), android.R.attr.background));
- }
-
/** Push a fragment to the back stack. Update action bar accordingly. */
protected void pushContentFragment(@NonNull Fragment fragment, String fragmentTag) {
Activity parentActivity = getActivity();
diff --git a/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java b/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
index ccfc003d..d80fb9ff 100644
--- a/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
+++ b/src/com/android/car/dialer/ui/contact/ContactDetailsFragment.java
@@ -137,7 +137,7 @@ public class ContactDetailsFragment extends DialerListBaseFragment implements
}
@Override
- protected void setupActionBar(@NonNull ActionBar actionBar) {
+ public void setupActionBar(@NonNull ActionBar actionBar) {
actionBar.setCustomView(R.layout.contact_details_action_bar);
actionBar.setTitle(null);
diff --git a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
index 1adcc5ee..439f8449 100644
--- a/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
+++ b/src/com/android/car/dialer/ui/dialpad/DialpadFragment.java
@@ -160,7 +160,7 @@ public class DialpadFragment extends AbstractDialpadFragment {
}
@Override
- protected void setupActionBar(ActionBar actionBar) {
+ public void setupActionBar(ActionBar actionBar) {
// Only setup the actionbar if we're in dial mode.
// In all the other modes, there will be another fragment in the activity
// at the same time, and we don't want to mess up it's action bar.
diff --git a/src/com/android/car/dialer/ui/dialpad/InCallDialpadFragment.java b/src/com/android/car/dialer/ui/dialpad/InCallDialpadFragment.java
index 37868069..77e606a5 100644
--- a/src/com/android/car/dialer/ui/dialpad/InCallDialpadFragment.java
+++ b/src/com/android/car/dialer/ui/dialpad/InCallDialpadFragment.java
@@ -108,7 +108,7 @@ public class InCallDialpadFragment extends AbstractDialpadFragment {
}
@Override
- protected void setupActionBar(ActionBar actionBar) {
+ public void setupActionBar(ActionBar actionBar) {
// No-op
}
diff --git a/src/com/android/car/dialer/ui/search/ContactResultsFragment.java b/src/com/android/car/dialer/ui/search/ContactResultsFragment.java
index 56b72930..eb286fea 100644
--- a/src/com/android/car/dialer/ui/search/ContactResultsFragment.java
+++ b/src/com/android/car/dialer/ui/search/ContactResultsFragment.java
@@ -17,6 +17,8 @@
package com.android.car.dialer.ui.search;
import android.app.ActionBar;
+import android.app.SearchManager;
+import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
@@ -69,8 +71,6 @@ public class ContactResultsFragment extends DialerListBaseFragment implements
private RecyclerView.OnScrollListener mOnScrollChangeListener;
private SearchView mSearchView;
- private boolean mKeyboardShown = false;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -89,15 +89,6 @@ public class ContactResultsFragment extends DialerListBaseFragment implements
}
getArguments().clear();
}
-
- if (savedInstanceState != null) {
- mKeyboardShown = savedInstanceState.getBoolean(KEY_KEYBOARD_SHOWN, false);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle savedInstanceState) {
- savedInstanceState.putBoolean(KEY_KEYBOARD_SHOWN, mKeyboardShown);
}
@Override
@@ -131,29 +122,25 @@ public class ContactResultsFragment extends DialerListBaseFragment implements
}
@Override
- protected void setupActionBar(@NonNull ActionBar actionBar) {
+ public void setupActionBar(@NonNull ActionBar actionBar) {
super.setupActionBar(actionBar);
// We have to use the setCustomView that accepts a LayoutParams to get the SearchView
- // to take up the full height and width of the action bar
+ // to take up the full height and width of the action bar.
View v = getLayoutInflater().inflate(R.layout.search_view, null);
actionBar.setCustomView(v, new ActionBar.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
SearchView searchView = actionBar.getCustomView().findViewById(R.id.search_view);
+ SearchManager searchManager =
+ (SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE);
+ searchView.setSearchableInfo(
+ searchManager.getSearchableInfo(getActivity().getComponentName()));
// We need to call setIconified(false) so the SearchView is a text box instead of just
- // an icon, but doing so also focuses on it and shows the keyboard. The first time we
- // enter the fragment that's fine, but every time after we have to clearFocus() so the
- // keyboard isn't shown.
+ // an icon, but doing so also focuses on it and shows the keyboard.
searchView.setIconified(false);
- if (mKeyboardShown) {
- searchView.clearFocus();
- } else {
- mKeyboardShown = true;
- }
-
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
@@ -177,8 +164,8 @@ public class ContactResultsFragment extends DialerListBaseFragment implements
}
@Override
- public void onPause() {
- super.onPause();
+ public void onStop() {
+ super.onStop();
mSearchView.clearFocus();
}