Commit 0191e4cc authored by feihuaduo's avatar feihuaduo

权限申请回调封装

parent 861325b6
package cn.garymb.ygomobile.base.listener;
/**
* Create By feihua On 2020/9/24
*/
public interface OnPermissionListener {
void onPermission(boolean isOk);
}
...@@ -8,9 +8,11 @@ import android.content.Intent; ...@@ -8,9 +8,11 @@ import android.content.Intent;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Rect; import android.graphics.Rect;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper; import android.os.Looper;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
...@@ -22,20 +24,12 @@ import androidx.appcompat.app.ActionBar; ...@@ -22,20 +24,12 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import java.io.IOException;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.utils.FileLogUtil;
import ocgcore.data.Card; import ocgcore.data.Card;
public class BaseActivity extends AppCompatActivity { public class BaseActivity extends AppCompatActivity {
protected final static int REQUEST_PERMISSIONS = 0x1000 + 1; protected final static int REQUEST_PERMISSIONS = 0x1000 + 1;
private boolean mExitAnim = true;
private boolean mEnterAnim = true;
private Toast mToast;
public static int[] enImgs = new int[]{ public static int[] enImgs = new int[]{
R.drawable.right_top_1, R.drawable.right_top_1,
R.drawable.top_1, R.drawable.top_1,
...@@ -69,11 +63,6 @@ public class BaseActivity extends AppCompatActivity { ...@@ -69,11 +63,6 @@ public class BaseActivity extends AppCompatActivity {
R.id.iv_2, R.id.iv_2,
R.id.iv_1 R.id.iv_1
}; };
protected String[] getPermissions() {
return PERMISSIONS;
}
protected final String[] PERMISSIONS = { protected final String[] PERMISSIONS = {
// Manifest.permission.RECORD_AUDIO, // Manifest.permission.RECORD_AUDIO,
//Manifest.permission.READ_PHONE_STATE, //Manifest.permission.READ_PHONE_STATE,
...@@ -81,6 +70,28 @@ public class BaseActivity extends AppCompatActivity { ...@@ -81,6 +70,28 @@ public class BaseActivity extends AppCompatActivity {
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
}; };
private boolean mExitAnim = true;
private boolean mEnterAnim = true;
private Toast mToast;
public static void showLinkArrows(Card cardInfo, View view) {
String lk = Integer.toBinaryString(cardInfo.Defense);
String Linekey = String.format("%09d", Integer.parseInt(lk));
for (int i = 0; i < ids.length; i++) {
String arrow = Linekey.substring(i, i + 1);
if (i != 4) {
if ("1".equals(arrow)) {
view.findViewById(ids[i]).setBackgroundResource(enImgs[i]);
} else {
view.findViewById(ids[i]).setBackgroundResource(disImgs[i]);
}
}
}
}
protected String[] getPermissions() {
return PERMISSIONS;
}
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -157,6 +168,14 @@ public class BaseActivity extends AppCompatActivity { ...@@ -157,6 +168,14 @@ public class BaseActivity extends AppCompatActivity {
return rect.top; return rect.top;
} }
// @Override
// public void onWindowFocusChanged(boolean hasFocus) {
// if (hasFocus) {
// hideSystemNavBar();
// }
// super.onWindowFocusChanged(hasFocus);
// }
protected void hideSystemNavBar() { protected void hideSystemNavBar() {
if (Build.VERSION.SDK_INT >= 19) { if (Build.VERSION.SDK_INT >= 19) {
// final WindowManager.LayoutParams params = getWindow().getAttributes(); // final WindowManager.LayoutParams params = getWindow().getAttributes();
...@@ -169,14 +188,6 @@ public class BaseActivity extends AppCompatActivity { ...@@ -169,14 +188,6 @@ public class BaseActivity extends AppCompatActivity {
} }
} }
// @Override
// public void onWindowFocusChanged(boolean hasFocus) {
// if (hasFocus) {
// hideSystemNavBar();
// }
// super.onWindowFocusChanged(hasFocus);
// }
public void setActionBarTitle(String title) { public void setActionBarTitle(String title) {
if (TextUtils.isEmpty(title)) { if (TextUtils.isEmpty(title)) {
return; return;
...@@ -259,7 +270,24 @@ public class BaseActivity extends AppCompatActivity { ...@@ -259,7 +270,24 @@ public class BaseActivity extends AppCompatActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
// 拒绝时, 关闭页面, 缺少主要权限, 无法运行 // 拒绝时, 关闭页面, 缺少主要权限, 无法运行
if (requestCode == REQUEST_PERMISSIONS && resultCode == PermissionsActivity.PERMISSIONS_DENIED) { if (requestCode == REQUEST_PERMISSIONS) {
switch (resultCode) {
case PermissionsActivity.PERMISSIONS_DENIED:
onPermission(false);
break;
case PermissionsActivity.PERMISSIONS_GRANTED:
onPermission(true);
break;
}
}
}
protected void onPermission(boolean isOk) {
if (isOk) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !getContext().getPackageManager().canRequestPackageInstalls()) {
getContext().startActivity(new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, Uri.parse("package" + getContext().getPackageName())));
}
} else {
showToast("喵不给我权限让我怎么运行?!"); showToast("喵不给我权限让我怎么运行?!");
finish(); finish();
} }
...@@ -307,19 +335,4 @@ public class BaseActivity extends AppCompatActivity { ...@@ -307,19 +335,4 @@ public class BaseActivity extends AppCompatActivity {
toast.setDuration(duration); toast.setDuration(duration);
toast.show(); toast.show();
} }
public static void showLinkArrows(Card cardInfo, View view) {
String lk = Integer.toBinaryString(cardInfo.Defense);
String Linekey = String.format("%09d", Integer.parseInt(lk));
for (int i = 0; i < ids.length; i++) {
String arrow = Linekey.substring(i, i + 1);
if (i != 4) {
if ("1".equals(arrow)) {
view.findViewById(ids[i]).setBackgroundResource(enImgs[i]);
} else {
view.findViewById(ids[i]).setBackgroundResource(disImgs[i]);
}
}
}
}
} }
...@@ -26,14 +26,4 @@ public class SettingsActivity extends BaseActivity { ...@@ -26,14 +26,4 @@ public class SettingsActivity extends BaseActivity {
enableBackHome(); enableBackHome();
getFragmentManager().beginTransaction().replace(R.id.fragment, new SettingFragment()).commit(); getFragmentManager().beginTransaction().replace(R.id.fragment, new SettingFragment()).commit();
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_PERMISSIONS && resultCode == PERMISSIONS_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !getContext().getPackageManager().canRequestPackageInstalls()) {
getContext().startActivity(new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, Uri.parse("package" + getContext().getPackageName())));
}
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment