[2.15.0_hotfix] 修正状态栏GPS图标由于权限授予回调不正确导致显示异常
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user