Merge "Various fixes in ShortcutService" into sc-dev

This commit is contained in:
Pinyao Ting
2021-04-16 17:45:31 +00:00
committed by Android (Google) Code Review
3 changed files with 24 additions and 10 deletions

View File

@@ -663,12 +663,14 @@ class ShortcutPackage extends ShortcutPackageItem {
});
// Then, update the pinned state if necessary.
final List<ShortcutInfo> pinned = getShortcutById(pinnedShortcuts);
pinned.forEach(si -> {
if (!si.isPinned()) {
si.addFlags(ShortcutInfo.FLAG_PINNED);
}
});
saveShortcut(pinned);
if (pinned != null) {
pinned.forEach(si -> {
if (!si.isPinned()) {
si.addFlags(ShortcutInfo.FLAG_PINNED);
}
});
saveShortcut(pinned);
}
forEachShortcutMutateIf(AppSearchShortcutInfo.QUERY_IS_PINNED, si -> {
if (!pinnedShortcuts.contains(si.getId()) && si.isPinned()) {
si.clearFlags(ShortcutInfo.FLAG_PINNED);
@@ -826,9 +828,11 @@ class ShortcutPackage extends ShortcutPackageItem {
: s.getLauncherShortcutsLocked(callingLauncher, getPackageUserId(), launcherUserId)
.getPinnedShortcutIds(getPackageName(), getPackageUserId());
final List<ShortcutInfo> shortcuts = getShortcutById(ids);
for (ShortcutInfo si : shortcuts) {
filter(result, query, cloneFlag, callingLauncher, pinnedByCallerSet,
getPinnedByAnyLauncher, si);
if (shortcuts != null) {
for (ShortcutInfo si : shortcuts) {
filter(result, query, cloneFlag, callingLauncher, pinnedByCallerSet,
getPinnedByAnyLauncher, si);
}
}
}
@@ -1903,7 +1907,8 @@ class ShortcutPackage extends ShortcutPackageItem {
final ShortcutPackage ret = new ShortcutPackage(shortcutUser,
shortcutUser.getUserId(), packageName);
ret.mIsInitilized = ShortcutService.parseIntAttribute(parser, ATTR_SCHEMA_VERSON, 0) > 0;
ret.mIsInitilized = ShortcutService.parseIntAttribute(parser, ATTR_SCHEMA_VERSON, 0)
== AppSearchShortcutInfo.SCHEMA_VERSION;
ret.mApiCallCount =
ShortcutService.parseIntAttribute(parser, ATTR_CALL_COUNT);
ret.mLastResetTime =

View File

@@ -125,6 +125,7 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -2598,6 +2599,13 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase {
}).when(mMockPackageManagerInternal).getHomeActivitiesAsUser(any(List.class), eq(userId));
}
protected void prepareIntentActivities(ComponentName cn) {
when(mMockPackageManagerInternal.queryIntentActivities(
anyOrNull(Intent.class), anyStringOrNull(), anyInt(), anyInt(), anyInt()))
.thenReturn(Collections.singletonList(
ri(cn.getPackageName(), cn.getClassName(), false, 0)));
}
protected static ComponentName cn(String packageName, String name) {
return new ComponentName(packageName, name);
}

View File

@@ -159,6 +159,7 @@ public class ShortcutManagerTest10 extends BaseShortcutManagerTest {
public void testStartConfigActivity_defaultLauncher() {
LauncherActivityInfo info = setupMockActivityInfo();
prepareIntentActivities(info.getComponentName());
setDefaultLauncher(USER_0, LAUNCHER_1);
runWithCaller(LAUNCHER_1, USER_0, () ->
assertNotNull(mLauncherApps.getShortcutConfigActivityIntent(info))