mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
feat: permission checking dialog
This commit is contained in:
parent
231b11c22b
commit
399cb29dd5
@ -3,10 +3,13 @@ package com.stardust.scriptdroid.ui.main;
|
||||
import android.Manifest;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
@ -38,6 +41,8 @@ import com.stardust.scriptdroid.ui.main.sample.SampleListFragment_;
|
||||
import com.stardust.scriptdroid.ui.main.scripts.MyScriptListFragment_;
|
||||
import com.stardust.scriptdroid.ui.main.task.TaskManagerFragment_;
|
||||
import com.stardust.theme.ThemeColorManager;
|
||||
import com.stardust.theme.app.ThemeColorMaterialDialog;
|
||||
import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
|
||||
import com.stardust.util.DeveloperUtils;
|
||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||
@ -84,6 +89,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
checkPermissions();
|
||||
showAccessibilitySettingPromptIfDisabled();
|
||||
mVersionGuard = new VersionGuard(this);
|
||||
showAnnunciationIfNeeded();
|
||||
EventBus.getDefault().register(this);
|
||||
@ -120,7 +126,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
|
||||
private void checkPermissions() {
|
||||
checkPermission(Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
showAccessibilitySettingPromptIfDisabled();
|
||||
}
|
||||
|
||||
private void showAccessibilitySettingPromptIfDisabled() {
|
||||
@ -220,13 +225,29 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
int i = Arrays.asList(permissions).indexOf(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
if (i < 0) {
|
||||
return;
|
||||
}
|
||||
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
|
||||
if (getGrantResult(Manifest.permission.READ_EXTERNAL_STORAGE, permissions, grantResults) == PackageManager.PERMISSION_GRANTED) {
|
||||
StorageFileProvider.getDefault().notifyStoragePermissionGranted();
|
||||
}
|
||||
|
||||
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_DENIED) {
|
||||
new ThemeColorMaterialDialogBuilder(this)
|
||||
.title(R.string.text_no_phone_state_permission)
|
||||
.content(R.string.info_no_phone_state_permission)
|
||||
.positiveText(R.string.text_request_permission)
|
||||
.negativeText(R.string.text_exit)
|
||||
.cancelable(false)
|
||||
.onPositive(((dialog, which) -> checkPermissions()))
|
||||
.onNegative((dialog, which) -> finish())
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
||||
private int getGrantResult(String permission, String[] permissions, int[] grantResults) {
|
||||
int i = Arrays.asList(permissions).indexOf(permission);
|
||||
if (i < 0) {
|
||||
return 2;
|
||||
}
|
||||
return grantResults[i];
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -339,4 +339,7 @@
|
||||
<string name="text_logout">退出登录</string>
|
||||
<string name="nodebb_error_forbidden">操作失败,请稍后重试</string>
|
||||
<string name="description_stable_mode">稳定模式通过省略布局细节使脚本抓取布局时更稳定,但同时获取到的屏幕上的控件可能会减少。\n\n重新启动无障碍服务才能生效。</string>
|
||||
<string name="text_no_phone_state_permission">获取权限失败 :-(</string>
|
||||
<string name="text_request_permission">重新授予</string>
|
||||
<string name="info_no_phone_state_permission">软件需要显示启动页广告来维持服务器和软件的开发和维护,因此需要\"读取手机状态\"的权限。\n如果您不喜欢广告,可以在设置中设定广告每天只显示一次。</string>
|
||||
</resources>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user