Adding alarms and reminders activity
Adding a settings screen to control the permission SCHEDULE_EXACT_ALARM. Apps can start this by starting a newly introduced API intent REQUEST_SCHEDULE_EXACT_ALARM. Test: make -j RunSettingsRoboTests Manually by UI inspection: Settings -> Apps -> Special App access -> Alarms and Reminders or by running: adb shell am start -a android.settings.REQUEST_SCHEDULE_EXACT_ALARM Bug: 171306433 Bug: 171305516 Change-Id: I1293d38fc50a22b2af46f80ab24f676ed632f964
This commit is contained in:
@@ -25,10 +25,13 @@ import android.app.AppOpsManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
|
||||
import com.google.common.truth.Truth;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -60,6 +63,58 @@ public final class AppStateAppOpsBridgeTest {
|
||||
// should not crash
|
||||
}
|
||||
|
||||
@Test
|
||||
public void permissionState_modeDefault_IsPermissible() {
|
||||
AppStateAppOpsBridge.PermissionState permissionState =
|
||||
new AppStateAppOpsBridge.PermissionState("pkg1", UserHandle.of(123));
|
||||
permissionState.appOpMode = AppOpsManager.MODE_DEFAULT;
|
||||
|
||||
permissionState.staticPermissionGranted = true;
|
||||
Truth.assertThat(permissionState.isPermissible()).isTrue();
|
||||
|
||||
permissionState.staticPermissionGranted = false;
|
||||
Truth.assertThat(permissionState.isPermissible()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void permissionState_modeErrored_IsPermissible() {
|
||||
AppStateAppOpsBridge.PermissionState permissionState =
|
||||
new AppStateAppOpsBridge.PermissionState("pkg1", UserHandle.of(123));
|
||||
permissionState.appOpMode = AppOpsManager.MODE_ERRORED;
|
||||
|
||||
permissionState.staticPermissionGranted = true;
|
||||
Truth.assertThat(permissionState.isPermissible()).isFalse();
|
||||
|
||||
permissionState.staticPermissionGranted = false;
|
||||
Truth.assertThat(permissionState.isPermissible()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void permissionState_modeAllowed_IsPermissible() {
|
||||
AppStateAppOpsBridge.PermissionState permissionState =
|
||||
new AppStateAppOpsBridge.PermissionState("pkg1", UserHandle.of(123));
|
||||
permissionState.appOpMode = AppOpsManager.MODE_ALLOWED;
|
||||
|
||||
permissionState.staticPermissionGranted = true;
|
||||
Truth.assertThat(permissionState.isPermissible()).isTrue();
|
||||
|
||||
permissionState.staticPermissionGranted = false;
|
||||
Truth.assertThat(permissionState.isPermissible()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void permissionState_modeIgnored_IsPermissible() {
|
||||
AppStateAppOpsBridge.PermissionState permissionState =
|
||||
new AppStateAppOpsBridge.PermissionState("pkg1", UserHandle.of(123));
|
||||
permissionState.appOpMode = AppOpsManager.MODE_IGNORED;
|
||||
|
||||
permissionState.staticPermissionGranted = true;
|
||||
Truth.assertThat(permissionState.isPermissible()).isFalse();
|
||||
|
||||
permissionState.staticPermissionGranted = false;
|
||||
Truth.assertThat(permissionState.isPermissible()).isFalse();
|
||||
}
|
||||
|
||||
private class TestAppStateAppOpsBridge extends AppStateAppOpsBridge {
|
||||
private TestAppStateAppOpsBridge() {
|
||||
super(mContext, null, null, AppOpsManager.OP_SYSTEM_ALERT_WINDOW,
|
||||
|
||||
Reference in New Issue
Block a user