• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 = context.getSystemService(KeyguardManager.class);
28         mPowerManager = context.getSystemService(PowerManager.class);
29     }
30 
checkScreenState()31     int checkScreenState() {
32         if (!mPowerManager.isInteractive()) {
33             if (mKeyguardManager.isKeyguardLocked()) {
34                 return SCREEN_STATE_OFF_LOCKED;
35             } else {
36                 return SCREEN_STATE_OFF_UNLOCKED;
37             }
38         } else if (mKeyguardManager.isKeyguardLocked()) {
39             return SCREEN_STATE_ON_LOCKED;
40         } else {
41             return SCREEN_STATE_ON_UNLOCKED;
42         }
43     }
44 
45     /**
46      * For debugging only - no i18n
47      */
screenStateToString(int screenState)48     static String screenStateToString(int screenState) {
49         switch (screenState) {
50             case SCREEN_STATE_OFF_LOCKED:
51                 return "OFF_LOCKED";
52             case SCREEN_STATE_ON_LOCKED:
53                 return "ON_LOCKED";
54             case SCREEN_STATE_ON_UNLOCKED:
55                 return "ON_UNLOCKED";
56             case SCREEN_STATE_OFF_UNLOCKED:
57                 return "OFF_UNLOCKED";
58             default:
59                 return "UNKNOWN";
60         }
61     }
62 
screenStateToProtoEnum(int screenState)63     static int screenStateToProtoEnum(int screenState) {
64         switch (screenState) {
65             case SCREEN_STATE_OFF_LOCKED:
66                 return NfcServiceDumpProto.SCREEN_STATE_OFF_LOCKED;
67             case SCREEN_STATE_ON_LOCKED:
68                 return NfcServiceDumpProto.SCREEN_STATE_ON_LOCKED;
69             case SCREEN_STATE_ON_UNLOCKED:
70                 return NfcServiceDumpProto.SCREEN_STATE_ON_UNLOCKED;
71             case SCREEN_STATE_OFF_UNLOCKED:
72                 return NfcServiceDumpProto.SCREEN_STATE_OFF_UNLOCKED;
73             default:
74                 return NfcServiceDumpProto.SCREEN_STATE_UNKNOWN;
75         }
76     }
77 }
78