个人信息与权限
This commit is contained in:
6
app/src/common/res/drawable/bg_f6f7f9_8_radius.xml
Normal file
6
app/src/common/res/drawable/bg_f6f7f9_8_radius.xml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<corners android:radius="@dimen/dp_8" />
|
||||||
|
<solid android:color="#F6F7F9" />
|
||||||
|
</shape>
|
@@ -1233,6 +1233,14 @@
|
|||||||
android:name=".avroom.firstcharge.FirstChargeDialog"
|
android:name=".avroom.firstcharge.FirstChargeDialog"
|
||||||
android:theme="@style/dialogactivity" />
|
android:theme="@style/dialogactivity" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".ui.setting.GrantedPermissionsActivity"
|
||||||
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".ui.setting.PermissionGuideActivity"
|
||||||
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@@ -0,0 +1,87 @@
|
|||||||
|
package com.yizhuan.erban.ui.setting
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.ImageView
|
||||||
|
import android.widget.TextView
|
||||||
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||||
|
import com.chad.library.adapter.base.BaseViewHolder
|
||||||
|
import com.yizhuan.erban.R
|
||||||
|
import com.yizhuan.erban.base.BaseActivity
|
||||||
|
import com.yizhuan.erban.common.EmptyViewHelper
|
||||||
|
import com.yizhuan.erban.ui.setting.bean.PermissionEntity
|
||||||
|
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||||
|
import com.yizhuan.erban.ui.widget.DividerItemDecoration
|
||||||
|
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil
|
||||||
|
import com.yizhuan.erban.utils.PermissionUtil
|
||||||
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
|
class GrantedPermissionsActivity : BaseActivity() {
|
||||||
|
private var recyclerView: RecyclerView? = null
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun start(context: Context) {
|
||||||
|
val intent = Intent(context, GrantedPermissionsActivity::class.java)
|
||||||
|
context.startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
setContentView(R.layout.activity_granted_permissions)
|
||||||
|
initTitleBar("系统权限管理")
|
||||||
|
initView()
|
||||||
|
val permissionList = getPermissions()
|
||||||
|
val rvDelegate = RVDelegate.Builder<PermissionEntity>()
|
||||||
|
.setLayoutManager(LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false))
|
||||||
|
.setRecyclerView(recyclerView)
|
||||||
|
.setEmptyView(EmptyViewHelper.createEmptyView(this, "未有已授权的系统权限"))
|
||||||
|
.setAdapter(PermissionAdapter())
|
||||||
|
.build()
|
||||||
|
rvDelegate.setNewData(permissionList)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initView() {
|
||||||
|
recyclerView = findViewById(R.id.recycler_view)
|
||||||
|
recyclerView?.addItemDecoration(
|
||||||
|
DividerItemDecoration(
|
||||||
|
this, LinearLayoutManager.VERTICAL,
|
||||||
|
UIUtil.dip2px(this, 16.toDouble()),
|
||||||
|
R.color.transparent
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jumpToSystemSetting(view: View) {
|
||||||
|
PermissionUtil.instance.jumpToSetting(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getPermissions(): MutableList<PermissionEntity> {
|
||||||
|
val permissionList = ArrayList<PermissionEntity>()
|
||||||
|
PermissionUtil.instance.getGrantedPermissions(this)?.forEach {
|
||||||
|
PermissionEntity.fetchPermission(it)
|
||||||
|
?.let { permission ->
|
||||||
|
if (!permissionList.contains(permission)) permissionList.add(
|
||||||
|
permission
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return permissionList
|
||||||
|
}
|
||||||
|
|
||||||
|
class PermissionAdapter :
|
||||||
|
BaseQuickAdapter<PermissionEntity, BaseViewHolder>(R.layout.item_permission_granted) {
|
||||||
|
override fun convert(helper: BaseViewHolder, item: PermissionEntity?) {
|
||||||
|
item?.let {
|
||||||
|
helper.getView<TextView>(R.id.tv_name)?.text = it.alias
|
||||||
|
helper.getView<TextView>(R.id.tv_desc)?.text = it.description
|
||||||
|
helper.getView<ImageView>(R.id.icon)?.setImageResource(it.icon)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,38 @@
|
|||||||
|
package com.yizhuan.erban.ui.setting
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import com.yizhuan.erban.R
|
||||||
|
import com.yizhuan.erban.base.BaseActivity
|
||||||
|
import com.yizhuan.erban.databinding.ActivityPermissionGuideBinding
|
||||||
|
import com.yizhuan.erban.ui.webview.CommonWebViewActivity
|
||||||
|
|
||||||
|
class PermissionGuideActivity : BaseActivity(), View.OnClickListener {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun start(context: Context) {
|
||||||
|
val intent = Intent(context, PermissionGuideActivity::class.java)
|
||||||
|
context.startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
val settingBinding: ActivityPermissionGuideBinding =
|
||||||
|
DataBindingUtil.setContentView(this, R.layout.activity_permission_guide)
|
||||||
|
settingBinding.click = this
|
||||||
|
initTitleBar("个人信息与权限")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onClick(v: View?) {
|
||||||
|
when (v?.id) {
|
||||||
|
R.id.tv_system_permission -> GrantedPermissionsActivity.start(this)
|
||||||
|
//R.id.tv_privacy_guide -> CommonWebViewActivity.start()
|
||||||
|
// R.id.tv_sdk_permission -> CommonWebViewActivity.start()
|
||||||
|
// R.id.tv_device_permission -> CommonWebViewActivity.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -228,6 +228,9 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
|
|||||||
case R.id.tv_notice_setting:
|
case R.id.tv_notice_setting:
|
||||||
NoticeSettingActivity.start(context);
|
NoticeSettingActivity.start(context);
|
||||||
break;
|
break;
|
||||||
|
case R.id.rly_permission:
|
||||||
|
PermissionGuideActivity.Companion.start(context);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -0,0 +1,61 @@
|
|||||||
|
package com.yizhuan.erban.ui.setting.bean
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
|
import com.yizhuan.erban.R
|
||||||
|
import com.yizhuan.xchat_android_core.utils.TextUtils
|
||||||
|
|
||||||
|
enum class PermissionEntity(
|
||||||
|
val alias: String,
|
||||||
|
val description: String,
|
||||||
|
var icon: Int = R.drawable.icon_permission_common,
|
||||||
|
val permissionName: Array<String>
|
||||||
|
) {
|
||||||
|
|
||||||
|
|
||||||
|
PHONE(
|
||||||
|
"电话",
|
||||||
|
"读取通话状态、移动网络信息和设备信息",
|
||||||
|
R.drawable.icon_permission_phone,
|
||||||
|
arrayOf(Manifest.permission.READ_PHONE_STATE)
|
||||||
|
),
|
||||||
|
LOCATOIN(
|
||||||
|
"位置",
|
||||||
|
"访问大致位置(通过网络定位)",
|
||||||
|
R.drawable.icon_permission_location,
|
||||||
|
arrayOf(
|
||||||
|
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||||
|
Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
|
)
|
||||||
|
|
||||||
|
),
|
||||||
|
MICROPHONE(
|
||||||
|
"录音",
|
||||||
|
"录制音频",
|
||||||
|
R.drawable.icon_permission_mic,
|
||||||
|
arrayOf(Manifest.permission.RECORD_AUDIO)
|
||||||
|
),
|
||||||
|
CAMERA(
|
||||||
|
"相机",
|
||||||
|
"拍摄相片或录制视频",
|
||||||
|
R.drawable.icon_permission_camera,
|
||||||
|
arrayOf(Manifest.permission.CAMERA)
|
||||||
|
),
|
||||||
|
STORAGE(
|
||||||
|
"存储", "读取手机存储,修改/删除手机储存", R.drawable.icon_permission_storage,
|
||||||
|
arrayOf(
|
||||||
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun fetchPermission(name: String): PermissionEntity? {
|
||||||
|
if (TextUtils.isEmptyText(name)) return null
|
||||||
|
|
||||||
|
values().forEach {
|
||||||
|
if (it.permissionName.contains(name)) return it
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,4 @@
|
|||||||
|
package com.yizhuan.erban.ui.utils.sys
|
||||||
|
|
||||||
|
class PermissionUtil {
|
||||||
|
}
|
117
app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt
Normal file
117
app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
package com.yizhuan.erban.utils
|
||||||
|
|
||||||
|
import android.content.ComponentName
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
|
import com.microquation.linkedme.android.v4.ContextCompatLKMe
|
||||||
|
import com.yizhuan.erban.BuildConfig
|
||||||
|
import java.lang.Exception
|
||||||
|
|
||||||
|
class PermissionUtil {
|
||||||
|
companion object {
|
||||||
|
val instance = PermissionUtil()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getGrantedPermissions(context: Context): List<String>? {
|
||||||
|
val packageInfo = context.packageManager.getPackageInfo(
|
||||||
|
context.packageName,
|
||||||
|
PackageManager.GET_PERMISSIONS,
|
||||||
|
)
|
||||||
|
val permissions = packageInfo.requestedPermissions
|
||||||
|
val list = permissions?.filter { str -> str.startsWith("android.permission") }
|
||||||
|
return if (Build.VERSION.SDK_INT < 23) {
|
||||||
|
list
|
||||||
|
} else {
|
||||||
|
list?.filter {
|
||||||
|
ContextCompatLKMe.checkSelfPermission(
|
||||||
|
context,
|
||||||
|
it
|
||||||
|
) == PackageManager.PERMISSION_GRANTED
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jumpToSetting(context: Context) {
|
||||||
|
when (Build.BRAND?.toLowerCase()) {
|
||||||
|
"redmi", "xiaomi" -> toXiaomiPermission(context)
|
||||||
|
"huawei", "honor" -> toHuaWeiPermission(context)
|
||||||
|
"meizu" -> toMeizuPermission(context)
|
||||||
|
else -> toCommonPermission(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toHuaWeiPermission(context: Context) {
|
||||||
|
try {
|
||||||
|
val intent = Intent()
|
||||||
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
|
val comp = ComponentName(
|
||||||
|
"com.huawei.systemmanager",
|
||||||
|
"com.huawei.permissionmanager.ui.MainActivity"
|
||||||
|
)//华为权限管理
|
||||||
|
intent.component = comp
|
||||||
|
context.startActivity(intent)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
toCommonPermission(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toXiaomiPermission(context: Context) {
|
||||||
|
try { // MIUI 8
|
||||||
|
val localIntent = Intent("miui.intent.action.APP_PERM_EDITOR")
|
||||||
|
localIntent.setClassName(
|
||||||
|
"com.miui.securitycenter",
|
||||||
|
"com.miui.permcenter.permissions.PermissionsEditorActivity"
|
||||||
|
)
|
||||||
|
localIntent.putExtra("extra_pkgname", context.packageName)
|
||||||
|
context.startActivity(localIntent)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
try { // MIUI 5/6/7
|
||||||
|
val localIntent = Intent("miui.intent.action.APP_PERM_EDITOR")
|
||||||
|
localIntent.setClassName(
|
||||||
|
"com.miui.securitycenter",
|
||||||
|
"com.miui.permcenter.permissions.AppPermissionsEditorActivity"
|
||||||
|
)
|
||||||
|
localIntent.putExtra("extra_pkgname", context.packageName)
|
||||||
|
context.startActivity(localIntent)
|
||||||
|
} catch (e1: Exception) { // 否则跳转到应用详情
|
||||||
|
toCommonPermission(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toMeizuPermission(context: Context) {
|
||||||
|
try {
|
||||||
|
val intent = Intent("com.meizu.safe.security.SHOW_APPSEC")
|
||||||
|
intent.addCategory(Intent.CATEGORY_DEFAULT)
|
||||||
|
intent.putExtra("packageName", BuildConfig.APPLICATION_ID)
|
||||||
|
context.startActivity(intent)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
toCommonPermission(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toCommonPermission(context: Context) {
|
||||||
|
val localIntent = Intent()
|
||||||
|
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
if (Build.VERSION.SDK_INT >= 9) {
|
||||||
|
localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
|
||||||
|
localIntent.data = Uri.fromParts("package", context.packageName, null)
|
||||||
|
} else if (Build.VERSION.SDK_INT <= 8) {
|
||||||
|
localIntent.action = Intent.ACTION_VIEW
|
||||||
|
localIntent.setClassName(
|
||||||
|
"com.android.settings",
|
||||||
|
"com.android.settings.InstalledAppDetails"
|
||||||
|
)
|
||||||
|
localIntent.putExtra(
|
||||||
|
"com.android.settings.ApplicationPkgName",
|
||||||
|
context.packageName
|
||||||
|
)
|
||||||
|
}
|
||||||
|
context.startActivity(localIntent)
|
||||||
|
}
|
||||||
|
}
|
BIN
app/src/main/res/drawable-xhdpi/icon_permission_camera.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_camera.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 850 B |
BIN
app/src/main/res/drawable-xhdpi/icon_permission_common.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_common.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_permission_location.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_location.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_permission_mic.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_mic.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_permission_phone.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_phone.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_permission_storage.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_permission_storage.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
69
app/src/main/res/layout/activity_granted_permissions.xml
Normal file
69
app/src/main/res/layout/activity_granted_permissions.xml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/white"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.yizhuan.erban.base.TitleBar
|
||||||
|
android:id="@+id/title_bar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/color_transparent10_0A333333" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_margin="@dimen/dp_16"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:overScrollMode="never" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginTop="@dimen/dp_8"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
android:layout_width="@dimen/dp_50"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:background="@color/color_grey_999999"
|
||||||
|
/>
|
||||||
|
<TextView
|
||||||
|
android:layout_marginLeft="@dimen/dp_8"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:onClick="jumpToSystemSetting"
|
||||||
|
android:text="仅展示能查询到的已授权系统权限"
|
||||||
|
android:textColor="@color/color_999999"
|
||||||
|
android:textSize="@dimen/sp_12" />
|
||||||
|
<View
|
||||||
|
android:layout_width="@dimen/dp_50"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_marginLeft="@dimen/dp_8"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:background="@color/color_grey_999999"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="@dimen/dp_40"
|
||||||
|
android:layout_marginBottom="@dimen/dp_35"
|
||||||
|
android:onClick="jumpToSystemSetting"
|
||||||
|
android:text="前往系统设置>"
|
||||||
|
android:textColor="#7154EE"
|
||||||
|
android:textSize="@dimen/sp_14" />
|
||||||
|
</LinearLayout>
|
116
app/src/main/res/layout/activity_permission_guide.xml
Normal file
116
app/src/main/res/layout/activity_permission_guide.xml
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
<data>
|
||||||
|
<variable
|
||||||
|
name="click"
|
||||||
|
type="android.view.View.OnClickListener" />
|
||||||
|
</data>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@color/white"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<com.yizhuan.erban.base.TitleBar
|
||||||
|
android:id="@+id/title_bar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/color_transparent10_0A333333" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_bar"
|
||||||
|
android:id="@+id/tv_system_permission"
|
||||||
|
style="@style/permission_text_style"
|
||||||
|
android:text="系统权限管理"
|
||||||
|
android:onClick="@{click}"
|
||||||
|
tools:ignore="MissingConstraints" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_bar"
|
||||||
|
android:id="@+id/tv_privacy_guide"
|
||||||
|
style="@style/permission_text_style"
|
||||||
|
android:text="隐私保护指引"
|
||||||
|
android:onClick="@{click}"
|
||||||
|
tools:ignore="MissingConstraints" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_bar"
|
||||||
|
android:id="@+id/tv_sdk_permission"
|
||||||
|
style="@style/permission_text_style"
|
||||||
|
android:text="第三方SDK目录"
|
||||||
|
android:onClick="@{click}"
|
||||||
|
tools:ignore="MissingConstraints" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_bar"
|
||||||
|
android:id="@+id/tv_device_permission"
|
||||||
|
style="@style/permission_text_style"
|
||||||
|
android:text="设备权限清单"
|
||||||
|
android:onClick="@{click}"
|
||||||
|
tools:ignore="MissingConstraints" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_jump_setting"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="@dimen/dp_60"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
android:onClick="@{click}"
|
||||||
|
android:text="前往系统设置>"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
android:textColor="#7154EE"
|
||||||
|
android:textSize="@dimen/sp_14" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_tip"
|
||||||
|
android:layout_marginLeft="@dimen/dp_8"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:onClick="jumpToSystemSetting"
|
||||||
|
android:text="仅展示能查询到的已授权系统权限"
|
||||||
|
android:layout_marginBottom="@dimen/dp_40"
|
||||||
|
android:textColor="@color/color_999999"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/tv_jump_setting"
|
||||||
|
android:textSize="@dimen/sp_12" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="@dimen/dp_50"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:background="@color/color_grey_999999"
|
||||||
|
app:layout_constraintRight_toLeftOf="@id/tv_tip"
|
||||||
|
android:layout_marginRight="@dimen/dp_8"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/tv_tip"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/tv_tip"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<View
|
||||||
|
app:layout_constraintTop_toTopOf="@id/tv_tip"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/tv_tip"
|
||||||
|
android:layout_width="@dimen/dp_50"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
app:layout_constraintLeft_toRightOf="@id/tv_tip"
|
||||||
|
android:layout_marginLeft="@dimen/dp_8"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:background="@color/color_grey_999999"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</layout>
|
@@ -308,6 +308,37 @@
|
|||||||
android:textColor="@color/text_title_white"
|
android:textColor="@color/text_title_white"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="10dp"
|
||||||
|
android:background="@color/line_height_201F27" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/rly_permission"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="50dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:onClick="@{click}">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
|
android:text="@string/text_setting_permission"
|
||||||
|
android:textColor="@color/text_title_white"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginEnd="@dimen/dp_15"
|
||||||
|
android:src="@drawable/arrow_right" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="10dp"
|
android:layout_height="10dp"
|
||||||
|
44
app/src/main/res/layout/item_permission_granted.xml
Normal file
44
app/src/main/res/layout/item_permission_granted.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="@dimen/dp_16"
|
||||||
|
android:paddingBottom="@dimen/dp_16"
|
||||||
|
android:background="@drawable/bg_f6f7f9_8_radius">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/icon"
|
||||||
|
android:layout_width="@dimen/dp_23"
|
||||||
|
android:layout_marginLeft="@dimen/dp_16"
|
||||||
|
android:layout_height="@dimen/dp_16"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:src="@drawable/icon_permission_common" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="@dimen/dp_7"
|
||||||
|
android:textColor="@color/color_black_333333"
|
||||||
|
android:textSize="@dimen/sp_14"
|
||||||
|
app:layout_constraintLeft_toRightOf="@id/icon"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="存储" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_desc"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
|
android:textColor="@color/color_grey_999999"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
app:layout_constraintLeft_toLeftOf="@id/tv_name"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tv_name"
|
||||||
|
tools:text="读取手机存储,修改/删除手机储存" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -683,6 +683,7 @@
|
|||||||
<string name="text_setting_about">关于&app_name;</string>
|
<string name="text_setting_about">关于&app_name;</string>
|
||||||
<string name="text_setting_check_for_update">检查版本</string>
|
<string name="text_setting_check_for_update">检查版本</string>
|
||||||
<string name="text_setting_lab">实验室</string>
|
<string name="text_setting_lab">实验室</string>
|
||||||
|
<string name="text_setting_permission">个人信息与权限</string>
|
||||||
<string name="text_setting_logout">退出当前账号</string>
|
<string name="text_setting_logout">退出当前账号</string>
|
||||||
<string name="text_setting_clear_cache">清除缓存</string>
|
<string name="text_setting_clear_cache">清除缓存</string>
|
||||||
|
|
||||||
|
@@ -546,4 +546,19 @@
|
|||||||
<item name="android:windowExitAnimation">@anim/anim_message_tip_out</item>
|
<item name="android:windowExitAnimation">@anim/anim_message_tip_out</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="permission_text_style">
|
||||||
|
<item name="android:layout_width">match_parent</item>
|
||||||
|
<item name="android:layout_height">@dimen/dp_44</item>
|
||||||
|
<item name="android:background">@drawable/bg_f6f7f9_8_radius</item>
|
||||||
|
<item name="android:layout_marginTop">@dimen/dp_16</item>
|
||||||
|
<item name="android:layout_marginLeft">@dimen/dp_16</item>
|
||||||
|
<item name="android:layout_marginRight">@dimen/dp_16</item>
|
||||||
|
<item name="android:textSize">@dimen/sp_14</item>
|
||||||
|
<item name="android:gravity">center_vertical</item>
|
||||||
|
<item name="android:paddingLeft">@dimen/dp_12</item>
|
||||||
|
<item name="android:paddingRight">@dimen/dp_17</item>
|
||||||
|
<item name="android:drawableRight">@drawable/setting_right</item>
|
||||||
|
<item name="android:textColor">@color/color_black_333333</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -61,6 +61,7 @@
|
|||||||
|
|
||||||
<!-- setting -->
|
<!-- setting -->
|
||||||
<color name="color_black_ff333333">#ff333333</color>
|
<color name="color_black_ff333333">#ff333333</color>
|
||||||
|
<color name="color_transparent10_0A333333">#0A333333</color>
|
||||||
<color name="color_black_ff666666">#ff666666</color>
|
<color name="color_black_ff666666">#ff666666</color>
|
||||||
<color name="color_black_ff999999">#ff999999</color>
|
<color name="color_black_ff999999">#ff999999</color>
|
||||||
<color name="color_gray_bfc2c5">#bfc2c5</color>
|
<color name="color_gray_bfc2c5">#bfc2c5</color>
|
||||||
|
Reference in New Issue
Block a user