Loading src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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)); }); } } tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java +17 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); Loading @@ -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) { Loading Loading @@ -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; } } Loading
src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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)); }); } }
tests/robotests/src/com/android/settings/display/CustomizableLockScreenQuickAffordancesPreferenceControllerTest.java +17 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); Loading @@ -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) { Loading Loading @@ -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; } }