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.os.Bundle;
import android.os.UserHandle;
import android.util.Log;
import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.settings.R;
@@ -39,6 +40,7 @@ import com.android.settingslib.widget.MainSwitchPreference;
*/
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_ILLUSTRATION_KEY = "one_handed_header";
protected static final String ONE_HANDED_MAIN_SWITCH_KEY =
@@ -131,9 +133,15 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
@Override
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
? 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_qs_tooltip_content)
: context.getText(
R.string.accessibility_one_handed_mode_auto_added_qs_tooltip_content);
}
@Override
@@ -143,7 +151,7 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
@Override
protected String getLogTag() {
return null;
return TAG;
}
@Override

View File

@@ -18,10 +18,18 @@ package com.android.settings.gestures;
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.os.SystemProperties;
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.Test;
import org.junit.runner.RunWith;
@@ -31,16 +39,36 @@ import org.robolectric.util.ReflectionHelpers;
import java.util.List;
/** Tests for {@link OneHandedSettings}. */
@RunWith(RobolectricTestRunner.class)
public class OneHandedSettingsTest {
private final Context mContext = ApplicationProvider.getApplicationContext();
private OneHandedSettings mSettings;
private Context mContext;
@Before
public void setUp() {
mSettings = new OneHandedSettings();
mContext = RuntimeEnvironment.application;
mSettings = spy(new OneHandedSettings());
}
@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