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

Commit f4bf5802 authored by Santiago Etchebehere's avatar Santiago Etchebehere
Browse files

Do not crash if OverlayManager is not available

Just remove the Styles tab in that case.

Bug: 132909772
Change-Id: I63e0444390a56715c2420133870e7c7616bb05d7
parent d26ddbf3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -111,6 +111,11 @@ public class DefaultThemeProvider extends ResourcesApkProvider implements ThemeB
        }
    }

    @Override
    public boolean isAvailable() {
        return mOverlayProvider.isAvailable() && super.isAvailable();
    }

    private void loadAll() {
        addDefaultTheme();

+4 −0
Original line number Diff line number Diff line
@@ -44,6 +44,10 @@ public class OverlayManagerCompat {
        mTargetPackages = ResourceConstants.getPackagesToOverlay(context);
    }

    public boolean isAvailable() {
        return mOverlayManager != null;
    }

    /**
     * Enables the overlay provided by the given package for the given user Id
     * @return true if the operation succeeded
+16 −11
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ class OverlayThemeExtractor {
    OverlayThemeExtractor(Context context) {
        mContext = context;
        OverlayManager om = context.getSystemService(OverlayManager.class);
        if (om != null) {
            Consumer<OverlayInfo> addToMap = overlayInfo -> mOverlayInfos.put(
                    overlayInfo.getPackageName(), overlayInfo);

@@ -50,11 +51,15 @@ class OverlayThemeExtractor {
            om.getOverlayInfosForTarget(ResourceConstants.getLauncherPackage(context), user)
                    .forEach(addToMap);
            om.getOverlayInfosForTarget(context.getPackageName(), user).forEach(addToMap);

        }
        mShapePreviewIconPackages = context.getResources().getStringArray(
                R.array.icon_shape_preview_packages);
    }

    boolean isAvailable() {
        return !mOverlayInfos.isEmpty();
    }

    void addColorOverlay(Builder builder, String colorOverlayPackage)
            throws NameNotFoundException {
        if (!TextUtils.isEmpty(colorOverlayPackage)) {
+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ public class ThemeManager implements CustomizationManager<ThemeBundle> {

    @Override
    public boolean isAvailable() {
        return mProvider.isAvailable();
        return mOverlayManagerCompat.isAvailable() && mProvider.isAvailable();
    }

    @Override