Home | History | Annotate | Download | only in statusbartest
      1 /*
      2  * Copyright (C) 2008 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.statusbartest;
     18 
     19 import android.app.ListActivity;
     20 import android.app.Notification;
     21 import android.app.NotificationManager;
     22 import android.widget.ArrayAdapter;
     23 import android.view.View;
     24 import android.os.Binder;
     25 import android.os.IBinder;
     26 import android.os.IPowerManager;
     27 import android.widget.ListView;
     28 import android.content.Intent;
     29 import android.app.Notification;
     30 import android.app.NotificationManager;
     31 import android.app.StatusBarManager;
     32 import android.os.RemoteException;
     33 import android.os.Vibrator;
     34 import android.os.Bundle;
     35 import android.os.Handler;
     36 import android.os.LocalPowerManager;
     37 import android.os.ServiceManager;
     38 import android.util.Log;
     39 import android.net.Uri;
     40 import android.os.SystemClock;
     41 import android.widget.RemoteViews;
     42 import android.widget.Toast;
     43 import android.os.PowerManager;
     44 
     45 public class PowerTest extends TestActivity
     46 {
     47     private final static String TAG = "PowerTest";
     48     IPowerManager mPowerManager;
     49     int mPokeState = 0;
     50     IBinder mPokeToken = new Binder();
     51     Handler mHandler = new Handler();
     52     PowerManager mPm;
     53     PowerManager.WakeLock mProx;
     54 
     55     @Override
     56     protected String tag() {
     57         return TAG;
     58     }
     59 
     60     @Override
     61     protected Test[] tests() {
     62         mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
     63         mPm = (PowerManager)getSystemService("power");
     64         mProx = mPm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "PowerTest-prox");
     65 
     66         return mTests;
     67     }
     68     private Test[] mTests = new Test[] {
     69         new Test("Enable proximity") {
     70             public void run() {
     71                 mProx.acquire();
     72             }
     73         },
     74         new Test("Disable proximity") {
     75             public void run() {
     76                 mProx.release();
     77             }
     78         },
     79         new Test("Disable proximity (WAIT_FOR_PROXIMITY_NEGATIVE)") {
     80             public void run() {
     81                 mProx.release(PowerManager.WAIT_FOR_PROXIMITY_NEGATIVE);
     82             }
     83         },
     84         new Test("Cheek events don't poke") {
     85             public void run() {
     86                 mPokeState |= LocalPowerManager.POKE_LOCK_IGNORE_CHEEK_EVENTS;
     87                 try {
     88                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
     89                 } catch (RemoteException e) {
     90                     throw new RuntimeException(e);
     91                 }
     92             }
     93         },
     94 
     95         new Test("Cheek events poke") {
     96             public void run() {
     97                 mPokeState &= ~LocalPowerManager.POKE_LOCK_IGNORE_CHEEK_EVENTS;
     98                 try {
     99                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    100                 } catch (RemoteException e) {
    101                     throw new RuntimeException(e);
    102                 }
    103             }
    104         },
    105         new Test("Touch and Cheek events don't poke") {
    106             public void run() {
    107                 mPokeState |= LocalPowerManager.POKE_LOCK_IGNORE_TOUCH_AND_CHEEK_EVENTS;
    108                 try {
    109                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    110                 } catch (RemoteException e) {
    111                     throw new RuntimeException(e);
    112                 }
    113             }
    114         },
    115         new Test("Touch and Cheek events poke") {
    116             public void run() {
    117                 mPokeState &= ~LocalPowerManager.POKE_LOCK_IGNORE_TOUCH_AND_CHEEK_EVENTS;
    118                 try {
    119                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    120                 } catch (RemoteException e) {
    121                     throw new RuntimeException(e);
    122                 }
    123             }
    124         },
    125         new Test("Short timeout") {
    126             public void run() {
    127                 mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
    128                 mPokeState |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT;
    129                 try {
    130                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    131                 } catch (RemoteException e) {
    132                     throw new RuntimeException(e);
    133                 }
    134             }
    135         },
    136         new Test("Medium timeout") {
    137             public void run() {
    138                 mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
    139                 mPokeState |= LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
    140                 try {
    141                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    142                 } catch (RemoteException e) {
    143                     throw new RuntimeException(e);
    144                 }
    145             }
    146         },
    147         new Test("Normal timeout") {
    148             public void run() {
    149                 mPokeState &= ~LocalPowerManager.POKE_LOCK_TIMEOUT_MASK;
    150                 try {
    151                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    152                 } catch (RemoteException e) {
    153                     throw new RuntimeException(e);
    154                 }
    155             }
    156         },
    157         new Test("Illegal timeout") {
    158             public void run() {
    159                 mPokeState |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT
    160                         | LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
    161                 try {
    162                     mPowerManager.setPokeLock(mPokeState, mPokeToken, TAG);
    163                 } catch (RemoteException e) {
    164                     throw new RuntimeException(e);
    165                 }
    166             }
    167         },
    168     };
    169 }
    170