Skip to content

Commit 976292f

Browse files
committed
v6.10: Fixed a problem opening multiple settings sheets from the desktop. Fixed an error of auto determining the device phone number
1 parent 51641c5 commit 976292f

File tree

6 files changed

+30
-7
lines changed

6 files changed

+30
-7
lines changed

app/build.gradle

+2-5
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,9 @@ android {
3434
defaultConfig {
3535
applicationId "com.hmdm.launcher"
3636
minSdkVersion 16
37-
// To change to 30, file access should be updated: https://developer.android.com/training/data-storage/manage-all-files
38-
// To avoid extra step during initial setup, let's keep the target SDK version as 29 as long as possible
39-
//noinspection ExpiredTargetSdkVersion
4037
targetSdkVersion 34
41-
versionCode 15090
42-
versionName "6.09"
38+
versionCode 15100
39+
versionName "6.10"
4340
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
4441
dataBinding {
4542
enabled = true

app/src/main/AndroidManifest.xml

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
tools:ignore="ScopedStorage" />
3131
<uses-permission android:name="android.permission.INTERNET"/>
3232
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
33+
<uses-permission android:name="android.permission.READ_SMS"/>
34+
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
3335
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
3436
tools:ignore="ProtectedPermissions"/>
3537
<uses-permission android:name="android.permission.GET_TASKS"/>
@@ -102,6 +104,8 @@
102104
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA" />
103105

104106
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
107+
<uses-feature
108+
android:name="android.hardware.telephony" android:required="false" />
105109

106110
<application
107111
android:icon="@mipmap/ic_launcher"

app/src/main/java/com/hmdm/launcher/ui/BaseAppListAdapter.java

+2
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,8 @@ protected void chooseApp(AppInfo appInfo) {
329329
if (appInfo.intent != null) {
330330
try {
331331
Intent i = new Intent(appInfo.intent);
332+
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
333+
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
332334
parentActivity.startActivity(i);
333335
} catch (Exception e) {
334336
Toast.makeText(parentActivity, parentActivity.getString(R.string.activity_not_found, appInfo.intent), Toast.LENGTH_LONG).show();

app/src/main/java/com/hmdm/launcher/util/DeviceInfoProvider.java

+2
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ public static String getPhoneNumber(Context context) {
259259
}
260260
return tMgr.getLine1Number();
261261
} catch (Exception e) {
262+
e.printStackTrace();
262263
return null;
263264
}
264265
}
@@ -309,6 +310,7 @@ public static String getImsi(Context context, int slot) {
309310
@SuppressLint( { "MissingPermission" } )
310311
public static String getPhoneNumber(Context context, int slot) {
311312
try {
313+
Utils.autoGrantPhonePermission(context);
312314
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
313315
if (slot == 0) {
314316
return getPhoneNumber(context);

app/src/main/java/com/hmdm/launcher/util/SystemUtils.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public static void autoSetAccessibilityPermission(Context context, String packag
153153

154154
static final int OP_WRITE_SETTINGS = 23;
155155
static final int OP_SYSTEM_ALERT_WINDOW = 24;
156-
static final int APP_OP_GET_USAGE_STATS = 43;
156+
static final int OP_GET_USAGE_STATS = 43;
157157
static final int OP_MANAGE_EXTERNAL_STORAGE = 92;
158158

159159
@TargetApi(Build.VERSION_CODES.KITKAT)
@@ -163,7 +163,7 @@ public static boolean autoSetOverlayPermission(Context context, String packageNa
163163

164164
@TargetApi(Build.VERSION_CODES.KITKAT)
165165
public static boolean autoSetUsageStatsPermission(Context context, String packageName) {
166-
return autoSetPermission(context, packageName, APP_OP_GET_USAGE_STATS, "Usage history");
166+
return autoSetPermission(context, packageName, OP_GET_USAGE_STATS, "Usage history");
167167
}
168168

169169
@TargetApi(Build.VERSION_CODES.KITKAT)

app/src/main/java/com/hmdm/launcher/util/Utils.java

+18
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,24 @@ public static boolean autoGrantPhonePermission(Context context) {
9393
return false;
9494
}
9595
}
96+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
97+
if (devicePolicyManager.getPermissionGrantState(adminComponentName,
98+
context.getPackageName(), Manifest.permission.READ_PHONE_NUMBERS) != DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED) {
99+
boolean success = devicePolicyManager.setPermissionGrantState(adminComponentName,
100+
context.getPackageName(), Manifest.permission.READ_PHONE_NUMBERS, DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
101+
if (!success) {
102+
return false;
103+
}
104+
}
105+
if (devicePolicyManager.getPermissionGrantState(adminComponentName,
106+
context.getPackageName(), Manifest.permission.READ_SMS) != DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED) {
107+
boolean success = devicePolicyManager.setPermissionGrantState(adminComponentName,
108+
context.getPackageName(), Manifest.permission.READ_SMS, DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED);
109+
if (!success) {
110+
return false;
111+
}
112+
}
113+
}
96114
} catch (NoSuchMethodError e) {
97115
// This exception is raised on Android 5.1
98116
e.printStackTrace();

0 commit comments

Comments
 (0)