Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bbf6004 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Removing ShortcutInfoCompat and directly using ShortcutInfo

Change-Id: I2842689e192a206c0d31558c8126eae1c7904598
parent 8b0cb411
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.launcher3.shortcuts;

import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ShortcutInfo;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -55,7 +56,7 @@ public class DeepShortcutManager {
        return false;
    }

    public void onShortcutsChanged(List<ShortcutInfoCompat> shortcuts) {
    public void onShortcutsChanged(List<ShortcutInfo> shortcuts) {
    }

    /**
@@ -64,7 +65,7 @@ public class DeepShortcutManager {
     * This method is intended to get the full details for shortcuts when they are added or updated,
     * because we only get "key" fields in onShortcutsChanged().
     */
    public List<ShortcutInfoCompat> queryForFullDetails(String packageName,
    public List<ShortcutInfo> queryForFullDetails(String packageName,
            List<String> shortcutIds, UserHandle user) {
        return Collections.emptyList();
    }
@@ -73,7 +74,7 @@ public class DeepShortcutManager {
     * Gets all the manifest and dynamic shortcuts associated with the given package and user,
     * to be displayed in the shortcuts container on long press.
     */
    public List<ShortcutInfoCompat> queryForShortcutsContainer(ComponentName activity,
    public List<ShortcutInfo> queryForShortcutsContainer(ComponentName activity,
            UserHandle user) {
        return Collections.emptyList();
    }
@@ -96,7 +97,7 @@ public class DeepShortcutManager {
            Bundle startActivityOptions, UserHandle user) {
    }

    public Drawable getShortcutIconDrawable(ShortcutInfoCompat shortcutInfo, int density) {
    public Drawable getShortcutIconDrawable(ShortcutInfo shortcutInfo, int density) {
        return null;
    }

@@ -105,16 +106,16 @@ public class DeepShortcutManager {
     *
     * If packageName is null, returns all pinned shortcuts regardless of package.
     */
    public List<ShortcutInfoCompat> queryForPinnedShortcuts(String packageName, UserHandle user) {
    public List<ShortcutInfo> queryForPinnedShortcuts(String packageName, UserHandle user) {
        return Collections.emptyList();
    }

    public List<ShortcutInfoCompat> queryForPinnedShortcuts(String packageName,
    public List<ShortcutInfo> queryForPinnedShortcuts(String packageName,
            List<String> shortcutIds, UserHandle user) {
        return Collections.emptyList();
    }

    public List<ShortcutInfoCompat> queryForAllShortcuts(UserHandle user) {
    public List<ShortcutInfo> queryForAllShortcuts(UserHandle user) {
        return Collections.emptyList();
    }

+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@
    <string name="wallpaper_picker_package" translatable="false"></string>

    <!-- Whitelisted package to retrieve packagename for badge. Can be empty. -->
    <string name="shortcutinfocompat_badgepkg_whitelist" translatable="false"></string>
    <string name="shortcutinfo_badgepkg_whitelist" translatable="false"></string>

    <!-- View ID to use for QSB widget -->
    <item type="id" name="qsb_widget" />
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ public class FlagOverrideSampleTest {
    public final FlagOverrideRule flags = new FlagOverrideRule();

    @FlagOverride(key = "EXAMPLE_FLAG", value = true)
    @FlagOverride(key = "QUICK_SWITCH", value = false)
    @Test
    public void withFlagOn() {
        assertTrue(FeatureFlags.EXAMPLE_FLAG.get());
+7 −3
Original line number Diff line number Diff line
@@ -10,8 +10,8 @@ import android.graphics.Point;

import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.config.FlagOverrideRule;
import com.android.launcher3.config.FlagOverrideRule.FlagOverride;
import com.android.launcher3.model.GridSizeMigrationTask.MultiStepMigrationTask;
import com.android.launcher3.util.IntArray;

@@ -210,9 +210,11 @@ public class GridSizeMigrationTaskTest extends BaseGridChangesTestCase {
        }});
    }

    @FlagOverride(key = "QSB_ON_FIRST_SCREEN", value = true)
    @Test
    public void testWorkspace_first_row_blocked() throws Exception {
        if (!FeatureFlags.QSB_ON_FIRST_SCREEN) {
            return;
        }
        // The first screen has one item on the 4th column which needs moving, as the first row
        // will be kept empty.
        int[][][] ids = createGrid(new int[][][]{{
@@ -236,9 +238,11 @@ public class GridSizeMigrationTaskTest extends BaseGridChangesTestCase {
        }});
    }

    @FlagOverride(key = "QSB_ON_FIRST_SCREEN", value = true)
    @Test
    public void testWorkspace_items_moved_to_empty_first_row() throws Exception {
        if (!FeatureFlags.QSB_ON_FIRST_SCREEN) {
            return;
        }
        // Items will get moved to the next screen to keep the first screen empty.
        int[][][] ids = createGrid(new int[][][]{{
                { -1, -1, -1, -1},
+23 −52
Original line number Diff line number Diff line
@@ -22,16 +22,15 @@ import static com.android.launcher3.popup.PopupPopulator.NUM_DYNAMIC;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;

import android.content.pm.ShortcutInfo;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.launcher3.shortcuts.ShortcutInfoCompat;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;

import java.util.ArrayList;
import java.util.Collections;
@@ -40,8 +39,7 @@ import java.util.List;
/**
 * Tests the sorting and filtering of shortcuts in {@link PopupPopulator}.
 */
@SmallTest
@RunWith(AndroidJUnit4.class)
@RunWith(RobolectricTestRunner.class)
public class PopupPopulatorTest {

    @Test
@@ -81,20 +79,20 @@ public class PopupPopulatorTest {
    }

    private void filterShortcutsAndAssertNumStaticAndDynamic(
            List<ShortcutInfoCompat> shortcuts, int expectedStatic, int expectedDynamic) {
            List<ShortcutInfo> shortcuts, int expectedStatic, int expectedDynamic) {
        filterShortcutsAndAssertNumStaticAndDynamic(shortcuts, expectedStatic, expectedDynamic, null);
    }

    private void filterShortcutsAndAssertNumStaticAndDynamic(List<ShortcutInfoCompat> shortcuts,
    private void filterShortcutsAndAssertNumStaticAndDynamic(List<ShortcutInfo> shortcuts,
            int expectedStatic, int expectedDynamic, String shortcutIdToRemove) {
        Collections.shuffle(shortcuts);
        List<ShortcutInfoCompat> filteredShortcuts = PopupPopulator.sortAndFilterShortcuts(
        List<ShortcutInfo> filteredShortcuts = PopupPopulator.sortAndFilterShortcuts(
                shortcuts, shortcutIdToRemove);
        assertIsSorted(filteredShortcuts);

        int numStatic = 0;
        int numDynamic = 0;
        for (ShortcutInfoCompat shortcut : filteredShortcuts) {
        for (ShortcutInfo shortcut : filteredShortcuts) {
            if (shortcut.isDeclaredInManifest()) {
                numStatic++;
            }
@@ -106,11 +104,11 @@ public class PopupPopulatorTest {
        assertEquals(expectedDynamic, numDynamic);
    }

    private void assertIsSorted(List<ShortcutInfoCompat> shortcuts) {
    private void assertIsSorted(List<ShortcutInfo> shortcuts) {
        int lastStaticRank = -1;
        int lastDynamicRank = -1;
        boolean hasSeenDynamic = false;
        for (ShortcutInfoCompat shortcut : shortcuts) {
        for (ShortcutInfo shortcut : shortcuts) {
            int rank = shortcut.getRank();
            if (shortcut.isDeclaredInManifest()) {
                assertFalse("Static shortcuts should come before all dynamic shortcuts.",
@@ -126,51 +124,24 @@ public class PopupPopulatorTest {
        }
    }

    private List<ShortcutInfoCompat> createShortcutsList(int numStatic, int numDynamic) {
        List<ShortcutInfoCompat> shortcuts = new ArrayList<>();
    private List<ShortcutInfo> createShortcutsList(int numStatic, int numDynamic) {
        List<ShortcutInfo> shortcuts = new ArrayList<>();
        for (int i = 0; i < numStatic; i++) {
            shortcuts.add(new Shortcut(true, i));
            shortcuts.add(createInfo(true, i));
        }
        for (int i = 0; i < numDynamic; i++) {
            shortcuts.add(new Shortcut(false, i));
            shortcuts.add(createInfo(false, i));
        }
        return shortcuts;
    }

    private class Shortcut extends ShortcutInfoCompat {
        private boolean mIsStatic;
        private int mRank;
        private String mId;

        public Shortcut(ShortcutInfo shortcutInfo) {
            super(shortcutInfo);
        }

        public Shortcut(boolean isStatic, int rank) {
            this(null);
            mIsStatic = isStatic;
            mRank = rank;
            mId = generateId(isStatic, rank);
        }

        @Override
        public boolean isDeclaredInManifest() {
            return mIsStatic;
        }

        @Override
        public boolean isDynamic() {
            return !mIsStatic;
        }

        @Override
        public int getRank() {
            return mRank;
        }

        @Override
        public String getId() {
            return mId;
        }
    private ShortcutInfo createInfo(boolean isStatic, int rank) {
        ShortcutInfo info = spy(new ShortcutInfo.Builder(
                RuntimeEnvironment.application, generateId(isStatic, rank))
                .setRank(rank)
                .build());
        doReturn(isStatic).when(info).isDeclaredInManifest();
        doReturn(!isStatic).when(info).isDynamic();
        return info;
    }
}
 No newline at end of file
Loading