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

Commit 3b9bd623 authored by Austin Wang's avatar Austin Wang Committed by Android (Google) Code Review
Browse files

Merge "RESTRICT AUTOMERGE Revert "RESTRICT AUTOMERGE Revert "Support CMF...

Merge "RESTRICT AUTOMERGE Revert "RESTRICT AUTOMERGE Revert "Support CMF default wallpaper""" into udc-qpr-dev
parents 6c98cc70 89daca57
Loading
Loading
Loading
Loading
+50 −9
Original line number Diff line number Diff line
@@ -2933,19 +2933,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
@@ -1592,7 +1592,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