summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMao Jinlong <jinlmao@codeaurora.org>2018-11-20 16:11:13 +0800
committerMichael Bestas <mkbestas@lineageos.org>2020-12-08 19:39:12 +0200
commita110ac9f05d5a06f3fde322949323886fd2e1f4e (patch)
treeca4eb9114710dbbe5cdcbd2f425c52a6d2aed5b5
parentf086ad892159ce412f667961080b033e38c5725e (diff)
DeskClock: Use POWER_OFF_ALARM permission
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 958263c5c..e658a401b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -31,6 +31,7 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
+ <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 a6a36628f..580e31201 100644
--- a/src/com/android/deskclock/DeskClock.java
+++ b/src/com/android/deskclock/DeskClock.java
@@ -21,6 +21,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.KeyEvent;
@@ -46,6 +47,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;
@@ -128,6 +130,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);
@@ -143,6 +150,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);
@@ -462,6 +471,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.