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:
@@ -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));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user