Files
SimplicityTools/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt
2022-03-04 23:17:06 +08:00

1 line
30 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@file:Suppress("DEPRECATION")
package com.lt2333.simplicitytools.activity
import android.annotation.SuppressLint
import android.content.ComponentName
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.view.*
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.util.ShellUtils
import com.microsoft.appcenter.AppCenter
import com.microsoft.appcenter.analytics.Analytics
import com.microsoft.appcenter.crashes.Crashes
import kotlin.system.exitProcess
class SettingsActivity : MIUIActivity() {
private val activity = this
override fun onCreate(savedInstanceState: Bundle?) {
if (BuildConfig.BUILD_TYPE != "debug") {
AppCenter.start(
application, "ae2037d3-9914-4e0c-b02b-f9b2bb2574e5",
Analytics::class.java, Crashes::class.java
)
}
checkLSPosed()
super.onCreate(savedInstanceState)
}
//检测LSPosed是否激活
@SuppressLint("WorldReadableFiles")
private fun checkLSPosed() {
try {
setSP(getSharedPreferences("config", MODE_WORLD_READABLE))
} catch (exception: SecurityException) {
isLoad = false
MIUIDialog(this).apply {
setTitle(R.string.Tips)
setMessage("您似乎正在使用过时的 LSPosed 版本或 LSPosed 未激活,请更新 LSPosed 或者激活后再试。")
setCancelable(false)
setRButton("确定") {
exitProcess(0)
}
show()
}
}
}
//主页标题
override fun mainName(): String {
return getString(R.string.app_name)
}
//菜单标题
override fun menuName(): String {
return getString(R.string.menu)
}
//主页面
override fun mainItems(): ArrayList<BaseView> {
return arrayListOf<BaseView>().apply {
add(
TextWithSwitchV(
TextV(resId = R.string.main_switch, colorId = R.color.purple_700),
SwitchV("main_switch", true)
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.HideLauncherIcon),
SwitchV("hLauncherIcon", customOnCheckedChangeListener = {
packageManager.setComponentEnabledSetting(
ComponentName(activity, "${BuildConfig.APPLICATION_ID}.launcher"),
if (it) {
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
} else {
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
},
PackageManager.DONT_KILL_APP
)
})
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.matters_needing_attention,
colorId = R.color.red,
onClickListener = {
MIUIDialog(activity).apply {
setTitle(R.string.matters_needing_attention)
setMessage(
"""首次激活或更新后建议重启手机
|绝大部分功能更改后需要在右上角重启作用域后生效
""".trimMargin()
)
setRButton(R.string.Done) {
dismiss()
}
show()
}
})
)
)
add(LineV())
add(TitleTextV(resId = R.string.scope))
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.scope_systemui, tipsId = R.string.scope_systemui_summary,
onClickListener = { showFragment(getString(R.string.scope_systemui)) }
)
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.scope_android, tipsId = R.string.scope_android_summary,
onClickListener = { showFragment(getString(R.string.scope_android)) }
)
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.scope_other, tipsId = R.string.scope_other_summary,
onClickListener = { showFragment(getString(R.string.scope_other)) }
)
)
)
add(LineV())
add(TitleTextV(resId = R.string.about))
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.about_module,
tips = getString(R.string.about_module_summary),
onClickListener = { showFragment(getString(R.string.about_module)) }
)
)
)
}
}
//菜单页面
override fun menuItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(
TextSummaryArrowV(
TextSummaryV(textId = R.string.reboot, onClickListener = {
MIUIDialog(activity).apply {
setTitle(R.string.Tips)
setMessage("确定重启系统?")
setLButton("取消") {
dismiss()
}
setRButton("确定") {
val command = arrayOf("reboot")
ShellUtils.execCommand(command, true)
dismiss()
}
show()
}
})
)
)
add(
TextSummaryArrowV(
TextSummaryV(textId = R.string.reboot_host, onClickListener = {
MIUIDialog(activity).apply {
setTitle(R.string.Tips)
setMessage("确定重启作用域?")
setLButton("取消") {
dismiss()
}
setRButton("确定") {
val command = arrayOf(
"killall com.miui.home",
"killall com.miui.securitycenter ",
"killall com.miui.powerkeeper",
"killall com.miui.mediaeditor",
"killall com.android.systemui"
)
ShellUtils.execCommand(command, true)
dismiss()
}
show()
}
})
)
)
}
}
//关于页面
fun aboutItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(
AuthorV(
authorHead = getDrawable(R.drawable.app_icon)!!,
authorName = getString(R.string.app_name),
authorTips = BuildConfig.VERSION_NAME + "(" + BuildConfig.BUILD_TYPE + ")",
onClick = {
try {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://apk/com.lt2333.simplicitytools")
)
)
Toast.makeText(activity, "恳求一个五星好评Thanks♪(・ω・)ノ", Toast.LENGTH_LONG)
.show()
} catch (e: Exception) {
val uri =
Uri.parse("https://github.com/Xposed-Modules-Repo/com.lt2333.simplicitytools/releases")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
})
)
add(LineV())
add(
TitleTextV(text = getString(R.string.developer))
)
add(
AuthorV(
authorHead = getDrawable(R.drawable.lt)!!,
authorName = "乌堆小透明",
authorTips = "LittleTurtle2333",
onClick = {
try {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://u/883441")
)
)
Toast.makeText(activity, "乌堆小透明:靓仔,点个关注吧!", Toast.LENGTH_SHORT)
.show()
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装酷安应用", Toast.LENGTH_SHORT).show()
val uri = Uri.parse("http://www.coolapk.com/u/883441")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
})
)
add(LineV())
add(
TitleTextV(text = getString(R.string.thank_list))
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.contributor_list,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools/graphs/contributors")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.third_party_open_source_statement,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools#%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BC%80%E6%BA%90%E5%BC%95%E7%94%A8")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
)
add(LineV())
add(
TitleTextV(text = getString(R.string.discussions))
)
add(TextSummaryArrowV(TextSummaryV(textId = R.string.qq_channel, onClickListener = {
try {
val uri =
Uri.parse("https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&inviteCode=29Mu64&from=246610&biz=ka")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})))
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.tg_channel,
tipsId = R.string.tg_channel_summary,
onClickListener = {
try {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("tg://resolve?domain=simplicityrom")
)
)
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装Telegram应用", Toast.LENGTH_SHORT)
.show()
val uri =
Uri.parse("https://t.me/simplicityrom")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
})
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.issues,
tipsId = R.string.issues_url,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools/issues")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
)
add(LineV())
add(
TitleTextV(text = getString(R.string.other))
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.app_coolapk_url,
tipsId = R.string.app_coolapk_url_summary,
onClickListener = {
try {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://apk/com.lt2333.simplicitytools")
)
)
Toast.makeText(
activity,
"恳求一个五星好评Thanks♪(・ω・)ノ",
Toast.LENGTH_LONG
).show()
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装酷安应用", Toast.LENGTH_SHORT).show()
}
})
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.opensource,
tipsId = R.string.github_url,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
)
}
}
//系统框架页面
fun androidItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.disable_flag_secure,
tipsId = R.string.disable_flag_secure_summary
),
SwitchV("disable_flag_secure")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.corepacth,
tipsId = R.string.corepacth_summary
),
SwitchV("corepatch")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.delete_on_post_notification,
tipsId = R.string.delete_on_post_notification_summary
),
SwitchV("delete_on_post_notification")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.remove_small_window_restrictions,
tipsId = R.string.remove_small_window_restrictions_summary
),
SwitchV("remove_small_window_restrictions")
)
)
}
}
//系统界面页面
fun systemuiItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(TitleTextV(resId = R.string.statusbar))
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.status_bar_network_speed_refresh_speed,
tipsId = R.string.status_bar_network_speed_refresh_speed_summary
),
SwitchV("status_bar_network_speed_refresh_speed")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.hide_battery_percentage_icon,
tipsId = R.string.hide_battery_percentage_icon_summary
),
SwitchV("hide_battery_percentage_icon")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.hide_status_bar_network_speed_second,
tipsId = R.string.hide_status_bar_network_speed_second_summary
),
SwitchV("hide_status_bar_network_speed_second")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.remove_the_maximum_number_of_notification_icons,
tipsId = R.string.remove_the_maximum_number_of_notification_icons_summary
),
SwitchV("remove_the_maximum_number_of_notification_icons")
)
)
add(LineV())
add(TitleTextV(resId = R.string.status_bar_clock_format))
add(
TextWithSwitchV(
TextV(resId = R.string.custom_clock_switch, colorId = R.color.purple_700),
SwitchV("custom_clock_switch")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_year),
SwitchV("status_bar_time_year")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_month),
SwitchV("status_bar_time_month")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_day),
SwitchV("status_bar_time_day")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_week),
SwitchV("status_bar_time_week")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_double_hour),
SwitchV("status_bar_time_double_hour")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_period),
SwitchV("status_bar_time_period", true)
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_seconds),
SwitchV("status_bar_time_seconds")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_hide_space),
SwitchV("status_bar_time_hide_space")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.status_bar_time_double_line),
SwitchV("status_bar_time_double_line")
)
)
add(TextV(resId = R.string.status_bar_clock_size))
add(SeekBarWithTextV("status_bar_clock_size", 0, 18, 0))
add(TextV(resId = R.string.status_bar_clock_double_line_size))
add(SeekBarWithTextV("status_bar_clock_double_line_size", 0, 8, 0))
add(LineV())
add(TitleTextV(resId = R.string.status_bar_icon))
add(
TextWithSwitchV(
TextV(resId = R.string.hide_battery_icon),
SwitchV("hide_battery_icon")
)
)
add(TextWithSwitchV(TextV(resId = R.string.hide_gps_icon), SwitchV("hide_gps_icon")))
add(
TextWithSwitchV(
TextV(resId = R.string.hide_bluetooth_icon),
SwitchV("hide_bluetooth_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_bluetooth_battery_icon),
SwitchV("hide_bluetooth_battery_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_small_hd_icon),
SwitchV("hide_small_hd_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_big_hd_icon),
SwitchV("hide_big_hd_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_hd_no_service_icon),
SwitchV("hide_hd_no_service_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_sim_one_icon),
SwitchV("hide_sim_one_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_sim_two_icon),
SwitchV("hide_sim_two_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_mobile_activity_icon),
SwitchV("hide_mobile_activity_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_mobile_type_icon),
SwitchV("hide_mobile_type_icon")
)
)
add(TextWithSwitchV(TextV(resId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon")))
add(
TextWithSwitchV(
TextV(resId = R.string.hide_wifi_activity_icon),
SwitchV("hide_wifi_activity_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_slave_wifi_icon),
SwitchV("hide_slave_wifi_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_hotspot_icon),
SwitchV("hide_hotspot_icon")
)
)
add(TextWithSwitchV(TextV(resId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon")))
add(
TextWithSwitchV(
TextV(resId = R.string.hide_airplane_icon),
SwitchV("hide_airplane_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_alarm_icon),
SwitchV("hide_alarm_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_headset_icon),
SwitchV("hide_headset_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_volume_zen_icon),
SwitchV("hide_volume_zen_icon")
)
)
add(LineV())
add(TitleTextV(resId = R.string.ui))
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.remove_the_left_side_of_the_lock_screen,
tipsId = R.string.only_official_default_themes_are_supported
),
SwitchV("remove_the_left_side_of_the_lock_screen")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.remove_lock_screen_camera,
tipsId = R.string.only_official_default_themes_are_supported
),
SwitchV("remove_lock_screen_camera")
)
)
}
}
//其他页面
fun otherItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(TitleTextV(resId = R.string.scope_miuihome))
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.home_time,
tipsId = R.string.home_time_summary
), SwitchV("home_time")
)
)
add(LineV())
add(TitleTextV(resId = R.string.scope_powerkeeper))
add(
TextSummaryWithSwitchV(
TextSummaryV(textId = R.string.lock_max_fps, tips = "支持添加下拉控制中心快速开关,实时切换"),
SwitchV("lock_max_fps")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.prevent_recovery_of_battery_optimization_white_list,
tipsId = R.string.failed_after_restart
),
SwitchV("prevent_recovery_of_battery_optimization_white_list")
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.battery_optimization,
tipsId = R.string.battery_optimization_summary,
onClickListener = {
try {
val intent = Intent()
val comp = ComponentName(
"com.android.settings",
"com.android.settings.Settings\$HighPowerApplicationsActivity"
)
intent.component = comp
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
}
})
)
)
add(LineV())
add(TitleTextV(resId = R.string.scope_securitycenter))
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.skip_waiting_time,
tipsId = R.string.skip_waiting_time_summary
),
SwitchV("skip_waiting_time")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.lock_one_hundred,
tipsId = R.string.lock_one_hundred_summary
),
SwitchV("lock_one_hundred")
)
)
add(LineV())
add(TitleTextV(resId = R.string.scope_mediaeditor))
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.unlock_unlimited_cropping,
tipsId = R.string.unlock_unlimited_cropping_summary
),
SwitchV("unlock_unlimited_cropping")
)
)
}
}
override fun getItems(item: String): ArrayList<BaseView> {
return when (item) {
getString(R.string.scope_android) -> androidItems()
getString(R.string.scope_systemui) -> systemuiItems()
getString(R.string.scope_other) -> otherItems()
getString(R.string.about_module) -> aboutItems()
menuName() -> menuItems()
else -> mainItems()
}
}
}