From ebc59e20e21e78e479fd3fb42993851c10d63b75 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Sat, 24 Feb 2018 02:33:40 -0800 Subject: Fixed a few bugs in NUI Main Activity. - Normalized the search query returned from DialpadFragment - Dial button now updates when given a psuedo emergency number - 'Clear frequents' now displays and functions properly in the menu - Added simulator to the menu Bug: 72525324 Test: added tests for clear frequents (only prod feature). PiperOrigin-RevId: 186875815 Change-Id: I3bad3c71b355b987fc85777550bfa1de5028c3a4 --- .../dialer/main/impl/MainSearchController.java | 3 +++ .../dialer/main/impl/OldMainActivityPeer.java | 14 +++++++++++-- .../dialer/main/impl/toolbar/MainToolbar.java | 13 ++++++++++-- .../dialer/main/impl/toolbar/MainToolbarMenu.java | 23 +++++++++++++++++----- .../main/impl/toolbar/res/menu/main_menu.xml | 16 ++++++++++++--- .../main/impl/toolbar/res/values/strings.xml | 5 +++++ 6 files changed, 62 insertions(+), 12 deletions(-) (limited to 'java/com/android/dialer/main') diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java index ccd7a4b49..0c2374c96 100644 --- a/java/com/android/dialer/main/impl/MainSearchController.java +++ b/java/com/android/dialer/main/impl/MainSearchController.java @@ -48,6 +48,7 @@ import com.android.dialer.main.impl.toolbar.MainToolbar; import com.android.dialer.main.impl.toolbar.SearchBarListener; import com.android.dialer.searchfragment.list.NewSearchFragment; import com.android.dialer.searchfragment.list.NewSearchFragment.SearchFragmentListener; +import com.android.dialer.smartdial.util.SmartDialNameMatcher; import com.google.common.base.Optional; import java.util.ArrayList; @@ -372,10 +373,12 @@ public class MainSearchController implements SearchBarListener { /** @see OnDialpadQueryChangedListener#onDialpadQueryChanged(java.lang.String) */ public void onDialpadQueryChanged(String query) { + query = SmartDialNameMatcher.normalizeNumber(/* context = */ mainActivity, query); NewSearchFragment fragment = getSearchFragment(); if (fragment != null) { fragment.setQuery(query, CallInitiationType.Type.DIALPAD); } + getDialpadFragment().process_quote_emergency_unquote(query); } @Override diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java index 8762f5889..cdbab5cc1 100644 --- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java +++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java @@ -196,6 +196,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen }); MainToolbar toolbar = mainActivity.findViewById(R.id.toolbar); + toolbar.maybeShowSimulator(mainActivity); mainActivity.setSupportActionBar(mainActivity.findViewById(R.id.toolbar)); bottomNav = mainActivity.findViewById(R.id.bottom_nav_bar); @@ -231,7 +232,8 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen bottomNav, mainActivity.findViewById(R.id.contact_tile_drag_shadow_overlay), mainActivity.findViewById(R.id.remove_view), - mainActivity.findViewById(R.id.search_view_container)); + mainActivity.findViewById(R.id.search_view_container), + toolbar); lastTabController = new LastTabController(mainActivity, bottomNav, showVoicemailTab); @@ -901,6 +903,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen private final ImageView dragShadowOverlay; private final RemoveView removeView; private final View searchViewContainer; + private final MainToolbar toolbar; // TODO(calderwoodra): Use this for drag and drop @SuppressWarnings("unused") @@ -910,11 +913,13 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen BottomNavBar bottomNavBar, ImageView dragShadowOverlay, RemoveView removeView, - View searchViewContainer) { + View searchViewContainer, + MainToolbar toolbar) { this.bottomNavBar = bottomNavBar; this.dragShadowOverlay = dragShadowOverlay; this.removeView = removeView; this.searchViewContainer = searchViewContainer; + this.toolbar = toolbar; } @Override @@ -932,6 +937,11 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen return dragShadowOverlay; } + @Override + public void setHasFrequents(boolean hasFrequents) { + toolbar.showClearFrequents(hasFrequents); + } + @Override public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView view) { showRemoveView(true); diff --git a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java index a129fca8b..fc4bd0312 100644 --- a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java +++ b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java @@ -20,19 +20,20 @@ import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.Context; import android.support.annotation.StringRes; -import android.support.v7.widget.PopupMenu.OnMenuItemClickListener; +import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.AttributeSet; import android.view.MenuItem; import android.view.animation.AccelerateDecelerateInterpolator; import android.widget.ImageButton; +import android.widget.PopupMenu; import android.widget.RelativeLayout; import com.android.dialer.common.Assert; import com.android.dialer.util.ViewUtil; import com.google.common.base.Optional; /** Toolbar for {@link com.android.dialer.main.impl.MainActivity}. */ -public final class MainToolbar extends Toolbar implements OnMenuItemClickListener { +public final class MainToolbar extends Toolbar implements PopupMenu.OnMenuItemClickListener { private static final int SLIDE_DURATION = 300; private static final AccelerateDecelerateInterpolator SLIDE_INTERPOLATOR = @@ -155,4 +156,12 @@ public final class MainToolbar extends Toolbar implements OnMenuItemClickListene public void setHint(@StringRes int hint) { searchBar.setHint(hint); } + + public void showClearFrequents(boolean show) { + overflowMenu.showClearFrequents(show); + } + + public void maybeShowSimulator(AppCompatActivity appCompatActivity) { + overflowMenu.maybeShowSimulator(appCompatActivity); + } } diff --git a/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java b/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java index 3c6e3611d..16aa7c580 100644 --- a/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java +++ b/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java @@ -17,9 +17,13 @@ package com.android.dialer.main.impl.toolbar; import android.content.Context; -import android.support.v7.widget.PopupMenu; +import android.support.v7.app.AppCompatActivity; import android.view.Gravity; +import android.view.MenuItem; import android.view.View; +import android.widget.PopupMenu; +import com.android.dialer.simulator.Simulator; +import com.android.dialer.simulator.SimulatorComponent; /** Popup menu accessible from the search bar */ public final class MainToolbarMenu extends PopupMenu { @@ -28,9 +32,18 @@ public final class MainToolbarMenu extends PopupMenu { super(context, anchor, Gravity.NO_GRAVITY, R.attr.actionOverflowMenuStyle, 0); } - @Override - public void show() { - super.show(); - // TODO(calderwoodra): show simulator buttons + public void showClearFrequents(boolean show) { + getMenu().findItem(R.id.clear_frequents).setVisible(show); + } + + public void maybeShowSimulator(AppCompatActivity activity) { + MenuItem simulatorMenuItem = getMenu().findItem(R.id.menu_simulator_submenu); + Simulator simulator = SimulatorComponent.get(activity).getSimulator(); + if (simulator.shouldShow()) { + simulatorMenuItem.setVisible(true); + simulatorMenuItem.setActionProvider(simulator.getActionProvider(activity)); + } else { + simulatorMenuItem.setVisible(false); + } } } diff --git a/java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml b/java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml index 01309ddc4..e2ff57f28 100644 --- a/java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml +++ b/java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml @@ -16,13 +16,23 @@ --> + + + + + + android:id="@+id/menu_simulator_submenu" + android:title="@string/nui_simulator_submenu_label" + app:showAsAction="collapseActionView" + android:visible="false"/> \ No newline at end of file diff --git a/java/com/android/dialer/main/impl/toolbar/res/values/strings.xml b/java/com/android/dialer/main/impl/toolbar/res/values/strings.xml index 66ccfb452..96f0cc0f9 100644 --- a/java/com/android/dialer/main/impl/toolbar/res/values/strings.xml +++ b/java/com/android/dialer/main/impl/toolbar/res/values/strings.xml @@ -37,9 +37,14 @@ Settings + Clear frequents Remove + + + Simulator \ No newline at end of file -- cgit v1.2.3