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

Commit c0154537 authored by Kenny Guy's avatar Kenny Guy
Browse files

Update API for launcher apps to use abstract class.

Leaving old API behind until unbundled launcher
has been updated.

Bug: 15518265
Change-Id: Ic26878224df51093d7d08651adda08f760b405be
parent 3ecdd832
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -8238,15 +8238,26 @@ package android.content.pm {
  }
  }
  public class LauncherApps {
  public class LauncherApps {
    method public void addOnAppsChangedCallback(android.content.pm.LauncherApps.OnAppsChangedCallback);
    method public void addOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
    method public void addOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
    method public java.util.List<android.content.pm.LauncherActivityInfo> getActivityList(java.lang.String, android.os.UserHandle);
    method public boolean isActivityEnabledForProfile(android.content.ComponentName, android.os.UserHandle);
    method public boolean isActivityEnabledForProfile(android.content.ComponentName, android.os.UserHandle);
    method public boolean isPackageEnabledForProfile(java.lang.String, android.os.UserHandle);
    method public boolean isPackageEnabledForProfile(java.lang.String, android.os.UserHandle);
    method public void removeOnAppsChangedCallback(android.content.pm.LauncherApps.OnAppsChangedCallback);
    method public void removeOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
    method public void removeOnAppsChangedListener(android.content.pm.LauncherApps.OnAppsChangedListener);
    method public android.content.pm.LauncherActivityInfo resolveActivity(android.content.Intent, android.os.UserHandle);
    method public android.content.pm.LauncherActivityInfo resolveActivity(android.content.Intent, android.os.UserHandle);
    method public void startActivityForProfile(android.content.ComponentName, android.os.UserHandle, android.graphics.Rect, android.os.Bundle);
    method public void startActivityForProfile(android.content.ComponentName, android.os.UserHandle, android.graphics.Rect, android.os.Bundle);
  }
  }
  public static abstract class LauncherApps.OnAppsChangedCallback {
    ctor public LauncherApps.OnAppsChangedCallback();
    method public abstract void onPackageAdded(java.lang.String, android.os.UserHandle);
    method public abstract void onPackageChanged(java.lang.String, android.os.UserHandle);
    method public abstract void onPackageRemoved(java.lang.String, android.os.UserHandle);
    method public abstract void onPackagesAvailable(java.lang.String[], android.os.UserHandle, boolean);
    method public abstract void onPackagesUnavailable(java.lang.String[], android.os.UserHandle, boolean);
  }
  public static abstract interface LauncherApps.OnAppsChangedListener {
  public static abstract interface LauncherApps.OnAppsChangedListener {
    method public abstract void onPackageAdded(android.os.UserHandle, java.lang.String);
    method public abstract void onPackageAdded(android.os.UserHandle, java.lang.String);
    method public abstract void onPackageChanged(android.os.UserHandle, java.lang.String);
    method public abstract void onPackageChanged(android.os.UserHandle, java.lang.String);
+114 −3
Original line number Original line Diff line number Diff line
@@ -57,6 +57,65 @@ public class LauncherApps {


    private List<OnAppsChangedListener> mListeners
    private List<OnAppsChangedListener> mListeners
            = new ArrayList<OnAppsChangedListener>();
            = new ArrayList<OnAppsChangedListener>();
    private List<OnAppsChangedCallback> mCallbacks
            = new ArrayList<OnAppsChangedCallback>();

    /**
     * Callbacks for package changes to this and related managed profiles.
     */
    public static abstract class OnAppsChangedCallback {
        /**
         * Indicates that a package was removed from the specified profile.
         *
         * @param packageName The name of the package that was removed.
         * @param user The UserHandle of the profile that generated the change.
         */
        abstract public void onPackageRemoved(String packageName, UserHandle user);

        /**
         * Indicates that a package was added to the specified profile.
         *
         * @param packageName The name of the package that was added.
         * @param user The UserHandle of the profile that generated the change.
         */
        abstract public void onPackageAdded(String packageName, UserHandle user);

        /**
         * Indicates that a package was modified in the specified profile.
         *
         * @param packageName The name of the package that has changed.
         * @param user The UserHandle of the profile that generated the change.
         */
        abstract public void onPackageChanged(String packageName, UserHandle user);

        /**
         * Indicates that one or more packages have become available. For
         * example, this can happen when a removable storage card has
         * reappeared.
         *
         * @param packageNames The names of the packages that have become
         *            available.
         * @param user The UserHandle of the profile that generated the change.
         * @param replacing Indicates whether these packages are replacing
         *            existing ones.
         */
        abstract public void onPackagesAvailable(String[] packageNames, UserHandle user,
                boolean replacing);

        /**
         * Indicates that one or more packages have become unavailable. For
         * example, this can happen when a removable storage card has been
         * removed.
         *
         * @param packageNames The names of the packages that have become
         *            unavailable.
         * @param user The UserHandle of the profile that generated the change.
         * @param replacing Indicates whether the packages are about to be
         *            replaced with new versions.
         */
        abstract public void onPackagesUnavailable(String[] packageNames, UserHandle user,
                boolean replacing);
    }


    /**
    /**
     * Callbacks for package changes to this and related managed profiles.
     * Callbacks for package changes to this and related managed profiles.
@@ -270,7 +329,7 @@ public class LauncherApps {
        synchronized (this) {
        synchronized (this) {
            if (listener != null && !mListeners.contains(listener)) {
            if (listener != null && !mListeners.contains(listener)) {
                mListeners.add(listener);
                mListeners.add(listener);
                if (mListeners.size() == 1) {
                if (mListeners.size() == 1 && mCallbacks.size() == 0) {
                    try {
                    try {
                        mService.addOnAppsChangedListener(mAppsChangedListener);
                        mService.addOnAppsChangedListener(mAppsChangedListener);
                    } catch (RemoteException re) {
                    } catch (RemoteException re) {
@@ -289,7 +348,44 @@ public class LauncherApps {
    public void removeOnAppsChangedListener(OnAppsChangedListener listener) {
    public void removeOnAppsChangedListener(OnAppsChangedListener listener) {
        synchronized (this) {
        synchronized (this) {
            mListeners.remove(listener);
            mListeners.remove(listener);
            if (mListeners.size() == 0) {
            if (mListeners.size() == 0 && mCallbacks.size() == 0) {
                try {
                    mService.removeOnAppsChangedListener(mAppsChangedListener);
                } catch (RemoteException re) {
                }
            }
        }
    }

    /**
     * Adds a callback for changes to packages in current and managed profiles.
     *
     * @param callback The callback to add.
     */
    public void addOnAppsChangedCallback(OnAppsChangedCallback callback) {
        synchronized (this) {
            if (callback != null && !mCallbacks.contains(callback)) {
                mCallbacks.add(callback);
                if (mCallbacks.size() == 1 && mListeners.size() == 0) {
                    try {
                        mService.addOnAppsChangedListener(mAppsChangedListener);
                    } catch (RemoteException re) {
                    }
                }
            }
        }
    }

    /**
     * Removes a callback that was previously added.
     *
     * @param callback The callback to remove.
     * @see #addOnAppsChangedListener(OnAppsChangedCallback)
     */
    public void removeOnAppsChangedCallback(OnAppsChangedCallback callback) {
        synchronized (this) {
            mListeners.remove(callback);
            if (mListeners.size() == 0 && mCallbacks.size() == 0) {
                try {
                try {
                    mService.removeOnAppsChangedListener(mAppsChangedListener);
                    mService.removeOnAppsChangedListener(mAppsChangedListener);
                } catch (RemoteException re) {
                } catch (RemoteException re) {
@@ -309,6 +405,9 @@ public class LauncherApps {
                for (OnAppsChangedListener listener : mListeners) {
                for (OnAppsChangedListener listener : mListeners) {
                    listener.onPackageRemoved(user, packageName);
                    listener.onPackageRemoved(user, packageName);
                }
                }
                for (OnAppsChangedCallback callback : mCallbacks) {
                    callback.onPackageRemoved(packageName, user);
                }
            }
            }
        }
        }


@@ -321,6 +420,9 @@ public class LauncherApps {
                for (OnAppsChangedListener listener : mListeners) {
                for (OnAppsChangedListener listener : mListeners) {
                    listener.onPackageChanged(user, packageName);
                    listener.onPackageChanged(user, packageName);
                }
                }
                for (OnAppsChangedCallback callback : mCallbacks) {
                    callback.onPackageChanged(packageName, user);
                }
            }
            }
        }
        }


@@ -333,6 +435,9 @@ public class LauncherApps {
                for (OnAppsChangedListener listener : mListeners) {
                for (OnAppsChangedListener listener : mListeners) {
                    listener.onPackageAdded(user, packageName);
                    listener.onPackageAdded(user, packageName);
                }
                }
                for (OnAppsChangedCallback callback : mCallbacks) {
                    callback.onPackageAdded(packageName, user);
                }
            }
            }
        }
        }


@@ -346,6 +451,9 @@ public class LauncherApps {
                for (OnAppsChangedListener listener : mListeners) {
                for (OnAppsChangedListener listener : mListeners) {
                    listener.onPackagesAvailable(user, packageNames, replacing);
                    listener.onPackagesAvailable(user, packageNames, replacing);
                }
                }
                for (OnAppsChangedCallback callback : mCallbacks) {
                    callback.onPackagesAvailable(packageNames, user, replacing);
                }
            }
            }
        }
        }


@@ -359,6 +467,9 @@ public class LauncherApps {
                for (OnAppsChangedListener listener : mListeners) {
                for (OnAppsChangedListener listener : mListeners) {
                    listener.onPackagesUnavailable(user, packageNames, replacing);
                    listener.onPackagesUnavailable(user, packageNames, replacing);
                }
                }
                for (OnAppsChangedCallback callback : mCallbacks) {
                    callback.onPackagesUnavailable(packageNames, user, replacing);
                }
           }
           }
        }
        }
    };
    };