Merge "Update Bridged app link when NLS access changes" into tm-qpr-dev am: dbaa419226 am: 80e1ca7c54

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19624197

Change-Id: I80cbd2726cf3609a1f266e46b728b1d632ea8abe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Julia Reynolds
2022-08-17 08:35:03 +00:00
committed by Automerger Merge Worker
3 changed files with 31 additions and 12 deletions

View File

@@ -18,10 +18,11 @@ import android.content.Context;
import android.os.Build; import android.os.Build;
import android.service.notification.NotificationListenerFilter; import android.service.notification.NotificationListenerFilter;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.NotificationBackend; import com.android.settings.notification.NotificationBackend;
public class BridgedAppsLinkPreferenceController extends BasePreferenceController { public class BridgedAppsLinkPreferenceController extends BasePreferenceController {
private ComponentName mCn; private ComponentName mCn;
@@ -61,7 +62,6 @@ public class BridgedAppsLinkPreferenceController extends BasePreferenceControlle
if (mTargetSdk > Build.VERSION_CODES.S) { if (mTargetSdk > Build.VERSION_CODES.S) {
return AVAILABLE; return AVAILABLE;
} }
mNlf = mNm.getListenerFilter(mCn, mUserId); mNlf = mNm.getListenerFilter(mCn, mUserId);
if (!mNlf.areAllTypesAllowed() || !mNlf.getDisallowedPackages().isEmpty()) { if (!mNlf.areAllTypesAllowed() || !mNlf.getDisallowedPackages().isEmpty()) {
return AVAILABLE; return AVAILABLE;
@@ -69,4 +69,10 @@ public class BridgedAppsLinkPreferenceController extends BasePreferenceControlle
} }
return DISABLED_DEPENDENT_SETTING; return DISABLED_DEPENDENT_SETTING;
} }
@Override
public void updateState(Preference pref) {
pref.setEnabled(getAvailabilityStatus() == AVAILABLE);
super.updateState(pref);
}
} }

View File

@@ -233,11 +233,7 @@ public class NotificationAccessDetails extends DashboardFragment {
apc.updateState(screen.findPreference(apc.getPreferenceKey())); apc.updateState(screen.findPreference(apc.getPreferenceKey()));
getPreferenceControllers().forEach(controllers -> { getPreferenceControllers().forEach(controllers -> {
controllers.forEach(controller -> { controllers.forEach(controller -> {
if (controller instanceof TypeFilterPreferenceController) { controller.updateState(screen.findPreference(controller.getPreferenceKey()));
TypeFilterPreferenceController tfpc =
(TypeFilterPreferenceController) controller;
tfpc.updateState(screen.findPreference(tfpc.getPreferenceKey()));
}
}); });
}); });
} }
@@ -249,11 +245,7 @@ public class NotificationAccessDetails extends DashboardFragment {
apc.updateState(screen.findPreference(apc.getPreferenceKey())); apc.updateState(screen.findPreference(apc.getPreferenceKey()));
getPreferenceControllers().forEach(controllers -> { getPreferenceControllers().forEach(controllers -> {
controllers.forEach(controller -> { controllers.forEach(controller -> {
if (controller instanceof TypeFilterPreferenceController) { controller.updateState(screen.findPreference(controller.getPreferenceKey()));
TypeFilterPreferenceController tfpc =
(TypeFilterPreferenceController) controller;
tfpc.updateState(screen.findPreference(tfpc.getPreferenceKey()));
}
}); });
}); });
} }

View File

@@ -31,6 +31,7 @@ import android.content.Context;
import android.os.Build; import android.os.Build;
import android.service.notification.NotificationListenerFilter; import android.service.notification.NotificationListenerFilter;
import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -68,6 +69,11 @@ public class BridgedAppsLinkPreferenceControllerTest {
mController.setTargetSdk(Build.VERSION_CODES.CUR_DEVELOPMENT + 1); mController.setTargetSdk(Build.VERSION_CODES.CUR_DEVELOPMENT + 1);
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
// disables field
Preference p = new Preference(mContext);
mController.updateState(p);
assertThat(p.isEnabled()).isFalse();
} }
@Test @Test
@@ -77,6 +83,11 @@ public class BridgedAppsLinkPreferenceControllerTest {
when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter()); when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter());
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING); assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
// disables field
Preference p = new Preference(mContext);
mController.updateState(p);
assertThat(p.isEnabled()).isFalse();
} }
@Test @Test
@@ -88,6 +99,11 @@ public class BridgedAppsLinkPreferenceControllerTest {
when(mNm.getListenerFilter(mCn, 0)).thenReturn(nlf); when(mNm.getListenerFilter(mCn, 0)).thenReturn(nlf);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
// enables field
Preference p = new Preference(mContext);
mController.updateState(p);
assertThat(p.isEnabled()).isTrue();
} }
@Test @Test
@@ -97,5 +113,10 @@ public class BridgedAppsLinkPreferenceControllerTest {
when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter()); when(mNm.getListenerFilter(mCn, 0)).thenReturn(new NotificationListenerFilter());
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
// enables field
Preference p = new Preference(mContext);
mController.updateState(p);
assertThat(p.isEnabled()).isTrue();
} }
} }