20
20
import android .app .Fragment ;
21
21
import android .app .FragmentManager ;
22
22
import android .os .Bundle ;
23
+ import android .util .Log ;
23
24
import android .view .Menu ;
24
25
import android .view .MenuItem ;
25
26
38
39
public class PolicyManagementActivity extends DumpableActivity implements
39
40
FragmentManager .OnBackStackChangedListener {
40
41
42
+ private static final String TAG = PolicyManagementActivity .class .getSimpleName ();
43
+
44
+ private static final String CMD_LOCK_TASK_MODE = "lock-task-mode" ;
45
+ private static final String LOCK_MODE_ACTION_START = "start" ;
46
+ private static final String LOCK_MODE_ACTION_STATUS = "status" ;
47
+ private static final String LOCK_MODE_ACTION_STOP = "stop" ;
48
+
49
+ private boolean mLockTaskMode ;
50
+
41
51
@ Override
42
52
public void onCreate (Bundle savedInstanceState ) {
43
53
super .onCreate (savedInstanceState );
@@ -73,6 +83,16 @@ public boolean onMenuItemSelected(int featureId, MenuItem item) {
73
83
return false ;
74
84
}
75
85
86
+ @ Override
87
+ protected void onResume () {
88
+ super .onResume ();
89
+
90
+ String lockModeCommand = getIntent ().getStringExtra (CMD_LOCK_TASK_MODE );
91
+ if (lockModeCommand != null ) {
92
+ setLockTaskMode (lockModeCommand );
93
+ }
94
+ }
95
+
76
96
@ Override
77
97
public void onBackStackChanged () {
78
98
// Show the up button in actionbar if back stack has any entry.
@@ -98,4 +118,65 @@ public void onDestroy() {
98
118
getFragmentManager ().removeOnBackStackChangedListener (this );
99
119
}
100
120
121
+ @ Override
122
+ public void dump (String prefix , FileDescriptor fd , PrintWriter pw , String [] args ) {
123
+ if (args != null && args .length > 0 && args [0 ].equals (CMD_LOCK_TASK_MODE )) {
124
+ String action = args .length == 1 ? LOCK_MODE_ACTION_STATUS : args [1 ];
125
+ switch (action ) {
126
+ case LOCK_MODE_ACTION_START :
127
+ pw .println ("Starting lock-task mode" );
128
+ startLockTaskMode ();
129
+ break ;
130
+ case LOCK_MODE_ACTION_STOP :
131
+ pw .println ("Stopping lock-task mode" );
132
+ stopLockTaskMode ();
133
+ break ;
134
+ case LOCK_MODE_ACTION_STATUS :
135
+ dumpLockModeStatus (pw );
136
+ break ;
137
+ default :
138
+ pw .printf ("Invalid lock-task mode action: %s\n " , action );
139
+ }
140
+ return ;
141
+ }
142
+ pw .print (prefix ); dumpLockModeStatus (pw );
143
+
144
+ super .dump (prefix , fd , pw , args );
145
+ }
146
+
147
+ private void startLockTaskMode () {
148
+ if (mLockTaskMode ) Log .w (TAG , "startLockTaskMode(): mLockTaskMode already true" );
149
+ mLockTaskMode = true ;
150
+
151
+ Log .i (TAG , "startLockTaskMode(): calling Activity.startLockTask()" );
152
+ startLockTask ();
153
+ }
154
+
155
+ private void stopLockTaskMode () {
156
+ if (!mLockTaskMode ) Log .w (TAG , "startLockTaskMode(): mLockTaskMode already false" );
157
+ mLockTaskMode = false ;
158
+
159
+ Log .i (TAG , "stopLockTaskMode(): calling Activity.stopLockTask()" );
160
+ stopLockTask ();
161
+ }
162
+
163
+ private void dumpLockModeStatus (PrintWriter pw ) {
164
+ pw .printf ("lock-task mode: %b\n " , mLockTaskMode );
165
+ }
166
+
167
+ private void setLockTaskMode (String action ) {
168
+ switch (action ) {
169
+ case LOCK_MODE_ACTION_START :
170
+ startLockTaskMode ();
171
+ break ;
172
+ case LOCK_MODE_ACTION_STOP :
173
+ stopLockTaskMode ();
174
+ break ;
175
+ case LOCK_MODE_ACTION_STATUS :
176
+ Log .d (TAG , "lock-task mode status: " + mLockTaskMode );
177
+ break ;
178
+ default :
179
+ Log .e (TAG , "invalid lock-task action: " + action );
180
+ }
181
+ }
101
182
}
0 commit comments