summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMao Jinlong <jinlmao@codeaurora.org>2018-11-20 16:11:13 +0800
committermosimchah <mosimchah@gmail.com>2019-11-01 08:19:26 +0100
commit7642047c12799b60896594c6ff0cdbc08829fb17 (patch)
tree6d3ecc680dcfccd2faf6ecc43cd0c108c0f1af8a
parente2c8f1d94c8328f3ff7631991c771cd49cae824c (diff)
DeskClock: Use POWER_OFF_ALARM permissionq10.0-r9rebase
Use POWER_OFF_ALARM permission to send set and cancel power off alarm actions. CRs-fixed: 2282053 Change-Id: I1a7984cb90db289d1bd7377963dbd28aa866eb10
-rw-r--r--AndroidManifest.xml1
-rw-r--r--src/com/android/deskclock/DeskClock.java24
2 files changed, 25 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3255bb7a3..a9e472c56 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -30,6 +30,7 @@
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+ <uses-permission android:name="org.codeaurora.permission.POWER_OFF_ALARM" />
<!-- WRITE_SETTINGS is required to record the upcoming alarm prior to L -->
<uses-permission
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java
index e53fbebb6..15d75b97c 100644
--- a/src/com/android/deskclock/DeskClock.java
+++ b/src/com/android/deskclock/DeskClock.java
@@ -22,6 +22,7 @@ import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.app.Fragment;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import androidx.annotation.StringRes;
@@ -48,6 +49,7 @@ import com.android.deskclock.data.DataModel;
import com.android.deskclock.data.DataModel.SilentSetting;
import com.android.deskclock.data.OnSilentSettingsListener;
import com.android.deskclock.events.Events;
+import com.android.deskclock.LogUtils;
import com.android.deskclock.provider.Alarm;
import com.android.deskclock.uidata.TabListener;
import com.android.deskclock.uidata.UiDataModel;
@@ -127,6 +129,11 @@ public class DeskClock extends BaseActivity
/** {@code true} when a settings change necessitates recreating this activity. */
private boolean mRecreateActivity;
+ private static final String PERMISSION_POWER_OFF_ALARM =
+ "org.codeaurora.permission.POWER_OFF_ALARM";
+
+ private static final int CODE_FOR_ALARM_PERMISSION = 1;
+
@Override
public void onNewIntent(Intent newIntent) {
super.onNewIntent(newIntent);
@@ -142,6 +149,8 @@ public class DeskClock extends BaseActivity
setContentView(R.layout.desk_clock);
mSnackbarAnchor = findViewById(R.id.content);
+ checkPermissions();
+
// Configure the toolbar.
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@@ -461,6 +470,21 @@ public class DeskClock extends BaseActivity
}
}
+ private void checkPermissions() {
+ if (checkSelfPermission(PERMISSION_POWER_OFF_ALARM)
+ != PackageManager.PERMISSION_GRANTED) {
+ requestPermissions(new String[]{PERMISSION_POWER_OFF_ALARM}, CODE_FOR_ALARM_PERMISSION);
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode,
+ String permissions[], int[] grantResults) {
+ if (requestCode == CODE_FOR_ALARM_PERMISSION){
+ LogUtils.i("Power off alarm permission is granted.");
+ }
+ }
+
/**
* Configure the {@link #mFragmentTabPager} and {@link #mTabLayout} to display UiDataModel's
* selected tab.