[2.15.0_hotfix] 修正状态栏GPS图标由于权限授予回调不正确导致显示异常

This commit is contained in:
renwj
2023-05-18 17:44:33 +08:00
parent 106d12b96a
commit 21bda05fc8

View File

@@ -1,5 +1,7 @@
package com.mogo.eagle.core.utilcode.util;
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
@@ -25,6 +27,7 @@ import java.util.Set;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.mogo.eagle.core.utilcode.constant.PermissionConstants;
@@ -156,7 +159,7 @@ public final class PermissionUtils {
public static void requestAccessFineLocation(final SimpleCallback callback) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) {
if (isGranted(ACCESS_FINE_LOCATION)) {
if (callback != null) {
callback.onGranted();
}
@@ -499,7 +502,10 @@ public final class PermissionUtils {
} else if (type == TYPE_DRAW_OVERLAYS) {
currentRequestCode = TYPE_DRAW_OVERLAYS;
startOverlayPermissionActivity(activity, TYPE_DRAW_OVERLAYS);
} else {
} else if (type == TYPE_ACCESS_FINE_LOCATION) {
currentRequestCode = TYPE_ACCESS_FINE_LOCATION;
ActivityCompat.requestPermissions(activity, new String[] { ACCESS_FINE_LOCATION }, currentRequestCode);
} else {
activity.finish();
Log.e("PermissionUtils", "type is wrong.");
}
@@ -523,8 +529,23 @@ public final class PermissionUtils {
@NonNull String[] permissions,
@NonNull int[] grantResults) {
activity.finish();
if (sInstance != null && sInstance.mPermissionsRequest != null) {
sInstance.onRequestPermissionsResult(activity);
if (requestCode == TYPE_ACCESS_FINE_LOCATION) {
for (int result : grantResults) {
if (result == PackageManager.PERMISSION_GRANTED) {
if (sSimpleCallback4AccessFineLocation != null) {
sSimpleCallback4AccessFineLocation.onGranted();
}
}
if (result == PackageManager.PERMISSION_DENIED) {
if (sSimpleCallback4AccessFineLocation != null) {
sSimpleCallback4AccessFineLocation.onDenied();
}
}
}
} else {
if (sInstance != null && sInstance.mPermissionsRequest != null) {
sInstance.onRequestPermissionsResult(activity);
}
}
}
@@ -570,7 +591,7 @@ public final class PermissionUtils {
if (sSimpleCallback4AccessFineLocation == null) {
return;
}
if (isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) {
if (isGranted(ACCESS_FINE_LOCATION)) {
sSimpleCallback4AccessFineLocation.onGranted();
} else {
sSimpleCallback4AccessFineLocation.onDenied();