Loading src/com/android/settings/applications/specialaccess/notificationaccess/TypeFilterPreferenceController.java +21 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.android.settings.applications.specialaccess.notificationaccess; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ALERTING; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_CONVERSATIONS; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ONGOING; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_SILENT; import android.content.ComponentName; import android.content.Context; import android.content.pm.ServiceInfo; Loading Loading @@ -129,15 +134,26 @@ public abstract class TypeFilterPreferenceController extends BasePreferenceContr int types = 0; String[] typeStrings = typeList.split(XML_SEPARATOR); for (int i = 0; i < typeStrings.length; i++) { if (TextUtils.isEmpty(typeStrings[i])) { final String typeString = typeStrings[i]; if (TextUtils.isEmpty(typeString)) { continue; } if (typeString.equalsIgnoreCase("ONGOING")) { types |= FLAG_FILTER_TYPE_ONGOING; } else if (typeString.equalsIgnoreCase("CONVERSATIONS")) { types |= FLAG_FILTER_TYPE_CONVERSATIONS; } else if (typeString.equalsIgnoreCase("SILENT")) { types |= FLAG_FILTER_TYPE_SILENT; } else if (typeString.equalsIgnoreCase("ALERTING")) { types |= FLAG_FILTER_TYPE_ALERTING; } else { try { types |= Integer.parseInt(typeStrings[i]); types |= Integer.parseInt(typeString); } catch (NumberFormatException e) { // skip } } } if (hasFlag(types, getType())) { disableRequestedByApp = true; } Loading tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/TypeFilterPreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public class TypeFilterPreferenceControllerTest { public void updateState_enabled_metaData_disableFilter_notThisField() { mSi.metaData = new Bundle(); mSi.metaData.putCharSequence(NotificationListenerService.META_DATA_DISABLED_FILTER_TYPES, "1,2"); "1,alerting"); when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true); when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter()); CheckBoxPreference pref = new CheckBoxPreference(mContext); Loading @@ -165,7 +165,7 @@ public class TypeFilterPreferenceControllerTest { public void updateState_enabled_metaData_disableFilter_thisField_stateIsChecked() { mSi.metaData = new Bundle(); mSi.metaData.putCharSequence(NotificationListenerService.META_DATA_DISABLED_FILTER_TYPES, "1,2,32"); "conversations,2,32"); when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true); when(mNm.getListenerFilter(mCn, 0)).thenReturn( new NotificationListenerFilter(32, new ArraySet<>())); Loading Loading
src/com/android/settings/applications/specialaccess/notificationaccess/TypeFilterPreferenceController.java +21 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.android.settings.applications.specialaccess.notificationaccess; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ALERTING; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_CONVERSATIONS; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ONGOING; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_SILENT; import android.content.ComponentName; import android.content.Context; import android.content.pm.ServiceInfo; Loading Loading @@ -129,15 +134,26 @@ public abstract class TypeFilterPreferenceController extends BasePreferenceContr int types = 0; String[] typeStrings = typeList.split(XML_SEPARATOR); for (int i = 0; i < typeStrings.length; i++) { if (TextUtils.isEmpty(typeStrings[i])) { final String typeString = typeStrings[i]; if (TextUtils.isEmpty(typeString)) { continue; } if (typeString.equalsIgnoreCase("ONGOING")) { types |= FLAG_FILTER_TYPE_ONGOING; } else if (typeString.equalsIgnoreCase("CONVERSATIONS")) { types |= FLAG_FILTER_TYPE_CONVERSATIONS; } else if (typeString.equalsIgnoreCase("SILENT")) { types |= FLAG_FILTER_TYPE_SILENT; } else if (typeString.equalsIgnoreCase("ALERTING")) { types |= FLAG_FILTER_TYPE_ALERTING; } else { try { types |= Integer.parseInt(typeStrings[i]); types |= Integer.parseInt(typeString); } catch (NumberFormatException e) { // skip } } } if (hasFlag(types, getType())) { disableRequestedByApp = true; } Loading
tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/TypeFilterPreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public class TypeFilterPreferenceControllerTest { public void updateState_enabled_metaData_disableFilter_notThisField() { mSi.metaData = new Bundle(); mSi.metaData.putCharSequence(NotificationListenerService.META_DATA_DISABLED_FILTER_TYPES, "1,2"); "1,alerting"); when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true); when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter()); CheckBoxPreference pref = new CheckBoxPreference(mContext); Loading @@ -165,7 +165,7 @@ public class TypeFilterPreferenceControllerTest { public void updateState_enabled_metaData_disableFilter_thisField_stateIsChecked() { mSi.metaData = new Bundle(); mSi.metaData.putCharSequence(NotificationListenerService.META_DATA_DISABLED_FILTER_TYPES, "1,2,32"); "conversations,2,32"); when(mNm.isNotificationListenerAccessGranted(mCn)).thenReturn(true); when(mNm.getListenerFilter(mCn, 0)).thenReturn( new NotificationListenerFilter(32, new ArraySet<>())); Loading