157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby/*
257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * Copyright (C) 2012 The Android Open Source Project
357273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby *
457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * Licensed under the Apache License, Version 2.0 (the "License");
557273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * you may not use this file except in compliance with the License.
657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * You may obtain a copy of the License at
757273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby *
857273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby *      http://www.apache.org/licenses/LICENSE-2.0
957273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby *
1057273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * Unless required by applicable law or agreed to in writing, software
1157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * distributed under the License is distributed on an "AS IS" BASIS,
1257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1357273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * See the License for the specific language governing permissions and
1457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * limitations under the License.
1557273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby */
1657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
1757273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hambypackage com.android.cellbroadcastreceiver;
1857273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
1957273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hambyimport android.content.Context;
2057273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hambyimport android.os.PowerManager;
2157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hambyimport android.util.Log;
2257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
2357273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby/**
2457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby * Hold a wakelock that can be acquired in the CellBroadcastAlertService and
25468a41702543cb74189153a79af5b38a344e9960Sanket Padawe * released in the CellBroadcastAlertDialog Activity.
2657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby */
2757273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hambyclass CellBroadcastAlertWakeLock {
2857273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    private static final String TAG = "CellBroadcastAlertWakeLock";
2957273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
3057273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    private static PowerManager.WakeLock sCpuWakeLock;
3157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
3257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    private CellBroadcastAlertWakeLock() {}
3357273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
3457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    static void acquireScreenCpuWakeLock(Context context) {
3557273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        if (sCpuWakeLock != null) {
3657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby            return;
3757273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        }
3857273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
3957273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        sCpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
4057273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby                | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, TAG);
4157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        sCpuWakeLock.acquire();
4257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        Log.d(TAG, "acquired screen + CPU wake lock");
4357273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    }
4457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby
4557273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    static void releaseCpuLock() {
4657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        if (sCpuWakeLock != null) {
4757273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby            sCpuWakeLock.release();
4857273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby            sCpuWakeLock = null;
4957273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby            Log.d(TAG, "released screen + CPU wake lock");
5057273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby        }
5157273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby    }
5257273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby}
53