Shorten trampoline toast text

Due to new toast UI constraints. So, instead of package name (which was
less informative) we display the app label now with reduced messages:

* targetSdk S+: https://screenshot.googleplex.com/3zYrPoNkNK2XabU
* targetSdk < S: https://screenshot.googleplex.com/rpMsrkr2PRWMG3z

Bug: 167676448
Test: Trigger trampoline w/ targetSdk S and < S, check toast fits.
Change-Id: Ie03cfb9668c580018835919091acadce2fea4d75
This commit is contained in:
Bernardo Rufino
2021-03-08 11:26:47 +00:00
parent 11687fae2c
commit 5c405a0ab5

View File

@@ -134,7 +134,6 @@ import android.app.AlarmManager;
import android.app.AppGlobals;
import android.app.AppOpsManager;
import android.app.AutomaticZenRule;
import android.app.BroadcastOptions;
import android.app.IActivityManager;
import android.app.INotificationManager;
import android.app.ITransientNotification;
@@ -10624,17 +10623,17 @@ public class NotificationManagerService extends SystemService {
return true;
}
}
String toastMessage = "Indirect activity start from " + packageName;
String logcatMessage =
"Indirect notification activity start (trampoline) from " + packageName;
// Call to toast() method is posted to mHandler below to offload PM lookup from the
// activity start path
if (CompatChanges.isChangeEnabled(NOTIFICATION_TRAMPOLINE_BLOCK, uid)) {
toast(toastMessage + " blocked.");
mHandler.post(() -> toast(packageName, uid, /* blocked */ true));
Slog.e(TAG, logcatMessage + " blocked");
return false;
} else {
if (mPackagesShown.add(packageName)) {
toast(toastMessage + ". This will be blocked in S.");
mHandler.post(() -> toast(packageName, uid, /* blocked */ false));
}
Slog.w(TAG, logcatMessage + ", this should be avoided for performance reasons");
return true;
@@ -10650,10 +10649,19 @@ public class NotificationManagerService extends SystemService {
&& !CompatChanges.isChangeEnabled(NOTIFICATION_TRAMPOLINE_BLOCK, uid);
}
private void toast(String message) {
mUiHandler.post(() ->
Toast.makeText(getUiContext(), message + "\nSee g.co/dev/trampolines.",
Toast.LENGTH_LONG).show());
private void toast(String packageName, int uid, boolean blocked) {
final CharSequence label;
try {
label = mPackageManagerClient.getApplicationLabel(
mPackageManager.getApplicationInfo(packageName, 0,
UserHandle.getUserId(uid)));
} catch (RemoteException e) {
Slog.e(TAG, "Unexpected exception obtaining app label from PackageManager", e);
return;
}
mUiHandler.post(() -> Toast.makeText(getUiContext(),
label + " launch " + (blocked ? "blocked" : "will be blocked")
+ "\ng.co/dev/trampolines", Toast.LENGTH_LONG).show());
}
}
}