Loading packages/SettingsLib/HelpUtils/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ android_library { srcs: ["src/**/*.java"], resource_dirs: ["res"], libs: [ "androidx.annotation_annotation", ], sdk_version: "system_current", min_sdk_version: "21", } packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java +23 −9 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import androidx.annotation.VisibleForTesting; import com.android.settingslib.widget.R; import java.net.URISyntaxException; Loading @@ -45,7 +47,8 @@ import java.util.Locale; public class HelpUtils { private final static String TAG = HelpUtils.class.getSimpleName(); private static final int MENU_HELP = Menu.FIRST + 100; @VisibleForTesting static final int MENU_HELP = Menu.FIRST + 100; /** * Help URL query parameter key for the preferred language. Loading @@ -69,10 +72,15 @@ public class HelpUtils { private static String sCachedVersionCode = null; /** Static helper that is not instantiable */ private HelpUtils() { } private HelpUtils() { } public static boolean prepareHelpMenuItem(Activity activity, Menu menu, String helpUri, String backupContext) { // menu contains help item, skip it if (menu.findItem(MENU_HELP) != null) { return false; } MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label); helpItem.setIcon(R.drawable.ic_help_actionbar); return prepareHelpMenuItem(activity, helpItem, helpUri, backupContext); Loading @@ -80,6 +88,10 @@ public class HelpUtils { public static boolean prepareHelpMenuItem(Activity activity, Menu menu, int helpUriResource, String backupContext) { // menu contains help item, skip it if (menu.findItem(MENU_HELP) != null) { return false; } MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label); helpItem.setIcon(R.drawable.ic_help_actionbar); return prepareHelpMenuItem(activity, helpItem, activity.getString(helpUriResource), Loading @@ -94,7 +106,8 @@ public class HelpUtils { * * @return returns whether the help menu item has been made visible. */ public static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem, @VisibleForTesting static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem, String helpUriString, String backupContext) { if (Global.getInt(activity.getContentResolver(), Global.DEVICE_PROVISIONED, 0) == 0) { return false; Loading Loading @@ -212,6 +225,7 @@ public class HelpUtils { /** * Adds two query parameters into the Uri, namely the language code and the version code * of the app's package as gotten via the context. * * @return the uri with added query parameters */ private static Uri uriWithAddedParameters(Context context, Uri baseUri) { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,15 @@ package com.android.settingslib; import static com.android.settingslib.HelpUtils.MENU_HELP; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -35,6 +39,7 @@ import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.provider.Settings; import android.view.Menu; import android.view.MenuItem; import org.junit.Before; Loading Loading @@ -171,4 +176,34 @@ public class HelpUtilsTest { verify(item).setVisible(true); verify(item).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } @Test public void prepareHelpMenuItem_noItem_addItem() { final Menu item = mock(Menu.class); when(item.findItem(MENU_HELP)).thenReturn(null); when(item.add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn( mock(MenuItem.class)); HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url"); HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url"); verify(item, times(2)).add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label); } @Test public void prepareHelpMenuItem_hasItem_notAddItem() { final Menu item = mock(Menu.class); when(item.findItem(MENU_HELP)).thenReturn(mock(MenuItem.class)); when(item.add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn( mock(MenuItem.class)); HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url"); HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url"); verify(item, never()).add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label); } } Loading
packages/SettingsLib/HelpUtils/Android.bp +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ android_library { srcs: ["src/**/*.java"], resource_dirs: ["res"], libs: [ "androidx.annotation_annotation", ], sdk_version: "system_current", min_sdk_version: "21", }
packages/SettingsLib/HelpUtils/src/com/android/settingslib/HelpUtils.java +23 −9 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import androidx.annotation.VisibleForTesting; import com.android.settingslib.widget.R; import java.net.URISyntaxException; Loading @@ -45,7 +47,8 @@ import java.util.Locale; public class HelpUtils { private final static String TAG = HelpUtils.class.getSimpleName(); private static final int MENU_HELP = Menu.FIRST + 100; @VisibleForTesting static final int MENU_HELP = Menu.FIRST + 100; /** * Help URL query parameter key for the preferred language. Loading @@ -69,10 +72,15 @@ public class HelpUtils { private static String sCachedVersionCode = null; /** Static helper that is not instantiable */ private HelpUtils() { } private HelpUtils() { } public static boolean prepareHelpMenuItem(Activity activity, Menu menu, String helpUri, String backupContext) { // menu contains help item, skip it if (menu.findItem(MENU_HELP) != null) { return false; } MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label); helpItem.setIcon(R.drawable.ic_help_actionbar); return prepareHelpMenuItem(activity, helpItem, helpUri, backupContext); Loading @@ -80,6 +88,10 @@ public class HelpUtils { public static boolean prepareHelpMenuItem(Activity activity, Menu menu, int helpUriResource, String backupContext) { // menu contains help item, skip it if (menu.findItem(MENU_HELP) != null) { return false; } MenuItem helpItem = menu.add(0, MENU_HELP, 0, R.string.help_feedback_label); helpItem.setIcon(R.drawable.ic_help_actionbar); return prepareHelpMenuItem(activity, helpItem, activity.getString(helpUriResource), Loading @@ -94,7 +106,8 @@ public class HelpUtils { * * @return returns whether the help menu item has been made visible. */ public static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem, @VisibleForTesting static boolean prepareHelpMenuItem(final Activity activity, MenuItem helpMenuItem, String helpUriString, String backupContext) { if (Global.getInt(activity.getContentResolver(), Global.DEVICE_PROVISIONED, 0) == 0) { return false; Loading Loading @@ -212,6 +225,7 @@ public class HelpUtils { /** * Adds two query parameters into the Uri, namely the language code and the version code * of the app's package as gotten via the context. * * @return the uri with added query parameters */ private static Uri uriWithAddedParameters(Context context, Uri baseUri) { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/HelpUtilsTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,15 @@ package com.android.settingslib; import static com.android.settingslib.HelpUtils.MENU_HELP; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -35,6 +39,7 @@ import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.provider.Settings; import android.view.Menu; import android.view.MenuItem; import org.junit.Before; Loading Loading @@ -171,4 +176,34 @@ public class HelpUtilsTest { verify(item).setVisible(true); verify(item).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); } @Test public void prepareHelpMenuItem_noItem_addItem() { final Menu item = mock(Menu.class); when(item.findItem(MENU_HELP)).thenReturn(null); when(item.add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn( mock(MenuItem.class)); HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url"); HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url"); verify(item, times(2)).add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label); } @Test public void prepareHelpMenuItem_hasItem_notAddItem() { final Menu item = mock(Menu.class); when(item.findItem(MENU_HELP)).thenReturn(mock(MenuItem.class)); when(item.add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label)).thenReturn( mock(MenuItem.class)); HelpUtils.prepareHelpMenuItem(mActivity, item, TEST_HELP_URL, "backup_url"); HelpUtils.prepareHelpMenuItem(mActivity, item, 0, "backup_url"); verify(item, never()).add(0, MENU_HELP, 0, com.android.settingslib.widget.R.string.help_feedback_label); } }