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

Commit 25ca20e4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Support CMF default wallpaper" into udc-dev am: 275eeea9

parents 9e8bf102 275eeea9
Loading
Loading
Loading
Loading
+50 −9
Original line number Original line Diff line number Diff line
@@ -2912,19 +2912,60 @@ public class WallpaperManager {
            }
            }
        }
        }


        // Check if the package exists
        if (!isComponentExist(context, cn)) {
        if (cn != null) {
            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.cmf_default_wallpaper_component);
        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 {
        try {
            final PackageManager packageManager = context.getPackageManager();
            final PackageManager packageManager = context.getPackageManager();
            packageManager.getPackageInfo(cn.getPackageName(),
            packageManager.getPackageInfo(cn.getPackageName(),
                    PackageManager.MATCH_DIRECT_BOOT_AWARE
                    PackageManager.MATCH_DIRECT_BOOT_AWARE
                            | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
                            | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
        } catch (PackageManager.NameNotFoundException e) {
        } catch (PackageManager.NameNotFoundException e) {
                cn = null;
            return false;
            }
        }
        }

        return true;
        return cn;
    }
    }


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


    <!-- CMF colors to default wallpaper component map, the component with color matching the device
         color will be the cmf default wallpapers. The default wallpaper will be default wallpaper
         component if 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="cmf_default_wallpaper_component" translatable="false">
        <!-- Add packages here -->
    </string-array>

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


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