Merge "Fix IllegalStateException to get tile content after device rotate"

This commit is contained in:
Menghan Li
2022-08-09 09:01:52 +00:00
committed by Android (Google) Code Review
2 changed files with 42 additions and 6 deletions

View File

@@ -22,6 +22,7 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.util.Log;
import com.android.internal.accessibility.AccessibilityShortcutController; import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.settings.R; import com.android.settings.R;
@@ -39,6 +40,7 @@ import com.android.settingslib.widget.MainSwitchPreference;
*/ */
public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment { public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
private static final String TAG = "OneHandedSettings";
private static final String ONE_HANDED_SHORTCUT_KEY = "one_handed_shortcuts_preference"; private static final String ONE_HANDED_SHORTCUT_KEY = "one_handed_shortcuts_preference";
private static final String ONE_HANDED_ILLUSTRATION_KEY = "one_handed_header"; private static final String ONE_HANDED_ILLUSTRATION_KEY = "one_handed_header";
protected static final String ONE_HANDED_MAIN_SWITCH_KEY = protected static final String ONE_HANDED_MAIN_SWITCH_KEY =
@@ -131,9 +133,15 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
@Override @Override
protected CharSequence getTileTooltipContent(@QuickSettingsTooltipType int type) { protected CharSequence getTileTooltipContent(@QuickSettingsTooltipType int type) {
final Context context = getContext();
if (context == null) {
Log.w(TAG, "OneHandedSettings not attached to a context.");
return null;
}
return type == QuickSettingsTooltipType.GUIDE_TO_EDIT return type == QuickSettingsTooltipType.GUIDE_TO_EDIT
? getText(R.string.accessibility_one_handed_mode_qs_tooltip_content) ? context.getText(R.string.accessibility_one_handed_mode_qs_tooltip_content)
: getText(R.string.accessibility_one_handed_mode_auto_added_qs_tooltip_content); : context.getText(
R.string.accessibility_one_handed_mode_auto_added_qs_tooltip_content);
} }
@Override @Override
@@ -143,7 +151,7 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
@Override @Override
protected String getLogTag() { protected String getLogTag() {
return null; return TAG;
} }
@Override @Override

View File

@@ -18,10 +18,18 @@ package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -31,16 +39,36 @@ import org.robolectric.util.ReflectionHelpers;
import java.util.List; import java.util.List;
/** Tests for {@link OneHandedSettings}. */
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class OneHandedSettingsTest { public class OneHandedSettingsTest {
private final Context mContext = ApplicationProvider.getApplicationContext();
private OneHandedSettings mSettings; private OneHandedSettings mSettings;
private Context mContext;
@Before @Before
public void setUp() { public void setUp() {
mSettings = new OneHandedSettings(); mSettings = spy(new OneHandedSettings());
mContext = RuntimeEnvironment.application; }
@Test
public void getTileTooltipContent_returnsExpectedValues() {
// Simulate to call getTileTooltipContent after onDetach
assertThat(mSettings.getTileTooltipContent(QuickSettingsTooltipType.GUIDE_TO_EDIT))
.isNull();
// Simulate to call getTileTooltipContent after onAttach
when(mSettings.getContext()).thenReturn(mContext);
assertThat(mSettings.getTileTooltipContent(QuickSettingsTooltipType.GUIDE_TO_EDIT))
.isEqualTo(mContext.getText(
R.string.accessibility_one_handed_mode_qs_tooltip_content));
assertThat(mSettings.getTileTooltipContent(QuickSettingsTooltipType.GUIDE_TO_DIRECT_USE))
.isEqualTo(mContext.getText(
R.string.accessibility_one_handed_mode_auto_added_qs_tooltip_content));
}
@Test
public void getLogTag_returnsCorrectTag() {
assertThat(mSettings.getLogTag()).isEqualTo("OneHandedSettings");
} }
@Test @Test