Merge "Fix homepage icon didn't hide in portriat mode" into main

This commit is contained in:
Edgar Wang
2024-05-29 08:56:32 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 5 deletions

View File

@@ -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();
iteratePreferences(screen, job);
}
private void iteratePreferences(PreferenceGroup group, PreferenceJob job) {
int count = group.getPreferenceCount();
for (int i = 0; i < count; i++) {
Preference preference = screen.getPreference(i);
if (preference == null) {
break;
}
Preference preference = group.getPreference(i);
job.doForEach(preference);
if (preference instanceof PreferenceCategory) {
iteratePreferences((PreferenceCategory) preference, job);
}
}
}

View File

@@ -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);