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

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22260969

Change-Id: Ic39dda7a04084a312ad530b8f34190b6059355ed
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-03-31 19:51:13 +00:00
committed by Automerger Merge Worker
2 changed files with 24 additions and 11 deletions

View File

@@ -26,6 +26,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.utils.ThreadUtils;
/** /**
* Preference for accessing an experience to customize lock screen quick affordances. * Preference for accessing an experience to customize lock screen quick affordances.
@@ -65,7 +66,11 @@ public class CustomizableLockScreenQuickAffordancesPreferenceController extends
} }
@Override @Override
public CharSequence getSummary() { protected void refreshSummary(Preference preference) {
return CustomizableLockScreenUtils.getQuickAffordanceSummary(mContext); ThreadUtils.postOnBackgroundThread(() -> {
final CharSequence summary =
CustomizableLockScreenUtils.getQuickAffordanceSummary(mContext);
ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
});
} }
} }

View File

@@ -35,7 +35,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.database.MatrixCursor; import android.database.MatrixCursor;
import android.text.TextUtils;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -43,6 +42,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -71,6 +71,7 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
when(mContext.getResources()) when(mContext.getResources())
.thenReturn(ApplicationProvider.getApplicationContext().getResources()); .thenReturn(ApplicationProvider.getApplicationContext().getResources());
when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mContext.getPackageManager()).thenReturn(mPackageManager);
ShadowThreadUtils.setIsMainThread(true);
mUnderTest = new CustomizableLockScreenQuickAffordancesPreferenceController(mContext, KEY); mUnderTest = new CustomizableLockScreenQuickAffordancesPreferenceController(mContext, KEY);
} }
@@ -99,11 +100,7 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
@Test @Test
public void displayPreference_click() { public void displayPreference_click() {
setSelectedAffordanceNames("one", "two"); setSelectedAffordanceNames("one", "two");
final PreferenceScreen screen = mock(PreferenceScreen.class); final Preference preference = invokeDisplayPreference();
final Preference preference = mock(Preference.class);
when(screen.findPreference(KEY)).thenReturn(preference);
mUnderTest.displayPreference(screen);
final ArgumentCaptor<Preference.OnPreferenceClickListener> clickCaptor = final ArgumentCaptor<Preference.OnPreferenceClickListener> clickCaptor =
ArgumentCaptor.forClass(Preference.OnPreferenceClickListener.class); ArgumentCaptor.forClass(Preference.OnPreferenceClickListener.class);
@@ -124,22 +121,25 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
@Test @Test
public void getSummary_whenNoneAreSelected() { public void getSummary_whenNoneAreSelected() {
setSelectedAffordanceNames(); setSelectedAffordanceNames();
final Preference preference = invokeDisplayPreference();
assertThat(mUnderTest.getSummary()).isNull(); verify(preference).setSummary(null);
} }
@Test @Test
public void getSummary_whenOneIsSelected() { public void getSummary_whenOneIsSelected() {
setSelectedAffordanceNames("one"); setSelectedAffordanceNames("one");
final Preference preference = invokeDisplayPreference();
assertThat(TextUtils.equals(mUnderTest.getSummary(), "one")).isTrue(); verify(preference).setSummary("one");
} }
@Test @Test
public void getSummary_whenTwoAreSelected() { public void getSummary_whenTwoAreSelected() {
setSelectedAffordanceNames("one", "two"); 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) { private void setEnabled(boolean isWallpaperPickerInstalled, boolean isFeatureEnabled) {
@@ -183,4 +183,12 @@ public class CustomizableLockScreenQuickAffordancesPreferenceControllerTest {
CustomizableLockScreenUtils.SELECTIONS_URI, null, null, null)) CustomizableLockScreenUtils.SELECTIONS_URI, null, null, null))
.thenReturn(cursor); .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;
}
} }