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

Commit 3bd93846 authored by Austin Wang's avatar Austin Wang Committed by Automerger Merge Worker
Browse files

RESTRICT AUTOMERGE Revert "RESTRICT AUTOMERGE Revert "Support CMF default...

RESTRICT AUTOMERGE Revert "RESTRICT AUTOMERGE Revert "Support CMF default wallpaper"" am: 89daca57

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23616437



Change-Id: I39d5f347ce9a696a2778f7192bf119e7345732a7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 4f4e2a1b 89daca57
Loading
Loading
Loading
Loading
+50 −9
Original line number Diff line number Diff line
@@ -2932,19 +2932,60 @@ public class WallpaperManager {
            }
        }

        // Check if the package exists
        if (cn != null) {
        if (!isComponentExist(context, cn)) {
            cn = null;
        }

        return cn;
    }

    /**
     * Return {@link ComponentName} of the CMF default wallpaper, or
     * {@link #getDefaultWallpaperComponent(Context)} if none is defined.
     *
     * @hide
     */
    public static ComponentName getCmfDefaultWallpaperComponent(Context context) {
        ComponentName cn = null;
        String[] cmfWallpaperMap = context.getResources().getStringArray(
                com.android.internal.R.array.default_wallpaper_component_per_device_color);
        if (cmfWallpaperMap == null || cmfWallpaperMap.length == 0) {
            Log.d(TAG, "No CMF wallpaper config");
            return getDefaultWallpaperComponent(context);
        }

        for (String entry : cmfWallpaperMap) {
            String[] cmfWallpaper;
            if (!TextUtils.isEmpty(entry)) {
                cmfWallpaper = entry.split(",");
                if (cmfWallpaper != null && cmfWallpaper.length == 2 && VALUE_CMF_COLOR.equals(
                        cmfWallpaper[0]) && !TextUtils.isEmpty(cmfWallpaper[1])) {
                    cn = ComponentName.unflattenFromString(cmfWallpaper[1]);
                    break;
                }
            }
        }

        if (!isComponentExist(context, cn)) {
            cn = null;
        }

        return cn;
    }

    private static boolean isComponentExist(Context context, ComponentName cn) {
        if (cn == null) {
            return false;
        }
        try {
            final PackageManager packageManager = context.getPackageManager();
            packageManager.getPackageInfo(cn.getPackageName(),
                    PackageManager.MATCH_DIRECT_BOOT_AWARE
                            | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
        } catch (PackageManager.NameNotFoundException e) {
                cn = null;
            }
            return false;
        }

        return cn;
        return true;
    }

    /**
+11 −0
Original line number Diff line number Diff line
@@ -1857,6 +1857,17 @@
         specified -->
    <string name="default_wallpaper_component" translatable="false">@null</string>

    <!-- Default wallpaper component per device color map, each item is a comma separated key-value
         pair with key being a device color and value being the corresponding wallpaper component.
         The component with its key matching the device color will be the default wallpaper, the
         default wallpaper component will be the default if this config is not specified.

         E.g. for SLV color, and com.android.example/com.android.example.SlVDefaultWallpaper
         <item>SLV,com.android.example/com.android.example.SlVDefaultWallpaper</item> -->
    <string-array name="default_wallpaper_component_per_device_color" translatable="false">
        <!-- Add packages here -->
    </string-array>

    <!-- By default a product has no distinct default lock wallpaper -->
    <item name="default_lock_wallpaper" type="drawable">@null</item>

+1 −0
Original line number Diff line number Diff line
@@ -2119,6 +2119,7 @@
  <java-symbol type="string" name="data_usage_rapid_body" />
  <java-symbol type="string" name="data_usage_rapid_app_body" />
  <java-symbol type="string" name="default_wallpaper_component" />
  <java-symbol type="array" name="default_wallpaper_component_per_device_color" />
  <java-symbol type="string" name="device_storage_monitor_notification_channel" />
  <java-symbol type="string" name="dlg_ok" />
  <java-symbol type="string" name="dump_heap_notification" />
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ public class WallpaperUpdateReceiver extends BroadcastReceiver {
        } else {
            //live wallpaper
            ComponentName currCN = info.getComponent();
            ComponentName defaultCN = WallpaperManager.getDefaultWallpaperComponent(context);
            ComponentName defaultCN = WallpaperManager.getCmfDefaultWallpaperComponent(context);
            if (!currCN.equals(defaultCN)) {
                return true;
            }
+1 −1
Original line number Diff line number Diff line
@@ -1637,7 +1637,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
        mShuttingDown = false;
        mImageWallpaper = ComponentName.unflattenFromString(
                context.getResources().getString(R.string.image_wallpaper_component));
        mDefaultWallpaperComponent = WallpaperManager.getDefaultWallpaperComponent(context);
        mDefaultWallpaperComponent = WallpaperManager.getCmfDefaultWallpaperComponent(context);
        mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class);
        mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
        mIPackageManager = AppGlobals.getPackageManager();
Loading