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

Commit fb30cb68 authored by Edgar Wang's avatar Edgar Wang
Browse files

Fix homepage icon didn't hide in portriat mode

- also fix don't tint homepage icons when homepage_revamp enabled

Bug: 343162224
Test: manual
Change-Id: I85b65239cb852cd914a5fd889ec366bf336fd446
parent 3c822399
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -33,7 +33,9 @@ import android.view.ViewGroup;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import androidx.recyclerview.widget.RecyclerView;
import androidx.window.embedding.ActivityEmbeddingController;
@@ -210,6 +212,9 @@ public class TopLevelSettings extends DashboardFragment implements SplitLayoutLi
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        super.onCreatePreferences(savedInstanceState, rootKey);
        if (Flags.homepageRevamp()) {
            return;
        }
        int tintColor = Utils.getHomepageIconColor(getContext());
        iteratePreferences(preference -> {
            Drawable icon = preference.getIcon();
@@ -364,13 +369,17 @@ public class TopLevelSettings extends DashboardFragment implements SplitLayoutLi
        }

        job.init();
        int count = screen.getPreferenceCount();
        for (int i = 0; i < count; i++) {
            Preference preference = screen.getPreference(i);
            if (preference == null) {
                break;
        iteratePreferences(screen, job);
    }

    private void iteratePreferences(PreferenceGroup group, PreferenceJob job) {
        int count = group.getPreferenceCount();
        for (int i = 0; i < count; i++) {
            Preference preference = group.getPreference(i);
            job.doForEach(preference);
            if (preference instanceof PreferenceCategory) {
                iteratePreferences((PreferenceCategory) preference, job);
            }
        }
    }

+7 −0
Original line number Diff line number Diff line
@@ -26,15 +26,19 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.flag.junit.SetFlagsRule;

import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -42,6 +46,8 @@ import org.robolectric.RuntimeEnvironment;

@RunWith(RobolectricTestRunner.class)
public class TopLevelSettingsTest {
    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
    private Context mContext;
    private TopLevelSettings mSettings;

@@ -58,6 +64,7 @@ public class TopLevelSettingsTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_HOMEPAGE_REVAMP)
    public void onCreatePreferences_shouldTintPreferenceIcon() {
        final Preference preference = new Preference(mContext);
        preference.setTitle(R.string.network_dashboard_title);