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

Commit fb954513 authored by Jason Chiu's avatar Jason Chiu
Browse files

Reserve the icon space to avoid preference padding change

If the injection icon is to be retrieved from a provider, the preset
transparent drawable is a 1x1 icon, which may cause the preference
padding change before and after the injection icon reloading.

Bug: 253471066
Test: robotest, visual
Change-Id: Ie88f69bb047a64a6a0ee30c060d8cbb8fe27b3d7
parent af96b1ea
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -39,8 +39,8 @@

        <androidx.preference.internal.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_width="24dp"
            android:layout_height="24dp"
            app:maxWidth="48dp"
            app:maxHeight="48dp"/>

+2 −4
Original line number Diff line number Diff line
@@ -382,10 +382,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
        // Icon provided by the content provider overrides any static icon.
        if (tile.getMetaData() != null
                && tile.getMetaData().containsKey(META_DATA_PREFERENCE_ICON_URI)) {
            // Set a transparent color before starting to fetch the real icon, this is necessary
            // to avoid preference padding change.
            setPreferenceIcon(preference, tile, forceRoundedIcon, mContext.getPackageName(),
                    Icon.createWithResource(mContext, android.R.color.transparent));
            // Reserve the icon space to avoid preference padding change.
            preference.setIconSpaceReserved(true);

            ThreadUtils.postOnBackgroundThread(() -> {
                final Intent intent = tile.getIntent();