From ee6a07092301ddca63e46318b6e85877487eb076 Mon Sep 17 00:00:00 2001 From: sollyu Date: Mon, 25 Dec 2017 16:09:32 +0800 Subject: [PATCH 1/2] add request permission --- app/build.gradle | 4 ++- .../appenv/activitys/ActivitySettings.kt | 5 +-- .../appenv/activitys/ActivitySplash.kt | 31 ++++++++++++++++++- app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e995762..c036e0d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { minSdkVersion 15 targetSdkVersion 26 versionCode 584 - versionName "3.2.3" + getGitVersion() + versionName "3.2.3." + getGitVersion() } buildTypes { release { @@ -86,6 +86,8 @@ dependencies { implementation 'com.afollestad.material-dialogs:core:0.9.5.0' // https://github.com/rubensousa/BottomSheetBuilder implementation 'com.github.rubensousa:bottomsheetbuilder:1.6.0' + // https://github.com/NoNews/NoPermission + implementation 'ru.alexbykov:nopermission:1.1.2' } repositories { diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySettings.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySettings.kt index a2aee8d..2f3a81c 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySettings.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySettings.kt @@ -216,6 +216,7 @@ class ActivitySettings : ActivityBase() { notices.addNotice(Notice("EventBus" , "https://github.com/greenrobot/EventBus" , "Copyright (C) 2012-2017 Markus Junginger greenrobot (http://greenrobot.org)", ApacheSoftwareLicense20())) notices.addNotice(Notice("LicensesDialog" , "https://github.com/PSDev/LicensesDialog" , "Copyright 2013-2017 Philip Schiffer" , ApacheSoftwareLicense20())) notices.addNotice(Notice("libsuperuser" , "https://github.com/Chainfire/libsuperuser" , "Written by and copyright ©: Jorrit \"Chainfire\" Jongma Author of SuperSU" , ApacheSoftwareLicense20())) + notices.addNotice(Notice("NoPermission" , "https://github.com/NoNews/NoPermission" , "Copyright 2017 Mike Antipiev and Alex Bykov" , ApacheSoftwareLicense20())) notices.addNotice(Notice("material-dialogs" , "https://github.com/afollestad/material-dialogs" , "Copyright (c) 2014-2016 Aidan Michael Follestad" , MITLicense()) ) LicensesDialog.Builder(activity).setNotices(notices).build().showAppCompat() @@ -255,8 +256,8 @@ class ActivitySettings : ActivityBase() { @Event(R.id.oivThinks) private fun onBtnClickThinks(view: View) { MaterialDialog.Builder(activity) - .title(R.string.settings_thinks). - items(arrayListOf("jfa2008@gmail.com")) + .title(R.string.settings_thinks) + .items(arrayListOf("jfa2008@gmail.com")) .positiveText(android.R.string.ok) .show() } diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySplash.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySplash.kt index 0495ed0..aeeeaa9 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySplash.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivitySplash.kt @@ -8,12 +8,20 @@ package com.sollyu.android.appenv.activitys +import android.Manifest +import android.app.ProgressDialog.show +import android.content.pm.PackageManager import android.os.Handler +import android.support.v4.app.ActivityCompat +import android.support.v4.content.ContextCompat +import android.widget.Toast import com.afollestad.materialdialogs.MaterialDialog +import com.elvishew.xlog.XLog import com.sollyu.android.appenv.BuildConfig import com.sollyu.android.appenv.R import com.sollyu.android.appenv.commons.Application import com.umeng.analytics.MobclickAgent +import ru.alexbykov.nopermission.PermissionHelper /** @@ -23,6 +31,8 @@ import com.umeng.analytics.MobclickAgent */ class ActivitySplash : ActivityBase(), Runnable { + val permissionHelper by lazy { PermissionHelper(activity) } + override fun run() { /* Xposed 没有成功的状态 */ @@ -44,7 +54,26 @@ class ActivitySplash : ActivityBase(), Runnable { override fun onInitDone() { super.onInitDone() - Handler().postAtTime(this, 1000) + permissionHelper.check(Manifest.permission.WRITE_EXTERNAL_STORAGE) + permissionHelper.onSuccess{ + Handler().postAtTime(this, 1000) + } + permissionHelper.onDenied { + MaterialDialog.Builder(activity) + .title(R.string.tip) + .content(R.string.splash_permission_write_storage_denied_content) + .positiveText(android.R.string.ok).onPositive { _, _ -> Handler().postAtTime(this, 1000) } + .show() + } + permissionHelper.onNeverAskAgain { + Toast.makeText(activity, R.string.splash_permission_write_storage_denied_content, Toast.LENGTH_LONG).show() + } + permissionHelper.run() + } + + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + permissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults) } override fun getMobclickAgentTag(): String { diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 1ffe88c..7e5033a 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -135,4 +135,5 @@ DPI 使用内置存储 【内置存储特性】\n支持「没有SD卡权限」应用拦截\n不支持「7.0+」以上系统\n\n【外置存储特性】\n不支持「没有SD卡权限」应用拦截\n方便直接修改配置文件\n兼容所有系统\n\n您确定使用内置存储吗? + 应用变量需要内存卡读取权限才能正常使用\n\n问:为什么要权限?\n答:因为在Android7.0+之后,Android系统为了手机系统的安全,删除了一个名字叫做【MODE_WORLD_READABLE】的权限,此权限是允许其他程序访问使用这个权限设置的文件,这也是应用变量提供被拦截程序的一个配置入口。因为系统删除了这个权限,外加上本人菜鸡,无奈只能使用SD来存放此配置文件,从而达到让别的程序来读取。\n\n问:如果我不给会怎么样?\n答:如果您的系统在Android7.0之前,那么您可以在设置中设置成使用内置存储,这样您就可以正常使用本软件了。那如果您的系统是Android7.0+,因为不能保存配置文件在内存卡里,所以我感觉您应该不能正常使用本软件。\n\n问:但是我真的很讨厌这个权限\n答:在这里我仅作为作者来告诉您,本软件【永久】不会增加任何性质的广告,也不会在您的手机内存卡里生成各种乱七八糟的文件。但是因为本软件使用来一个叫做【友盟】的统计,它好像会在您的SD卡下生成一个叫做【umeng】的文件夹。\n\n问:……\n答:…………\n \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6bae287..b6ef3ae 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -121,4 +121,5 @@ DPI Use app data Config Use app data Config? + AppEnv need write external storeage permission. :( From c50fa40d834bc131def07085db2414d9827fdbd2 Mon Sep 17 00:00:00 2001 From: sollyu Date: Mon, 25 Dec 2017 16:17:45 +0800 Subject: [PATCH 2/2] update text. --- app/build.gradle | 4 ++-- app/src/main/res/values-zh/strings.xml | 10 +++------- online/app.env.soft.json | 6 +++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c036e0d..00b992b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,8 @@ android { applicationId "com.sollyu.xposed.hook.model" minSdkVersion 15 targetSdkVersion 26 - versionCode 584 - versionName "3.2.3." + getGitVersion() + versionCode 585 + versionName "3.2.4." + getGitVersion() } buildTypes { release { diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 7e5033a..da1a961 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -77,9 +77,7 @@ 问题?建议? 请从桌面启动程序 桌面 - - - "\n \n 应用变量" "作者: king.sollyu
" "联系: QQ: 191067617
" @@ -109,7 +107,7 @@ "
" "

本版更新

" - "+ 使用Kotlin语言复写
" + "+ 增加启动时检测权限
" "~ 增加版本号 (ง •̀_•́)ง
" "
" @@ -117,9 +115,7 @@ "
" "
" "
" - ]]> -
-
+ ]]>\n \n " 关于 如需定制,可以联系作者 显示桌面图标 diff --git a/online/app.env.soft.json b/online/app.env.soft.json index 382c64e..9ec584a 100644 --- a/online/app.env.soft.json +++ b/online/app.env.soft.json @@ -1,6 +1,6 @@ { - "last-version-code": 584, - "last-version-name": "3.2.3", - "last-version-message": "1. 增加语言和DPI拦截\n2. 支持Android 7.1+", + "last-version-code": 585, + "last-version-name": "3.2.4", + "last-version-message": "+ 增加启动时检测权限\n~ 增加版本号 (ง •̀_•́)ง ", "last-version-url": "https://github.com/kingsollyu/AppEnv-Kotlin/releases" } \ No newline at end of file