Merge pull request #7 from 577fkj/main

优化界面以及大小
This commit is contained in:
LittleTurtle2333
2022-02-18 20:45:35 +08:00
committed by GitHub
16 changed files with 223 additions and 383 deletions

View File

@ -18,6 +18,8 @@ jobs:
distribution: 'temurin'
cache: gradle
- name: Clone UI
run: git clone https://github.com/577fkj/blockmiui.git
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "blockmiui"]
path = blockmiui
url = https://github.com/577fkj/blockmiui.git

View File

@ -1,49 +0,0 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.lt2333.simplicitytools"
minSdk 30
targetSdk 32
versionCode 10
versionName '1.0.9'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
packagingOptions {
dex {
useLegacyPackaging true
}
}
android.applicationVariants.all {
variant ->
variant.outputs.all {
outputFileName = "Simplicity_Tools_Xposed-${variant.versionName}-${variant.name}.apk"
}
}
}
dependencies {
compileOnly 'de.robv.android.xposed:api:82'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'com.google.android.material:material:1.5.0'
}

63
app/build.gradle.kts Normal file
View File

@ -0,0 +1,63 @@
import com.android.build.gradle.internal.api.BaseVariantOutputImpl
plugins {
id("com.android.application")
id("kotlin-android")
}
android {
compileSdk = 31
defaultConfig {
applicationId = "com.lt2333.simplicitytools"
minSdk = 30
targetSdk = 32
versionCode = 10
versionName = "1.0.9"
}
buildTypes {
release {
isMinifyEnabled = true
isZipAlignEnabled = true
isShrinkResources = true
setProguardFiles(
listOf(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.majorVersion
}
packagingOptions {
resources {
excludes += "/META-INF/**"
excludes += "/kotlin/**"
excludes += "/*.txt"
excludes += "/*.bin"
}
dex {
useLegacyPackaging = true
}
}
applicationVariants.all {
outputs.all {
(this as BaseVariantOutputImpl).outputFileName =
"Simplicity_Tools_Xposed-${versionName}-${name}.apk"
}
}
}
dependencies {
//API
compileOnly("de.robv.android.xposed:api:82")
//UI
implementation(project(":blockmiui"))
}

View File

@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

View File

@ -7,8 +7,7 @@
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication">
android:supportsRtl="true" >
<activity
android:name=".activity.SettingsActivity"
android:exported="true"

View File

@ -1,128 +1,172 @@
package com.lt2333.simplicitytools.activity
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.app.AlertDialog
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
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 kotlin.system.exitProcess
class SettingsActivity : AppCompatActivity() {
class SettingsActivity : MIUIActivity() {
private val activity = this
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.settings_activity)
if (savedInstanceState == null) {
supportFragmentManager
.beginTransaction()
.replace(R.id.settings, SettingsFragment())
.commit()
}
supportActionBar?.setDisplayHomeAsUpEnabled(false)
checkLSPosed()
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main, menu)
return super.onCreateOptionsMenu(menu)
super.onCreate(savedInstanceState)
}
@SuppressLint("WorldReadableFiles")
private fun checkLSPosed() {
try {
getSharedPreferences("config", MODE_WORLD_READABLE)
setSP(getSharedPreferences("config", MODE_WORLD_READABLE))
} catch (exception: SecurityException) {
AlertDialog.Builder(this)
.setMessage("您似乎正在使用过时的 LSPosed 版本或 LSPosed 未激活,请更新 LSPosed 或者激活后再试。")
.setCancelable(false)
.setPositiveButton("确定", DialogInterface.OnClickListener { dialogInterface, i ->
android.os.Process.killProcess(android.os.Process.myPid())
})
.show()
isLoad = false
MIUIDialog(this).apply {
setTitle(R.string.Tips)
setMessage("您似乎正在使用过时的 LSPosed 版本或 LSPosed 未激活,请更新 LSPosed 或者激活后再试。")
setCancelable(false)
setRButton("确定") {
exitProcess(0)
}
show()
}
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.reboot -> {
AlertDialog.Builder(this)
.setMessage("确定重启?")
.setPositiveButton(
"",
DialogInterface.OnClickListener { dialogInterface, i ->
val commad = arrayOf("reboot")
ShellUtils.execCommand(commad, true)
})
.setNegativeButton("", null)
.show()
}
R.id.reboot_ui -> {
val commad = arrayOf("killall com.android.systemui")
ShellUtils.execCommand(commad, true)
}
}
return super.onOptionsItemSelected(item)
override fun mainName(): String {
return getString(R.string.app_name)
}
class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
preferenceManager.sharedPreferencesName = "config"
setPreferencesFromResource(R.xml.root_preferences, rootKey)
findPreference<Preference>("verison")!!.summary =
BuildConfig.VERSION_NAME + "(" + BuildConfig.BUILD_TYPE + ")"
}
override fun onPreferenceTreeClick(preference: Preference): Boolean {
when (preference.key) {
"opensource" -> {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/Simplicity_Tools_Xposed")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
override fun mainItems(): ArrayList<BaseView> {
return arrayListOf<BaseView>().apply {
add(TitleTextV(resId = R.string.ui))
add(TextWithSwitchV(TextV(resId = R.string.delete_on_post_notification), SwitchV("delete_on_post_notification")))
add(LineV())
add(TitleTextV(resId = R.string.statusbar))
add(TextWithSwitchV(TextV(resId = R.string.status_bar_time_seconds), SwitchV("status_bar_time_seconds")))
add(TextWithSwitchV(TextV(resId = R.string.status_bar_network_speed_refresh_speed), SwitchV("status_bar_network_speed_refresh_speed")))
add(TextWithSwitchV(TextV(resId = R.string.hide_status_bar_network_speed_second), SwitchV("hide_status_bar_network_speed_second")))
add(TextWithSwitchV(TextV(resId = R.string.remove_the_maximum_number_of_notification_icons), SwitchV("remove_the_maximum_number_of_notification_icons")))
add(LineV())
add(TitleTextV(resId = R.string.status_bar_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_no_sim_icon), SwitchV("hide_no_sim_icon")))
add(TextWithSwitchV(TextV(resId = R.string.hide_wifi_icon), SwitchV("hide_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.home))
add(TextWithSwitchV(TextV(resId = R.string.home_time), SwitchV("home_time")))
add(LineV())
add(TitleTextV(resId = R.string.performance))
add(TextWithSwitchV(TextV(resId = R.string.lock_max_fps), SwitchV("lock_max_fps")))
add(LineV())
add(TitleTextV(resId = R.string.other))
add(TextWithSwitchV(TextV(resId = R.string.disable_flag_secure), SwitchV("disable_flag_secure")))
add(LineV())
add(TitleTextV(resId = R.string.about))
add(TextSummaryV(textId = R.string.opensource, tipsId = R.string.github_url, onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/Simplicity_Tools_Xposed")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
"issues" -> {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/Simplicity_Tools_Xposed/issues")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
}))
add(TextSummaryV(textId = R.string.issues, tipsId = R.string.issues_url, onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/Simplicity_Tools_Xposed/issues")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
"dev_coolapk" -> {
try {
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://u/883441")
)
}))
add(TextSummaryV(textId = R.string.dev_coolapk, tipsId = R.string.dev_coolapk_name, onClickListener = {
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)
}
)
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)
}
}
return super.onPreferenceTreeClick(preference)
}))
add(TextSummaryV(textId = R.string.verison, tips = "${BuildConfig.VERSION_NAME}(${BuildConfig.BUILD_TYPE})"))
}
}
override fun menuName(): String {
return getString(R.string.menu)
}
override fun menuItems(): ArrayList<BaseView> {
return ArrayList<BaseView>().apply {
add(TextSummaryV(textId = R.string.reboot_ui, onClickListener = {
MIUIDialog(activity).apply {
setTitle(R.string.Tips)
setMessage("确定重启系统界面?")
setLButton("取消") {
dismiss()
}
setRButton("确定") {
val command = arrayOf("killall com.android.systemui")
ShellUtils.execCommand(command, true)
dismiss()
}
show()
}
}))
add(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()
}
}))
}
}
override fun getItems(item: String): ArrayList<BaseView> {
return when (item) {
/** 必须写这两个 不然会出错 */
menuName() -> menuItems()
else -> mainItems()
}
}
}

