diff --git a/src/com/android/settings/gestures/OneHandedSettings.java b/src/com/android/settings/gestures/OneHandedSettings.java index e1b9b817f95..aa193865886 100644 --- a/src/com/android/settings/gestures/OneHandedSettings.java +++ b/src/com/android/settings/gestures/OneHandedSettings.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsTest.java index 26517089a66..9633b15bec4 100644 --- a/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsTest.java +++ b/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsTest.java @@ -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