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

Commit 970417c7 authored by Jose Lima's avatar Jose Lima
Browse files

Added getLeanbackLaunchIntentForPackage()

Change-Id: I23be3bfa59be812a915adc37e08fdf59be8ad90f
parent 3d9a3b58
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -7263,6 +7263,7 @@ package android.content.pm {
    method public abstract java.lang.String getInstallerPackageName(java.lang.String);
    method public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public abstract android.content.Intent getLaunchIntentForPackage(java.lang.String);
    method public abstract android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
    method public abstract java.lang.String getNameForUid(int);
    method public android.content.pm.PackageInfo getPackageArchiveInfo(java.lang.String, int);
    method public abstract int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -24262,6 +24263,7 @@ package android.test.mock {
    method public java.lang.String getInstallerPackageName(java.lang.String);
    method public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public android.content.Intent getLaunchIntentForPackage(java.lang.String);
    method public android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
    method public java.lang.String getNameForUid(int);
    method public int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
    method public android.content.pm.PackageInfo getPackageInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+18 −0
Original line number Diff line number Diff line
@@ -128,6 +128,24 @@ final class ApplicationPackageManager extends PackageManager {
        return intent;
    }

    @Override
    public Intent getLeanbackLaunchIntentForPackage(String packageName) {
        // Try to find a main leanback_launcher activity.
        Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
        intentToResolve.addCategory(Intent.CATEGORY_LEANBACK_LAUNCHER);
        intentToResolve.setPackage(packageName);
        List<ResolveInfo> ris = queryIntentActivities(intentToResolve, 0);

        if (ris == null || ris.size() <= 0) {
            return null;
        }
        Intent intent = new Intent(intentToResolve);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setClassName(ris.get(0).activityInfo.packageName,
                ris.get(0).activityInfo.name);
        return intent;
    }

    @Override
    public int[] getPackageGids(String packageName)
            throws NameNotFoundException {
+29 −11
Original line number Diff line number Diff line
@@ -970,6 +970,7 @@ public abstract class PackageManager {
     * @hide
     * @deprecated
     */
    @Deprecated
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_NFC_HCE = "android.hardware.nfc.hce";

@@ -1266,6 +1267,7 @@ public abstract class PackageManager {
     * something like a DPAD, not through touch or mouse.
     * @deprecated use {@link #FEATURE_LEANBACK} instead.
     */
    @Deprecated
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEVISION = "android.hardware.type.television";

@@ -1455,17 +1457,33 @@ public abstract class PackageManager {
    public abstract Intent getLaunchIntentForPackage(String packageName);

    /**
     * Return an array of all of the secondary group-ids that have been
     * assigned to a package.
     * Return a "good" intent to launch a front-door Leanback activity in a
     * package, for use for example to implement an "open" button when browsing
     * through packages. The current implementation will look for a main
     * activity in the category {@link Intent#CATEGORY_LEANBACK_LAUNCHER}, or
     * return null if no main leanback activities are found.
     * <p>
     * Throws {@link NameNotFoundException} if a package with the given name
     * cannot be found on the system.
     * 
     * <p>Throws {@link NameNotFoundException} if a package with the given
     * name cannot be found on the system.
     * @param packageName The name of the package to inspect.
     * @return Returns either a fully-qualified Intent that can be used to launch
     *         the main Leanback activity in the package, or null if the package
     *         does not contain such an activity.
     */
    public abstract Intent getLeanbackLaunchIntentForPackage(String packageName);

    /**
     * Return an array of all of the secondary group-ids that have been assigned
     * to a package.
     * <p>
     * Throws {@link NameNotFoundException} if a package with the given name
     * cannot be found on the system.
     * 
     * @param packageName The full name (i.e. com.google.apps.contacts) of the
     *            desired package.
     *
     * @return Returns an int array of the assigned gids, or null if there
     * are none.
     * @return Returns an int array of the assigned gids, or null if there are
     *         none.
     */
    public abstract int[] getPackageGids(String packageName)
            throws NameNotFoundException;
+6 −0
Original line number Diff line number Diff line
@@ -80,6 +80,12 @@ public class MockPackageManager extends PackageManager {
    }

    @Override
    public Intent getLeanbackLaunchIntentForPackage(String packageName) {
        throw new UnsupportedOperationException();
    }

    @Override

    public int[] getPackageGids(String packageName) throws NameNotFoundException {
        throw new UnsupportedOperationException();
    }