View File

@ -1,9 +0,0 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/settings"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/reboot"
android:title="@string/reboot" />
<item
android:id="@+id/reboot_ui"
android:title="@string/reboot_ui" />
</menu>

View File

@ -1,16 +1 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
<resources />

View File

@ -51,5 +51,7 @@
<string name="main_switch">总开关</string>
<string name="hide_gps_icon">隐藏 GPS 图标</string>
<string name="hide_status_bar_network_speed_second">隐藏网速(/s单位</string>
<string name="menu">菜单</string>
<string name="Tips">提示</string>
</resources>

View File

@ -1,23 +1 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
<style name="Theme.MyApplication.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="Theme.MyApplication.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.MyApplication.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
<resources />

View File

@ -1,171 +0,0 @@
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="main_switch"
app:title="@string/main_switch"
app:defaultValue="true"/>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/ui">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="delete_on_post_notification"
app:title="@string/delete_on_post_notification" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/statusbar">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="status_bar_time_seconds"
app:title="@string/status_bar_time_seconds" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="status_bar_network_speed_refresh_speed"
app:title="@string/status_bar_network_speed_refresh_speed" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_status_bar_network_speed_second"
app:title="@string/hide_status_bar_network_speed_second" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="remove_the_maximum_number_of_notification_icons"
app:title="@string/remove_the_maximum_number_of_notification_icons" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/status_bar_icon">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_gps_icon"
app:title="@string/hide_gps_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_bluetooth_icon"
app:title="@string/hide_bluetooth_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_bluetooth_battery_icon"
app:title="@string/hide_bluetooth_battery_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_small_hd_icon"
app:title="@string/hide_small_hd_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_big_hd_icon"
app:title="@string/hide_big_hd_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_hd_no_service_icon"
app:title="@string/hide_hd_no_service_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_sim_one_icon"
app:title="@string/hide_sim_one_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_sim_two_icon"
app:title="@string/hide_sim_two_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_no_sim_icon"
app:title="@string/hide_no_sim_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_wifi_icon"
app:title="@string/hide_wifi_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_hotspot_icon"
app:title="@string/hide_hotspot_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_vpn_icon"
app:title="@string/hide_vpn_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_airplane_icon"
app:title="@string/hide_airplane_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_alarm_icon"
app:title="@string/hide_alarm_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_headset_icon"
app:title="@string/hide_headset_icon" />
<SwitchPreference
app:iconSpaceReserved="false"
app:key="hide_volume_zen_icon"
app:title="@string/hide_volume_zen_icon" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/home">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="home_time"
app:title="@string/home_time" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/performance">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="lock_max_fps"
app:title="@string/lock_max_fps" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/other">
<SwitchPreference
app:iconSpaceReserved="false"
app:key="disable_flag_secure"
app:title="@string/disable_flag_secure" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/about">
<PreferenceScreen
app:key="opensource"
app:iconSpaceReserved="false"
app:summary="@string/github_url"
app:title="@string/opensource">
</PreferenceScreen>
<PreferenceScreen
app:key="issues"
app:iconSpaceReserved="false"
app:summary="@string/issues_url"
app:title="@string/issues">
</PreferenceScreen>
<PreferenceScreen
app:key="dev_coolapk"
app:iconSpaceReserved="false"
app:summary="@string/dev_coolapk_name"
app:title="@string/dev_coolapk">
</PreferenceScreen>
<PreferenceScreen
app:key="verison"
app:iconSpaceReserved="false"
app:title="@string/verison">
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>

1
blockmiui Submodule

Submodule blockmiui added at 55a6ff4690

View File

@ -5,14 +5,14 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.1'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'
classpath("com.android.tools.build:gradle:7.0.4")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
// in the individual module build.gradle.kts files
}
}
task clean(type: Delete) {
delete rootProject.buildDir
tasks.register("Delete", Delete::class) {
delete(rootProject.buildDir)
}

View File

@ -3,8 +3,9 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven{ url 'https://api.xposed.info' }
jcenter() // Warning: this repository is going to shut down soon
}
}
rootProject.name = "Simplicity Tools"
include ':app'
include(":app")
include(":blockmiui")