1 package com.android.nfc;
2 
3 import android.app.KeyguardManager;
4 import android.content.Context;
5 import android.os.PowerManager;
6 
7 /**
8  * Helper class for determining the current screen state for NFC activities.
9  */
10 class ScreenStateHelper {
11 
12     static final int SCREEN_STATE_UNKNOWN = 0x00;
13     static final int SCREEN_STATE_OFF_UNLOCKED = 0x01;
14     static final int SCREEN_STATE_OFF_LOCKED = 0x02;
15     static final int SCREEN_STATE_ON_LOCKED = 0x04;
16     static final int SCREEN_STATE_ON_UNLOCKED = 0x08;
17 
18     //Polling mask
19     static final int SCREEN_POLLING_TAG_MASK = 0x10;
20     static final int SCREEN_POLLING_P2P_MASK = 0x20;
21     static final int SCREEN_POLLING_READER_MASK = 0x40;
22 
23     private final PowerManager mPowerManager;
24     private final KeyguardManager mKeyguardManager;
25 
ScreenStateHelper(Context context)26     ScreenStateHelper(Context context) {
27         mKeyguardManager = (KeyguardManager)
28                 context.getSystemService(Context.KEYGUARD_SERVICE);
29         mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
30     }
31 
checkScreenState()32     int checkScreenState() {
33         //TODO: fix deprecated api
34         if (!mPowerManager.isScreenOn()) {
35             if(mKeyguardManager.isKeyguardLocked()) {
36                 return SCREEN_STATE_OFF_LOCKED;
37             } else {
38                 return SCREEN_STATE_OFF_UNLOCKED;
39             }
40         } else if (mKeyguardManager.isKeyguardLocked()) {
41             return SCREEN_STATE_ON_LOCKED;
42         } else {
43             return SCREEN_STATE_ON_UNLOCKED;
44         }
45     }
46 
47     /**
48      * For debugging only - no i18n
49      */
screenStateToString(int screenState)50     static String screenStateToString(int screenState) {
51         switch (screenState) {
52             case SCREEN_STATE_OFF_LOCKED:
53                 return "OFF_LOCKED";
54             case SCREEN_STATE_ON_LOCKED:
55                 return "ON_LOCKED";
56             case SCREEN_STATE_ON_UNLOCKED:
57                 return "ON_UNLOCKED";
58             case SCREEN_STATE_OFF_UNLOCKED:
59                 return "OFF_UNLOCKED";
60             default:
61                 return "UNKNOWN";
62         }
63     }
64 }
65