mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-08 19:44:09 +08:00
Changed: Add general compatibility fixes for minSdkVerion
21
This commit is contained in:
@@ -48,9 +48,12 @@ public class AndroidUtils {
|
||||
!filesDir.equals("/data/data/" + context.getPackageName() + "/files"))
|
||||
AndroidUtils.appendPropertyToMarkdown(markdownString,"FILES_DIR", filesDir);
|
||||
|
||||
Long userId = PackageUtils.getUserIdForPackage(context);
|
||||
if (userId == null || userId != 0)
|
||||
AndroidUtils.appendPropertyToMarkdown(markdownString,"USER_ID", userId);
|
||||
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ) {
|
||||
Long userId = PackageUtils.getUserIdForPackage(context);
|
||||
if (userId == null || userId != 0)
|
||||
AndroidUtils.appendPropertyToMarkdown(markdownString, "USER_ID", userId);
|
||||
}
|
||||
|
||||
AndroidUtils.appendPropertyToMarkdownIfSet(markdownString,"PROFILE_OWNER", PackageUtils.getProfileOwnerPackageNameForUser(context));
|
||||
|
||||
|
@@ -8,11 +8,13 @@ import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.termux.shared.R;
|
||||
import com.termux.shared.data.DataUtils;
|
||||
@@ -507,6 +509,7 @@ public class PackageUtils {
|
||||
* @param context The {@link Context} for the package.
|
||||
* @return Returns the serial number. This will be {@code null} if failed to get it.
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Nullable
|
||||
public static Long getUserIdForPackage(@NonNull Context context) {
|
||||
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
@@ -521,6 +524,7 @@ public class PackageUtils {
|
||||
* @param context The {@link Context} for operations.
|
||||
* @return Returns {@code true} if the current user is the primary user, otherwise [@code false}.
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public static boolean isCurrentUserThePrimaryUser(@NonNull Context context) {
|
||||
Long userId = getUserIdForPackage(context);
|
||||
return userId != null && userId == 0;
|
||||
|
@@ -93,6 +93,7 @@ public class PermissionUtils {
|
||||
* will fail silently and will log an exception.
|
||||
* @return Returns {@code true} if requesting the permission was successful, otherwise {@code false}.
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
public static boolean requestPermission(@NonNull Context context, @NonNull String permission,
|
||||
int requestCode) {
|
||||
return requestPermissions(context, new String[]{permission}, requestCode);
|
||||
@@ -116,6 +117,7 @@ public class PermissionUtils {
|
||||
* will fail silently and will log an exception.
|
||||
* @return Returns {@code true} if requesting the permissions was successful, otherwise {@code false}.
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
public static boolean requestPermissions(@NonNull Context context, @NonNull String[] permissions,
|
||||
int requestCode) {
|
||||
List<String> permissionsNotRequested = getPermissionsNotRequested(context, permissions);
|
||||
@@ -274,12 +276,13 @@ public class PermissionUtils {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
errmsg = context.getString(R.string.msg_storage_permission_not_granted);
|
||||
Logger.logError(LOG_TAG, errmsg);
|
||||
if (showErrorMessage)
|
||||
Logger.showToast(context, errmsg, false);
|
||||
|
||||
if (requestCode < 0)
|
||||
if (requestCode < 0 || Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
|
||||
return false;
|
||||
|
||||
if (requestLegacyStoragePermission || Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
|
||||
@@ -323,6 +326,7 @@ public class PermissionUtils {
|
||||
* will fail silently and will log an exception.
|
||||
* @return Returns {@code true} if requesting the permission was successful, otherwise {@code false}.
|
||||
*/
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
public static boolean requestLegacyStorageExternalPermission(@NonNull Context context, int requestCode) {
|
||||
Logger.logInfo(LOG_TAG, "Requesting legacy external storage permission");
|
||||
return requestPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE, requestCode);
|
||||
@@ -439,7 +443,10 @@ public class PermissionUtils {
|
||||
* @return Returns {@code true} if permission is granted, otherwise {@code false}.
|
||||
*/
|
||||
public static boolean checkDisplayOverOtherAppsPermission(@NonNull Context context) {
|
||||
return Settings.canDrawOverlays(context);
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M)
|
||||
return Settings.canDrawOverlays(context);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Wrapper for {@link #requestDisplayOverOtherAppsPermission(Context, int)}. */
|
||||
@@ -461,6 +468,9 @@ public class PermissionUtils {
|
||||
public static Error requestDisplayOverOtherAppsPermission(@NonNull Context context, int requestCode) {
|
||||
Logger.logInfo(LOG_TAG, "Requesting display over apps permission");
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
|
||||
return null;
|
||||
|
||||
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
||||
intent.setData(Uri.parse("package:" + context.getPackageName()));
|
||||
|
||||
@@ -505,8 +515,11 @@ public class PermissionUtils {
|
||||
* @return Returns {@code true} if permission is granted, otherwise {@code false}.
|
||||
*/
|
||||
public static boolean checkIfBatteryOptimizationsDisabled(@NonNull Context context) {
|
||||
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
return powerManager.isIgnoringBatteryOptimizations(context.getPackageName());
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
return powerManager.isIgnoringBatteryOptimizations(context.getPackageName());
|
||||
} else
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Wrapper for {@link #requestDisableBatteryOptimizations(Context, int)}. */
|
||||
@@ -530,6 +543,9 @@ public class PermissionUtils {
|
||||
public static Error requestDisableBatteryOptimizations(@NonNull Context context, int requestCode) {
|
||||
Logger.logInfo(LOG_TAG, "Requesting to disable battery optimizations");
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
|
||||
return null;
|
||||
|
||||
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
|
||||
intent.setData(Uri.parse("package:" + context.getPackageName()));
|
||||
|
||||
|
Reference in New Issue
Block a user