summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2018-02-10 03:14:38 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-02-10 03:14:38 +0000
commitbb6a02d26f2a6f8deb2807e26be05f2df6bc066b (patch)
tree4c0272b2e20a9d9bd5f90d22fa902888a1352df3
parent02f601bbb9b0cd00d530e88a0b8c7ff6d810ff0d (diff)
parent33e19a9ce152a2123ab5e2ce39bc140ff92bfa3c (diff)
Merge changes I43cc987c,I99ef5ccf,Icae34dd6,I161b5127,I4740c0f4, ...
* changes: Update title of after call spam dialog. Used VectorDrawable for Blocked Numbers Finish AudioRouteSelectorActivity when all calls disconnect. Add LookupUri to PeopApiPhoneLookupInfo Implemented NUI menu items. Implemented GoogleMainSearchController to customize menu to GoogleDialer. Show reject hint text for all incoming calls
-rw-r--r--java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java3
-rw-r--r--java/com/android/dialer/glidephotomanager/impl/res/drawable-xxxhdpi/ic_block_black_48dp.pngbin2532 -> 0 bytes
-rw-r--r--java/com/android/dialer/glidephotomanager/impl/res/drawable/ic_block_grey_48dp.xml13
-rw-r--r--java/com/android/dialer/main/impl/MainSearchController.java29
-rw-r--r--java/com/android/dialer/main/impl/OldMainActivityPeer.java7
-rw-r--r--java/com/android/dialer/main/impl/toolbar/MainToolbar.java14
-rw-r--r--java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java7
-rw-r--r--java/com/android/dialer/main/impl/toolbar/SearchBarListener.java9
-rw-r--r--java/com/android/dialer/main/impl/toolbar/res/menu/main_menu.xml4
-rw-r--r--java/com/android/dialer/main/impl/toolbar/res/values/strings.xml4
-rw-r--r--java/com/android/dialer/phonelookup/consolidator/PhoneLookupInfoConsolidator.java1
-rw-r--r--java/com/android/dialer/phonelookup/phone_lookup_info.proto5
-rw-r--r--java/com/android/incallui/AudioRouteSelectorActivity.java63
-rw-r--r--java/com/android/incallui/NewReturnToCallActionReceiver.java1
-rw-r--r--java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java3
-rw-r--r--java/com/android/incallui/spam/res/values/strings.xml2
16 files changed, 113 insertions, 52 deletions
diff --git a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
index 20d379c48..c6d92057d 100644
--- a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
+++ b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
@@ -65,6 +65,9 @@ public class GlidePhotoManagerImpl implements GlidePhotoManager {
}
private GlideRequest<Drawable> buildRequest(GlideRequests requestManager, PhotoInfo photoInfo) {
+ // Warning: Glide ignores extra attributes on BitmapDrawable such as tint and draw the bitmap
+ // directly so be sure not to set tint in the XML of any drawable referenced below.
+
// The spam status takes precedence over whether the number is blocked.
if (photoInfo.isSpam()) {
return requestManager.load(R.drawable.ic_report_red_48dp);
diff --git a/java/com/android/dialer/glidephotomanager/impl/res/drawable-xxxhdpi/ic_block_black_48dp.png b/java/com/android/dialer/glidephotomanager/impl/res/drawable-xxxhdpi/ic_block_black_48dp.png
deleted file mode 100644
index 1168bd8d5..000000000
--- a/java/com/android/dialer/glidephotomanager/impl/res/drawable-xxxhdpi/ic_block_black_48dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/glidephotomanager/impl/res/drawable/ic_block_grey_48dp.xml b/java/com/android/dialer/glidephotomanager/impl/res/drawable/ic_block_grey_48dp.xml
index 42cfa99bd..9d2fb368b 100644
--- a/java/com/android/dialer/glidephotomanager/impl/res/drawable/ic_block_grey_48dp.xml
+++ b/java/com/android/dialer/glidephotomanager/impl/res/drawable/ic_block_grey_48dp.xml
@@ -12,6 +12,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_block_black_48dp"
- android:tint="#757575" /> \ No newline at end of file
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M0 0h24v24H0z"/>
+ <path
+ android:fillColor="#757575"
+ android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"/>
+</vector> \ No newline at end of file
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index 0296ec911..f1486ba96 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -25,10 +25,13 @@ import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
+import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.Toast;
+import com.android.contacts.common.dialog.ClearFrequentsDialog;
+import com.android.dialer.app.settings.DialerSettingsActivity;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
@@ -36,6 +39,8 @@ import com.android.dialer.constants.ActivityRequestCodes;
import com.android.dialer.dialpadview.DialpadFragment;
import com.android.dialer.dialpadview.DialpadFragment.DialpadListener;
import com.android.dialer.dialpadview.DialpadFragment.OnDialpadQueryChangedListener;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.main.impl.bottomnav.BottomNavBar;
import com.android.dialer.main.impl.toolbar.MainToolbar;
import com.android.dialer.main.impl.toolbar.SearchBarListener;
@@ -58,7 +63,7 @@ import java.util.ArrayList;
*
* @see #onBackPressed()
*/
-final class MainSearchController implements SearchBarListener {
+public class MainSearchController implements SearchBarListener {
private static final String KEY_IS_FAB_HIDDEN = "is_fab_hidden";
private static final String KEY_CURRENT_TAB = "current_tab";
@@ -74,7 +79,7 @@ final class MainSearchController implements SearchBarListener {
private final FloatingActionButton fab;
private final MainToolbar toolbar;
- MainSearchController(
+ public MainSearchController(
MainActivity mainActivity,
BottomNavBar bottomNav,
FloatingActionButton fab,
@@ -324,6 +329,20 @@ final class MainSearchController implements SearchBarListener {
}
}
+ @Override
+ public boolean onMenuItemClicked(MenuItem menuItem) {
+ if (menuItem.getItemId() == R.id.settings) {
+ mainActivity.startActivity(new Intent(mainActivity, DialerSettingsActivity.class));
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.SETTINGS, mainActivity);
+ return true;
+ } else if (menuItem.getItemId() == R.id.clear_frequents) {
+ ClearFrequentsDialog.show(mainActivity.getFragmentManager());
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.CLEAR_FREQUENTS, mainActivity);
+ return true;
+ }
+ return false;
+ }
+
public void onVoiceResults(int resultCode, Intent data) {
if (resultCode == AppCompatActivity.RESULT_OK) {
ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
@@ -338,12 +357,6 @@ final class MainSearchController implements SearchBarListener {
}
}
- @Override
- public void openSettings() {}
-
- @Override
- public void sendFeedback() {}
-
public void onSaveInstanceState(Bundle bundle) {
bundle.putBoolean(KEY_IS_FAB_HIDDEN, !fab.isShown());
bundle.putInt(KEY_CURRENT_TAB, bottomNav.getSelectedTab());
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index a27bdd23a..c46e61bd0 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -188,7 +188,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
mainActivity, mainActivity.getContentResolver(), bottomNav, toolbar);
bottomNav.addOnTabSelectedListener(callLogFragmentListener);
- searchController = new MainSearchController(mainActivity, bottomNav, fab, toolbar);
+ searchController = getNewMainSearchController(bottomNav, fab, toolbar);
toolbar.setSearchBarListener(searchController);
onDialpadQueryChangedListener = new MainOnDialpadQueryChangedListener(searchController);
@@ -355,6 +355,11 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
}
}
+ public MainSearchController getNewMainSearchController(
+ BottomNavBar bottomNavBar, FloatingActionButton fab, MainToolbar mainToolbar) {
+ return new MainSearchController(mainActivity, bottomNavBar, fab, mainToolbar);
+ }
+
/** @see OnContactSelectedListener */
private static final class MainOnContactSelectedListener implements OnContactSelectedListener {
diff --git a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
index 1d7f7ce20..604422978 100644
--- a/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
+++ b/java/com/android/dialer/main/impl/toolbar/MainToolbar.java
@@ -36,6 +36,7 @@ public final class MainToolbar extends Toolbar implements OnMenuItemClickListene
private SearchBarView searchBar;
private SearchBarListener listener;
+ private MainToolbarMenu overflowMenu;
private boolean isSlideUp;
public MainToolbar(Context context, AttributeSet attrs) {
@@ -46,7 +47,7 @@ public final class MainToolbar extends Toolbar implements OnMenuItemClickListene
protected void onFinishInflate() {
super.onFinishInflate();
ImageButton optionsMenuButton = findViewById(R.id.main_options_menu_button);
- MainToolbarMenu overflowMenu = new MainToolbarMenu(getContext(), optionsMenuButton);
+ overflowMenu = new MainToolbarMenu(getContext(), optionsMenuButton);
overflowMenu.inflate(R.menu.main_menu);
overflowMenu.setOnMenuItemClickListener(this);
optionsMenuButton.setOnClickListener(v -> overflowMenu.show());
@@ -57,12 +58,7 @@ public final class MainToolbar extends Toolbar implements OnMenuItemClickListene
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
- if (menuItem.getItemId() == R.id.settings) {
- listener.openSettings();
- } else if (menuItem.getItemId() == R.id.feedback) {
- listener.sendFeedback();
- }
- return false;
+ return listener.onMenuItemClicked(menuItem);
}
public void setSearchBarListener(SearchBarListener listener) {
@@ -129,4 +125,8 @@ public final class MainToolbar extends Toolbar implements OnMenuItemClickListene
public void showKeyboard() {
searchBar.showKeyboard();
}
+
+ public MainToolbarMenu getOverflowMenu() {
+ return overflowMenu;
+ }
}
diff --git a/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java b/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java
index f4dfeef23..3c6e3611d 100644
--- a/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java
+++ b/java/com/android/dialer/main/impl/toolbar/MainToolbarMenu.java
@@ -22,18 +22,15 @@ import android.view.Gravity;
import android.view.View;
/** Popup menu accessible from the search bar */
-final class MainToolbarMenu extends PopupMenu {
+public final class MainToolbarMenu extends PopupMenu {
public MainToolbarMenu(Context context, View anchor) {
- super(context, anchor, Gravity.TOP);
- // TODO(calderwoodra): menu should open from the top, not the bottom
+ super(context, anchor, Gravity.NO_GRAVITY, R.attr.actionOverflowMenuStyle, 0);
}
@Override
public void show() {
super.show();
- // TODO(calderwoodra): show/hide clear frequents
- // TODO(calderwoodra): only show call history item if we have phone permission
// TODO(calderwoodra): show simulator buttons
}
}
diff --git a/java/com/android/dialer/main/impl/toolbar/SearchBarListener.java b/java/com/android/dialer/main/impl/toolbar/SearchBarListener.java
index 2e31997e6..a074b5131 100644
--- a/java/com/android/dialer/main/impl/toolbar/SearchBarListener.java
+++ b/java/com/android/dialer/main/impl/toolbar/SearchBarListener.java
@@ -16,6 +16,8 @@
package com.android.dialer.main.impl.toolbar;
+import android.view.MenuItem;
+
/** Useful callback for {@link SearchBarView} listeners. */
public interface SearchBarListener {
@@ -31,11 +33,8 @@ public interface SearchBarListener {
/** Called when the voice search button is clicked. */
void onVoiceButtonClicked(VoiceSearchResultCallback voiceSearchResultCallback);
- /** Called when the settings option is selected from the search menu. */
- void openSettings();
-
- /** Called when send feedback is selected from the search menu. */
- void sendFeedback();
+ /** Called when a toolbar menu item is clicked. */
+ boolean onMenuItemClicked(MenuItem menuItem);
/** Interface for returning voice results to the search bar. */
interface VoiceSearchResultCallback {
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 5b09fca8c..01309ddc4 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
@@ -22,7 +22,7 @@
app:showAsAction="collapseActionView"/>
<item
- android:id="@+id/feedback"
- android:title="@string/main_send_feedback"
+ android:id="@+id/clear_frequents"
+ android:title="@string/main_menu_clear_frequents"
app:showAsAction="collapseActionView"/>
</menu> \ 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 6af235b81..66ccfb452 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,8 +37,8 @@
<!-- Show users their settings [CHAR LIMIT=20] -->
<string name="settings">Settings</string>
- <!-- Send feedback about the app [CHAR LIMIT=20] -->
- <string name="main_send_feedback">Send feedback</string>
+ <!-- The menu item to clear frequents [CHAR LIMIT=30] -->
+ <string name="main_menu_clear_frequents">Clear frequents</string>
<!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
<string name="main_remove_contact">Remove</string>
diff --git a/java/com/android/dialer/phonelookup/consolidator/PhoneLookupInfoConsolidator.java b/java/com/android/dialer/phonelookup/consolidator/PhoneLookupInfoConsolidator.java
index 874bdbc5b..ce4030d70 100644
--- a/java/com/android/dialer/phonelookup/consolidator/PhoneLookupInfoConsolidator.java
+++ b/java/com/android/dialer/phonelookup/consolidator/PhoneLookupInfoConsolidator.java
@@ -159,6 +159,7 @@ public final class PhoneLookupInfoConsolidator {
case NameSource.CP2_REMOTE:
return Assert.isNotNull(firstCp2RemoteContact).getLookupUri();
case NameSource.PEOPLE_API:
+ return Assert.isNotNull(phoneLookupInfo.getPeopleApiInfo().getLookupUri());
case NameSource.NONE:
return "";
default:
diff --git a/java/com/android/dialer/phonelookup/phone_lookup_info.proto b/java/com/android/dialer/phonelookup/phone_lookup_info.proto
index 57a61ac50..e9cb9f8ad 100644
--- a/java/com/android/dialer/phonelookup/phone_lookup_info.proto
+++ b/java/com/android/dialer/phonelookup/phone_lookup_info.proto
@@ -117,6 +117,11 @@ message PhoneLookupInfo {
// The type of the lookup result, for example, a saved contact or a nearby
// business.
optional InfoType info_type = 6;
+
+ // A URI that contains encoded JSON about the number so contacts can
+ // populate the quick contact activity with name and numbers. This does not
+ // point to any real contact entry anywhere.
+ optional string lookup_uri = 7;
}
optional PeopleApiInfo people_api_info = 3;
diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java
index a6fcc9c7d..7728cd5dc 100644
--- a/java/com/android/incallui/AudioRouteSelectorActivity.java
+++ b/java/com/android/incallui/AudioRouteSelectorActivity.java
@@ -17,6 +17,7 @@
package com.android.incallui;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.telecom.CallAudioState;
@@ -26,24 +27,21 @@ import com.android.incallui.audiomode.AudioModeProvider;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
import com.android.incallui.call.CallList;
+import com.android.incallui.call.CallList.Listener;
import com.android.incallui.call.DialerCall;
import com.android.incallui.call.TelecomAdapter;
/** Simple activity that just shows the audio route selector fragment */
public class AudioRouteSelectorActivity extends FragmentActivity
- implements AudioRouteSelectorPresenter {
-
- public static final String SHOULD_LOG_BUBBLE_V2_IMPRESSION_EXTRA = "shouldLogBubbleV2Impression";
-
- private boolean shouldLogBubbleV2Impression;
+ implements AudioRouteSelectorPresenter, Listener {
@Override
protected void onCreate(@Nullable Bundle bundle) {
super.onCreate(bundle);
- shouldLogBubbleV2Impression =
- getIntent().getBooleanExtra(SHOULD_LOG_BUBBLE_V2_IMPRESSION_EXTRA, false);
AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState())
.show(getSupportFragmentManager(), AudioRouteSelectorDialogFragment.TAG);
+
+ CallList.getInstance().addListener(this);
}
@Override
@@ -51,10 +49,6 @@ public class AudioRouteSelectorActivity extends FragmentActivity
TelecomAdapter.getInstance().setAudioRoute(audioRoute);
finish();
- if (!shouldLogBubbleV2Impression) {
- return;
- }
-
// Log the select action with audio route and call
DialerImpression.Type impressionType = null;
if ((audioRoute & CallAudioState.ROUTE_WIRED_OR_EARPIECE) != 0) {
@@ -68,10 +62,7 @@ public class AudioRouteSelectorActivity extends FragmentActivity
return;
}
- DialerCall call = CallList.getInstance().getOutgoingCall();
- if (call == null) {
- call = CallList.getInstance().getActiveOrBackgroundCall();
- }
+ DialerCall call = getCall();
if (call != null) {
Logger.get(this)
.logCallImpression(impressionType, call.getUniqueCallId(), call.getTimeAddedMs());
@@ -102,4 +93,46 @@ public class AudioRouteSelectorActivity extends FragmentActivity
finish();
}
}
+
+ @Override
+ protected void onDestroy() {
+ CallList.getInstance().removeListener(this);
+ super.onDestroy();
+ }
+
+ private DialerCall getCall() {
+ DialerCall dialerCall = CallList.getInstance().getOutgoingCall();
+ if (dialerCall == null) {
+ dialerCall = CallList.getInstance().getActiveOrBackgroundCall();
+ }
+ return dialerCall;
+ }
+
+ @Override
+ public void onDisconnect(DialerCall call) {
+ if (getCall() == null) {
+ finish();
+ }
+ }
+
+ @Override
+ public void onIncomingCall(DialerCall call) {}
+
+ @Override
+ public void onUpgradeToVideo(DialerCall call) {}
+
+ @Override
+ public void onSessionModificationStateChange(DialerCall call) {}
+
+ @Override
+ public void onCallListChange(CallList callList) {}
+
+ @Override
+ public void onWiFiToLteHandover(DialerCall call) {}
+
+ @Override
+ public void onHandoverToWifiFailed(DialerCall call) {}
+
+ @Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
}
diff --git a/java/com/android/incallui/NewReturnToCallActionReceiver.java b/java/com/android/incallui/NewReturnToCallActionReceiver.java
index 23debe204..527a79b51 100644
--- a/java/com/android/incallui/NewReturnToCallActionReceiver.java
+++ b/java/com/android/incallui/NewReturnToCallActionReceiver.java
@@ -110,7 +110,6 @@ public class NewReturnToCallActionReceiver extends BroadcastReceiver {
public void showAudioRouteSelector(Context context) {
Intent intent = new Intent(context, AudioRouteSelectorActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
- intent.putExtra(AudioRouteSelectorActivity.SHOULD_LOG_BUBBLE_V2_IMPRESSION_EXTRA, true);
context.startActivity(intent);
}
diff --git a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
index ebbaef8e5..fe6bbbca5 100644
--- a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
+++ b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownMethod.java
@@ -370,11 +370,10 @@ public class FlingUpDownMethod extends AnswerMethod implements OnProgressChanged
public void setHintText(@Nullable CharSequence hintText) {
if (hintText == null) {
swipeToAnswerText.setText(R.string.call_incoming_swipe_to_answer);
- swipeToRejectText.setText(R.string.call_incoming_swipe_to_reject);
} else {
swipeToAnswerText.setText(hintText);
- swipeToRejectText.setText(null);
}
+ swipeToRejectText.setText(R.string.call_incoming_swipe_to_reject);
}
@Override
diff --git a/java/com/android/incallui/spam/res/values/strings.xml b/java/com/android/incallui/spam/res/values/strings.xml
index 3248c69ac..e893f2afc 100644
--- a/java/com/android/incallui/spam/res/values/strings.xml
+++ b/java/com/android/incallui/spam/res/values/strings.xml
@@ -20,7 +20,7 @@
<!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
<string name="non_spam_notification_title">Know <xliff:g id="number">%1$s</xliff:g>?</string>
<!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
- <string name="spam_notification_title">Was <xliff:g id="number">%1$s</xliff:g> a spam call?</string>
+ <string name="spam_notification_title">Was <xliff:g id="number">%1$s</xliff:g> a spam caller?</string>
<!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
<string name="spam_notification_block_report_toast_text"><xliff:g id="number">%1$s</xliff:g> blocked and call was reported as spam.</string>
<!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->