2
2
package com .rnlocktask ;
3
3
4
4
import android .app .Activity ;
5
+ import android .app .ActivityManager ;
5
6
import android .app .admin .DevicePolicyManager ;
6
7
import android .content .ComponentName ;
7
8
import android .content .Context ;
9
+ import android .os .Build ;
8
10
9
11
import com .facebook .react .bridge .Promise ;
10
12
import com .facebook .react .bridge .ReactApplicationContext ;
@@ -22,6 +24,7 @@ public class RNLockTaskModule extends ReactContextBaseJavaModule {
22
24
private static final String LOCKED_TASK = "LOCKED_TASK" ;
23
25
private static final String LOCKED_TASK_AS_OWNER = "LOCKED_TASK_AS_OWNER" ;
24
26
private static final String UNLOCKED_TASK = "UNLOCKED_TASK" ;
27
+ private static final String TAG = "RNLockTaskModule" ;
25
28
26
29
public RNLockTaskModule (ReactApplicationContext reactContext ) {
27
30
super (reactContext );
@@ -32,6 +35,29 @@ public String getName() {
32
35
return "RNLockTask" ;
33
36
}
34
37
38
+ @ ReactMethod
39
+ public void isAppInLockTaskMode (Promise promise ) {
40
+ try {
41
+ Activity mActivity = getCurrentActivity ();
42
+ if (mActivity != null ) {
43
+ ActivityManager activityManager = (ActivityManager ) mActivity .getSystemService (Context .ACTIVITY_SERVICE );
44
+
45
+ // When SDK version is 23
46
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .M ) {
47
+ int lockTaskMode = activityManager .getLockTaskModeState ();
48
+ promise .resolve (lockTaskMode == ActivityManager .LOCK_TASK_MODE_PINNED );
49
+ }
50
+
51
+ //When SDK version <=21 and <23. This API is deprecated in 23.
52
+ else {
53
+ promise .resolve (activityManager .isInLockTaskMode ());
54
+ }
55
+ }
56
+ } catch (Exception e ) {
57
+ promise .reject (e );
58
+ }
59
+ }
60
+
35
61
@ ReactMethod
36
62
public void clearDeviceOwnerApp (Promise promise ) {
37
63
try {
0 commit comments