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

Commit 8ae1abec authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Moves lock screen shortcuts summary loading to the background." into udc-dev

parents d082c0aa d2fb1856
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.utils.ThreadUtils;

/**
 * Preference for accessing an experience to customize lock screen quick affordances.
@@ -65,7 +66,11 @@ public class CustomizableLockScreenQuickAffordancesPreferenceController extends
    }

    @Override
    public CharSequence getSummary() {
        return CustomizableLockScreenUtils.getQuickAffordanceSummary(mContext);
    protected void refreshSummary(Preference preference) {
        ThreadUtils.postOnBackgroundThread(() -> {
            final CharSequence summary =
                    CustomizableLockScreenUtils.getQuickAffordanceSummary(mContext);
            ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
        });
    }
}
+17 −9
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.MatrixCursor;
import android.text.TextUtils;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -43,6 +42,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.filters.SmallTest;

import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowThreadUtils;

import org.junit.Before;
import org.junit.Test;
@@ -71,6 +71,7 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
        when(mContext.getResources())
                .thenReturn(ApplicationProvider.getApplicationContext().getResources());
        when(mContext.getPackageManager()).thenReturn(mPackageManager);
        ShadowThreadUtils.setIsMainThread(true);

        mUnderTest = new CustomizableLockScreenQuickAffordancesPreferenceController(mContext, KEY);
    }
@@ -99,11 +100,7 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
    @Test
    public void displayPreference_click() {
        setSelectedAffordanceNames("one", "two");
        final PreferenceScreen screen = mock(PreferenceScreen.class);
        final Preference preference = mock(Preference.class);
        when(screen.findPreference(KEY)).thenReturn(preference);

        mUnderTest.displayPreference(screen);
        final Preference preference = invokeDisplayPreference();

        final ArgumentCaptor<Preference.OnPreferenceClickListener> clickCaptor =
                ArgumentCaptor.forClass(Preference.OnPreferenceClickListener.class);
@@ -124,22 +121,25 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
    @Test
    public void getSummary_whenNoneAreSelected() {
        setSelectedAffordanceNames();
        final Preference preference = invokeDisplayPreference();

        assertThat(mUnderTest.getSummary()).isNull();
        verify(preference).setSummary(null);
    }

    @Test
    public void getSummary_whenOneIsSelected() {
        setSelectedAffordanceNames("one");
        final Preference preference = invokeDisplayPreference();

        assertThat(TextUtils.equals(mUnderTest.getSummary(), "one")).isTrue();
        verify(preference).setSummary("one");
    }

    @Test
    public void getSummary_whenTwoAreSelected() {
        setSelectedAffordanceNames("one", "two");
        final Preference preference = invokeDisplayPreference();

        assertThat(TextUtils.equals(mUnderTest.getSummary(), "one, two")).isTrue();
        verify(preference).setSummary("one, two");
    }

    private void setEnabled(boolean isWallpaperPickerInstalled, boolean isFeatureEnabled) {
@@ -183,4 +183,12 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
                        CustomizableLockScreenUtils.SELECTIONS_URI, null, null, null))
                .thenReturn(cursor);
    }

    private Preference invokeDisplayPreference() {
        final PreferenceScreen screen = mock(PreferenceScreen.class);
        final Preference preference = mock(Preference.class);
        when(screen.findPreference(KEY)).thenReturn(preference);
        mUnderTest.displayPreference(screen);
        return preference;
    }
}