Proper runtime permission implementation

This commit is contained in:
topjohnwu
2017-08-29 03:08:09 +08:00
parent d8154a5815
commit 439c7118f1
5 changed files with 69 additions and 64 deletions
@@ -1,7 +1,9 @@
package com.topjohnwu.magisk.components;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.WindowManager;
@@ -13,6 +15,8 @@ import com.topjohnwu.magisk.utils.Topic;
public class Activity extends AppCompatActivity {
private Runnable permissionGrantCallback;
public Activity() {
super();
Configuration configuration = new Configuration();
@@ -36,6 +40,20 @@ public class Activity extends AppCompatActivity {
super.onDestroy();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (permissionGrantCallback != null) {
permissionGrantCallback.run();
}
}
permissionGrantCallback = null;
}
public void setPermissionGrantCallback(Runnable callback) {
permissionGrantCallback = callback;
}
@Override
public MagiskManager getApplicationContext() {
return (MagiskManager) super.getApplicationContext();