Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e02796e authored by Mao Jinlong's avatar Mao Jinlong Committed by Michael Bestas
Browse files

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
parent 5771a338
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+24 −0
Original line number Diff line number Diff line
@@ -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.