Loading res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10790,6 +10790,9 @@ <!-- Subtext of system default app for current setting [CHAR LIMIT=NONE] --> <string name="system_default_app_subtext">System default</string> <!-- Summary of a default app when there is no app set [CHAR LIMIT=60] --> <string name="default_app_none">None</string> <!-- Developer settings: text for the bug report handler selection toast shown if an invalid bug report handler was chosen. [CHAR LIMIT=NONE] --> <string name="select_invalid_bug_report_handler_toast_text">This choice is no longer valid. Try again.</string> src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java +15 −16 Original line number Diff line number Diff line Loading @@ -85,16 +85,24 @@ public class StylusDevicesController extends AbstractPreferenceController implem } @Nullable private Preference createDefaultNotesPreference() { private Preference createOrUpdateDefaultNotesPreference(@Nullable Preference preference) { RoleManager rm = mContext.getSystemService(RoleManager.class); if (rm == null) { if (rm == null || !rm.isRoleAvailable(RoleManager.ROLE_NOTES)) { return null; } Preference pref = preference == null ? new Preference(mContext) : preference; pref.setKey(KEY_DEFAULT_NOTES); pref.setTitle(mContext.getString(R.string.stylus_default_notes_app)); pref.setIcon(R.drawable.ic_article); pref.setOnPreferenceClickListener(this); pref.setEnabled(true); List<String> roleHolders = rm.getRoleHoldersAsUser(RoleManager.ROLE_NOTES, mContext.getUser()); if (roleHolders.isEmpty()) { return null; pref.setSummary(R.string.default_app_none); return pref; } String packageName = roleHolders.get(0); Loading @@ -107,13 +115,6 @@ public class StylusDevicesController extends AbstractPreferenceController implem } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Notes role package not found."); } Preference pref = new Preference(mContext); pref.setKey(KEY_DEFAULT_NOTES); pref.setTitle(mContext.getString(R.string.stylus_default_notes_app)); pref.setIcon(R.drawable.ic_article); pref.setOnPreferenceClickListener(this); pref.setEnabled(true); pref.setSummary(appName); return pref; } Loading Loading @@ -187,13 +188,11 @@ public class StylusDevicesController extends AbstractPreferenceController implem private void refresh() { if (!isAvailable()) return; Preference notesPref = mPreferencesContainer.findPreference(KEY_DEFAULT_NOTES); if (notesPref == null) { notesPref = createDefaultNotesPreference(); if (notesPref != null) { Preference currNotesPref = mPreferencesContainer.findPreference(KEY_DEFAULT_NOTES); Preference notesPref = createOrUpdateDefaultNotesPreference(currNotesPref); if (currNotesPref == null && notesPref != null) { mPreferencesContainer.addPreference(notesPref); } } Preference handwritingPref = mPreferencesContainer.findPreference(KEY_HANDWRITING); // TODO(b/255732419): add proper InputMethodInfo conditional to show or hide Loading tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java +17 −6 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public class StylusDevicesControllerTest { when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.singletonList(NOTES_PACKAGE_NAME)); when(mRm.isRoleAvailable(RoleManager.ROLE_NOTES)).thenReturn(true); when(mContext.getPackageManager()).thenReturn(mPm); when(mPm.getApplicationInfo(eq(NOTES_PACKAGE_NAME), any(PackageManager.ApplicationInfoFlags.class))).thenReturn(new ApplicationInfo()); Loading Loading @@ -235,16 +236,26 @@ public class StylusDevicesControllerTest { } @Test public void defaultNotesPreference_noRoleHolder_hidesNotesRoleApp() { public void defaultNotesPreference_roleHolderChanges_updatesPreference() { showScreen(mController); Preference defaultNotesPref = mPreferenceContainer.getPreference(0); when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.emptyList()); showScreen(mController); for (int i = 0; i < mPreferenceContainer.getPreferenceCount(); i++) { Preference pref = mPreferenceContainer.getPreference(i); assertThat(pref.getTitle().toString()).isNotEqualTo( mContext.getString(R.string.stylus_default_notes_app)); assertThat(defaultNotesPref.getSummary().toString()).isEqualTo( mContext.getString(R.string.default_app_none)); } @Test public void defaultNotesPreference_noRoleHolder_showNoneInSummary() { when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.emptyList()); showScreen(mController); Preference defaultNotesPref = mPreferenceContainer.getPreference(0); assertThat(defaultNotesPref.getSummary().toString()).isEqualTo( mContext.getString(R.string.default_app_none)); } @Test Loading Loading
res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10790,6 +10790,9 @@ <!-- Subtext of system default app for current setting [CHAR LIMIT=NONE] --> <string name="system_default_app_subtext">System default</string> <!-- Summary of a default app when there is no app set [CHAR LIMIT=60] --> <string name="default_app_none">None</string> <!-- Developer settings: text for the bug report handler selection toast shown if an invalid bug report handler was chosen. [CHAR LIMIT=NONE] --> <string name="select_invalid_bug_report_handler_toast_text">This choice is no longer valid. Try again.</string>
src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java +15 −16 Original line number Diff line number Diff line Loading @@ -85,16 +85,24 @@ public class StylusDevicesController extends AbstractPreferenceController implem } @Nullable private Preference createDefaultNotesPreference() { private Preference createOrUpdateDefaultNotesPreference(@Nullable Preference preference) { RoleManager rm = mContext.getSystemService(RoleManager.class); if (rm == null) { if (rm == null || !rm.isRoleAvailable(RoleManager.ROLE_NOTES)) { return null; } Preference pref = preference == null ? new Preference(mContext) : preference; pref.setKey(KEY_DEFAULT_NOTES); pref.setTitle(mContext.getString(R.string.stylus_default_notes_app)); pref.setIcon(R.drawable.ic_article); pref.setOnPreferenceClickListener(this); pref.setEnabled(true); List<String> roleHolders = rm.getRoleHoldersAsUser(RoleManager.ROLE_NOTES, mContext.getUser()); if (roleHolders.isEmpty()) { return null; pref.setSummary(R.string.default_app_none); return pref; } String packageName = roleHolders.get(0); Loading @@ -107,13 +115,6 @@ public class StylusDevicesController extends AbstractPreferenceController implem } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Notes role package not found."); } Preference pref = new Preference(mContext); pref.setKey(KEY_DEFAULT_NOTES); pref.setTitle(mContext.getString(R.string.stylus_default_notes_app)); pref.setIcon(R.drawable.ic_article); pref.setOnPreferenceClickListener(this); pref.setEnabled(true); pref.setSummary(appName); return pref; } Loading Loading @@ -187,13 +188,11 @@ public class StylusDevicesController extends AbstractPreferenceController implem private void refresh() { if (!isAvailable()) return; Preference notesPref = mPreferencesContainer.findPreference(KEY_DEFAULT_NOTES); if (notesPref == null) { notesPref = createDefaultNotesPreference(); if (notesPref != null) { Preference currNotesPref = mPreferencesContainer.findPreference(KEY_DEFAULT_NOTES); Preference notesPref = createOrUpdateDefaultNotesPreference(currNotesPref); if (currNotesPref == null && notesPref != null) { mPreferencesContainer.addPreference(notesPref); } } Preference handwritingPref = mPreferencesContainer.findPreference(KEY_HANDWRITING); // TODO(b/255732419): add proper InputMethodInfo conditional to show or hide Loading
tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java +17 −6 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public class StylusDevicesControllerTest { when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.singletonList(NOTES_PACKAGE_NAME)); when(mRm.isRoleAvailable(RoleManager.ROLE_NOTES)).thenReturn(true); when(mContext.getPackageManager()).thenReturn(mPm); when(mPm.getApplicationInfo(eq(NOTES_PACKAGE_NAME), any(PackageManager.ApplicationInfoFlags.class))).thenReturn(new ApplicationInfo()); Loading Loading @@ -235,16 +236,26 @@ public class StylusDevicesControllerTest { } @Test public void defaultNotesPreference_noRoleHolder_hidesNotesRoleApp() { public void defaultNotesPreference_roleHolderChanges_updatesPreference() { showScreen(mController); Preference defaultNotesPref = mPreferenceContainer.getPreference(0); when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.emptyList()); showScreen(mController); for (int i = 0; i < mPreferenceContainer.getPreferenceCount(); i++) { Preference pref = mPreferenceContainer.getPreference(i); assertThat(pref.getTitle().toString()).isNotEqualTo( mContext.getString(R.string.stylus_default_notes_app)); assertThat(defaultNotesPref.getSummary().toString()).isEqualTo( mContext.getString(R.string.default_app_none)); } @Test public void defaultNotesPreference_noRoleHolder_showNoneInSummary() { when(mRm.getRoleHoldersAsUser(eq(RoleManager.ROLE_NOTES), any(UserHandle.class))) .thenReturn(Collections.emptyList()); showScreen(mController); Preference defaultNotesPref = mPreferenceContainer.getPreference(0); assertThat(defaultNotesPref.getSummary().toString()).isEqualTo( mContext.getString(R.string.default_app_none)); } @Test Loading