summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2025-01-22 15:43:10 -0800
committer Andrey Yepin <ayepin@google.com> 2025-01-23 14:51:51 -0800
commite0d3931f5d4721315954b83073ad2388fbb4ba26 (patch)
tree5b595d51192ff2be79addee32520fc696a9b4625 /java
parente659b7a7aeb08c709d6befb531dde59831d117f7 (diff)
Clear cached direct targets.
This change re-introduce a fix for direct targets "blinking" after a payload change is mande in the Shareousel under a new flag. It also fixes the critical issue that caused the previus flag's reversal by a proper cache cleaning. Fix: 343300158 Test: test Shareousel payload changing and sharing to a shortcut. Flag: com.android.intentresolver.fix_shortcuts_flashing_fixed Change-Id: If7ade45bda4a2b42f9b5838cbb315ec00546489c
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java9
-rw-r--r--java/src/com/android/intentresolver/ChooserListAdapter.java7
-rw-r--r--java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt4
3 files changed, 14 insertions, 6 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index d81adfba..d4cf82ff 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -23,7 +23,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE
import static androidx.lifecycle.LifecycleKt.getCoroutineScope;
import static com.android.intentresolver.ChooserActionFactory.EDIT_SOURCE;
-import static com.android.intentresolver.Flags.fixShortcutsFlashing;
+import static com.android.intentresolver.Flags.fixShortcutsFlashingFixed;
import static com.android.intentresolver.Flags.interactiveSession;
import static com.android.intentresolver.Flags.keyboardNavigationFix;
import static com.android.intentresolver.Flags.rebuildAdaptersOnTargetPinning;
@@ -871,7 +871,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
postRebuildList(
mChooserMultiProfilePagerAdapter.rebuildTabs(
mProfiles.getWorkProfilePresent() || mProfiles.getPrivateProfilePresent()));
- if (fixShortcutsFlashing() && oldPagerAdapter != null) {
+ if (fixShortcutsFlashingFixed() && oldPagerAdapter != null) {
for (int i = 0, count = mChooserMultiProfilePagerAdapter.getCount(); i < count; i++) {
ChooserListAdapter listAdapter =
mChooserMultiProfilePagerAdapter.getPageAdapterForIndex(i)
@@ -2497,7 +2497,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
if (duration >= 0) {
Log.d(TAG, "app target loading time " + duration + " ms");
}
- if (!fixShortcutsFlashing()) {
+ if (!fixShortcutsFlashingFixed()) {
addCallerChooserTargets(chooserListAdapter);
}
getEventLog().logSharesheetAppLoadComplete();
@@ -2529,8 +2529,9 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
ChooserListAdapter adapter =
mChooserMultiProfilePagerAdapter.getListAdapterForUserHandle(userHandle);
if (adapter != null) {
- if (fixShortcutsFlashing()) {
+ if (fixShortcutsFlashingFixed()) {
adapter.setDirectTargetsEnabled(true);
+ adapter.resetDirectTargets();
addCallerChooserTargets(adapter);
}
for (ShortcutLoader.ShortcutResultInfo resultInfo : result.getShortcutsByApp()) {
diff --git a/java/src/com/android/intentresolver/ChooserListAdapter.java b/java/src/com/android/intentresolver/ChooserListAdapter.java
index 563d7d1a..d743f859 100644
--- a/java/src/com/android/intentresolver/ChooserListAdapter.java
+++ b/java/src/com/android/intentresolver/ChooserListAdapter.java
@@ -811,6 +811,13 @@ public class ChooserListAdapter extends ResolverListAdapter {
mServiceTargets.addAll(adapter.mServiceTargets);
}
+ /**
+ * Reset direct targets
+ */
+ public void resetDirectTargets() {
+ createPlaceHolders();
+ }
+
private boolean isDirectTargetRowEmptyState() {
return (mServiceTargets.size() == 1) && mServiceTargets.get(0).isEmptyTargetInfo();
}
diff --git a/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt b/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
index 41f838ee..aa1f385f 100644
--- a/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
+++ b/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
@@ -35,7 +35,7 @@ import androidx.annotation.MainThread
import androidx.annotation.OpenForTesting
import androidx.annotation.VisibleForTesting
import androidx.annotation.WorkerThread
-import com.android.intentresolver.Flags.fixShortcutsFlashing
+import com.android.intentresolver.Flags.fixShortcutsFlashingFixed
import com.android.intentresolver.chooser.DisplayResolveInfo
import com.android.intentresolver.measurements.Tracer
import com.android.intentresolver.measurements.runTracing
@@ -189,7 +189,7 @@ constructor(
Log.d(TAG, "[$id] query AppPredictor for user $userHandle")
val watchdogJob =
- if (fixShortcutsFlashing()) {
+ if (fixShortcutsFlashingFixed()) {
scope
.launch(start = CoroutineStart.LAZY) {
delay(APP_PREDICTOR_RESPONSE_TIMEOUT_MS)