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: I57df2e5887e41f1cb09bf78914f1289488540adf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-03-31 18:52:45 +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.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));
});
}
}

View File

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