diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index 1da67451..f46a418e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -1 +1 @@ -@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.view.View import android.widget.Switch 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.SPUtils 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(R.string.not_support) setCancelable(false) setRButton(R.string.Done) { 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 { return arrayListOf().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( R.string.matters_needing_attention_context ) 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 { return ArrayList().apply { add( TextSummaryArrowV( TextSummaryV(textId = R.string.reboot, onClickListener = { MIUIDialog(activity).apply { setTitle(R.string.Tips) setMessage(R.string.are_you_sure_reboot) setLButton(R.string.cancel) { dismiss() } setRButton(R.string.Done) { 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(R.string.are_you_sure_reboot_scope) setLButton(R.string.cancel) { dismiss() } setRButton(R.string.Done) { 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 { return ArrayList().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 { return ArrayList().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 { return ArrayList().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_layout)) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.status_bar_time_center, tipsId = R.string.status_bar_layout_summary ), SwitchV("status_bar_time_center") ) ) val layout_compatibility_mode_binding = getDataBinding( SPUtils.getBoolean( activity, "layout_compatibility_mode", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary ), SwitchV( "layout_compatibility_mode", dataBindingSend = layout_compatibility_mode_binding.bindingSend ) ) ) add( TextV( resId = R.string.left_margin, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_left_margin", 0, 300, 0, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.right_margin, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_right_margin", 0, 300, 0, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add(LineV()) add(TitleTextV(resId = R.string.status_bar_clock_format)) val custom_clock_binding = getDataBinding( SPUtils.getBoolean( activity, "custom_clock_switch", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextWithSwitchV( TextV(resId = R.string.custom_clock_switch, colorId = R.color.purple_700), SwitchV( "custom_clock_switch", dataBindingSend = custom_clock_binding.bindingSend ) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_year), SwitchV("status_bar_time_year"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_month), SwitchV("status_bar_time_month"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_day), SwitchV("status_bar_time_day"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_week), SwitchV("status_bar_time_week"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_double_hour), SwitchV("status_bar_time_double_hour"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_period), SwitchV("status_bar_time_period", true), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_seconds), SwitchV("status_bar_time_seconds"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_hide_space), SwitchV("status_bar_time_hide_space"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_double_line), SwitchV("status_bar_time_double_line"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.status_bar_clock_size, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_clock_size", 0, 18, 0, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.status_bar_clock_double_line_size, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_clock_double_line_size", 0, 8, 0, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) 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_battery_charging_icon), SwitchV("hide_battery_charging_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_wifi_standard_icon), SwitchV("hide_wifi_standard_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.notification_center)) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_weather_main_switch, colorId = R.color.purple_700 ), SwitchV("notification_weather") ) ) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_city, ), SwitchV("notification_weather_city") ) ) add(LineV()) add(TitleTextV(resId = R.string.control_center)) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_weather_main_switch, colorId = R.color.purple_700, tipsId = R.string.control_center_weather_summary ), SwitchV("control_center_weather") ) ) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_city, ), SwitchV("control_center_weather_city") ) ) add(LineV()) add(TitleTextV(resId = R.string.lock_screen)) 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 { return ArrayList().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, tipsId = R.string.lock_max_fps_summary ), 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 { 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() } } } \ No newline at end of file +@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.view.View import android.widget.Switch 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.SPUtils 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(R.string.not_support) setCancelable(false) setRButton(R.string.Done) { 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 { return arrayListOf().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( R.string.matters_needing_attention_context ) 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 { return ArrayList().apply { add( TextSummaryArrowV( TextSummaryV(textId = R.string.reboot, onClickListener = { MIUIDialog(activity).apply { setTitle(R.string.Tips) setMessage(R.string.are_you_sure_reboot) setLButton(R.string.cancel) { dismiss() } setRButton(R.string.Done) { 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(R.string.are_you_sure_reboot_scope) setLButton(R.string.cancel) { dismiss() } setRButton(R.string.Done) { 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 { return ArrayList().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 { return ArrayList().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 { return ArrayList().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_layout)) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.status_bar_time_center, tipsId = R.string.status_bar_layout_summary ), SwitchV("status_bar_time_center") ) ) val layout_compatibility_mode_binding = getDataBinding( SPUtils.getBoolean( activity, "layout_compatibility_mode", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary ), SwitchV( "layout_compatibility_mode", dataBindingSend = layout_compatibility_mode_binding.bindingSend ) ) ) add( TextV( resId = R.string.left_margin, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_left_margin", 0, 300, 0, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.right_margin, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_right_margin", 0, 300, 0, dataBindingRecv = layout_compatibility_mode_binding.binding.getRecv(2) ) ) add(LineV()) add(TitleTextV(resId = R.string.status_bar_clock_format)) val custom_clock_binding = getDataBinding( SPUtils.getBoolean( activity, "custom_clock_switch", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextWithSwitchV( TextV(resId = R.string.custom_clock_switch, colorId = R.color.purple_700), SwitchV( "custom_clock_switch", dataBindingSend = custom_clock_binding.bindingSend ) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_year), SwitchV("status_bar_time_year"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_month), SwitchV("status_bar_time_month"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_day), SwitchV("status_bar_time_day"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_week), SwitchV("status_bar_time_week"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_double_hour), SwitchV("status_bar_time_double_hour"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_period), SwitchV("status_bar_time_period", true), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_seconds), SwitchV("status_bar_time_seconds"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_hide_space), SwitchV("status_bar_time_hide_space"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextWithSwitchV( TextV(resId = R.string.status_bar_time_double_line), SwitchV("status_bar_time_double_line"), dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.status_bar_clock_size, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_clock_size", 0, 18, 0, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( TextV( resId = R.string.status_bar_clock_double_line_size, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) add( SeekBarWithTextV( "status_bar_clock_double_line_size", 0, 8, 0, dataBindingRecv = custom_clock_binding.binding.getRecv(2) ) ) 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_battery_charging_icon), SwitchV("hide_battery_charging_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_wifi_standard_icon), SwitchV("hide_wifi_standard_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.notification_center)) val show_weather_main_switch_binding = getDataBinding( SPUtils.getBoolean( activity, "notification_weather", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_weather_main_switch, colorId = R.color.purple_700 ), SwitchV( "notification_weather", dataBindingSend = show_weather_main_switch_binding.bindingSend ) ) ) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_city, ), SwitchV("notification_weather_city"), dataBindingRecv = show_weather_main_switch_binding.binding.getRecv(2) ) ) add(LineV()) add(TitleTextV(resId = R.string.control_center)) val control_center_weather_binding = getDataBinding( SPUtils.getBoolean( activity, "control_center_weather", false ) ) { view, flags, data -> when (flags) { 1 -> (view as Switch).isEnabled = data as Boolean 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_weather_main_switch, colorId = R.color.purple_700, tipsId = R.string.control_center_weather_summary ), SwitchV( "control_center_weather", dataBindingSend = control_center_weather_binding.bindingSend ) ) ) add( TextSummaryWithSwitchV( TextSummaryV( textId = R.string.show_city, ), SwitchV("control_center_weather_city"), dataBindingRecv = control_center_weather_binding.binding.getRecv(2) ) ) add(LineV()) add(TitleTextV(resId = R.string.lock_screen)) 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 { return ArrayList().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, tipsId = R.string.lock_max_fps_summary ), 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 { 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() } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt index fdd05469..48c9bb33 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt @@ -18,11 +18,26 @@ import java.util.* class StatusBarTimeCustomization : IXposedHookLoadPackage { + + val isYear = XSPUtils.getBoolean("status_bar_time_year", false) + val isMonth = XSPUtils.getBoolean("status_bar_time_month", false) + val isDay = XSPUtils.getBoolean("status_bar_time_day", false) + val isWeek = XSPUtils.getBoolean("status_bar_time_week", false) + val isHideSpace = XSPUtils.getBoolean("status_bar_time_hide_space", false) + val isDoubleLine = XSPUtils.getBoolean("status_bar_time_double_line", false) + val isSecond = XSPUtils.getBoolean("status_bar_time_seconds", false) + val isDoubleHour = XSPUtils.getBoolean("status_bar_time_double_hour", false) + val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true) + val getClockSize = XSPUtils.getInt("status_bar_clock_size", 0) + val isOpen = XSPUtils.getBoolean("custom_clock_switch", false) + val getClockDoubleSize = XSPUtils.getInt("status_bar_clock_double_line_size", 0) + + var now_time: Date? = null var str = "" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - if (XSPUtils.getBoolean("custom_clock_switch", false)) { + if (isOpen) { var c: Context? = null val classIfExists = XposedHelpers.findClassIfExists( "com.android.systemui.statusbar.views.MiuiClock", @@ -39,12 +54,12 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { val textV = param.thisObject as TextView textV.isSingleLine = false - if (XSPUtils.getBoolean("status_bar_time_double_line", false)) { + if (isDoubleLine) { str = "\n" var clock_double_line_size = 7F - if (XSPUtils.getInt("status_bar_clock_double_line_size", 0) != 0) { + if (getClockDoubleSize != 0) { clock_double_line_size = - XSPUtils.getInt("status_bar_clock_double_line_size", 0) + getClockDoubleSize .toFloat() } textV.setTextSize( @@ -52,9 +67,9 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { clock_double_line_size ) } else { - if (XSPUtils.getInt("status_bar_clock_size", 0) != 0) { + if (getClockSize != 0) { val clock_size = - XSPUtils.getInt("status_bar_clock_size", 0).toFloat() + getClockSize.toFloat() textV.setTextSize(TypedValue.COMPLEX_UNIT_DIP, clock_size) } } @@ -95,10 +110,7 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { ) now_time = Calendar.getInstance().time - textV.text = - getYear() + getMonth() + getDay() + getDateSpace() + getWeek() + str + getDoubleHour() + getTime( - t - ) + getSecond() + textV.text = getDate(c!!, t) + str + getTime(c!!, t) } } catch (e: Exception) { @@ -108,86 +120,100 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { } } - @SuppressLint("SimpleDateFormat") - private fun getYear(): String { - if (XSPUtils.getBoolean("status_bar_time_year", false)) { - return SimpleDateFormat("YY年").format(now_time) - } - return "" - } @SuppressLint("SimpleDateFormat") - private fun getMonth(): String { - if (XSPUtils.getBoolean("status_bar_time_month", false)) { - return SimpleDateFormat("M月").format(now_time) - } - return "" - } + private fun getDate(context: Context, t: String): String { + var DatePattern = "" + val isZh = isZh(context) - @SuppressLint("SimpleDateFormat") - private fun getDay(): String { - if (XSPUtils.getBoolean("status_bar_time_day", false)) { - return SimpleDateFormat("d日").format(now_time) - } - return "" - } - - @SuppressLint("SimpleDateFormat") - private fun getSecond(): String { - if (XSPUtils.getBoolean("status_bar_time_seconds", false)) { - return SimpleDateFormat(":ss").format(now_time) - } - return "" - } - - @SuppressLint("SimpleDateFormat") - private fun getTime(t: String): String { - if (t == "24") { - return getPeriod() + SimpleDateFormat("HH:mm").format(now_time) - } else { - return getPeriod() + SimpleDateFormat("h:mm").format(now_time) - } - } - - @SuppressLint("SimpleDateFormat") - private fun getWeek(): String { - var week = "" - if (XSPUtils.getBoolean("status_bar_time_week", false)) { - week = SimpleDateFormat("E").format(now_time) - if (XSPUtils.getBoolean("status_bar_time_hide_space", false)) { - week += "" + if (isYear) { + if (isZh) { + DatePattern += "YY年" +// if (!isHideSpace) DatePattern = "$DatePattern " } else { - week += " " + DatePattern += "YY" + if (isMonth || isDay) DatePattern += "/" } } - return week + if (isMonth) { + if (isZh) { + DatePattern += "M月" +// if (!isHideSpace) DatePattern = "$DatePattern " + } else { + DatePattern += "M" + if (isDay) DatePattern += "/" + } + } + if (isDay) { + if (isZh) { + DatePattern += "d日" + } else { + DatePattern += "d" + } + } + + if (isWeek) { + if (!isHideSpace) DatePattern = "$DatePattern " + DatePattern += "E" + if (!isDoubleLine && isDoubleHour) { + if (!isHideSpace) DatePattern = "$DatePattern " + } + } + + DatePattern = SimpleDateFormat(DatePattern).format(now_time) + + return DatePattern } @SuppressLint("SimpleDateFormat") - private fun getPeriod(): String { + private fun getTime(context: Context, t: String): String { + var timePattern = "" + val isZh = isZh(context) + timePattern += if (t == "24") "HH:mm" else "h:mm" + if (isSecond) timePattern += ":ss" + + timePattern = SimpleDateFormat(timePattern).format(now_time) + + if (isZh) timePattern = getPeriod(isZh) + timePattern else timePattern += getPeriod(isZh) + + timePattern = getDoubleHour() + timePattern + + return timePattern + } + + @SuppressLint("SimpleDateFormat") + private fun getPeriod(isZh: Boolean): String { var period = "" - if (XSPUtils.getBoolean("status_bar_time_period", true)) { - var now = SimpleDateFormat("HH").format(now_time) - when (now) { - "00", "01", "02", "03", "04", "05" -> { - period = "凌晨" + if (isPeriod) { + if (isZh) { + val now = SimpleDateFormat("HH").format(now_time) + when (now) { + "00", "01", "02", "03", "04", "05" -> { + period = "凌晨" + } + "06", "07", "08", "09", "10", "11" -> { + period = "上午" + } + "12" -> { + period = "中午" + } + "13", "14", "15", "16", "17" -> { + period = "下午" + } + "18" -> { + period = "傍晚" + } + "19", "20", "21", "22", "23" -> { + period = "晚上" + } } - "06", "07", "08", "09", "10", "11" -> { - period = "上午" - } - "12" -> { - period = "中午" - } - "13", "14", "15", "16", "17" -> { - period = "下午" - } - "18" -> { - period = "傍晚" - } - "19", "20", "21", "22", "23" -> { - period = "晚上" + } else { + period = SimpleDateFormat("a").format(now_time) + if (!isHideSpace) { + period = " $period" } } + } return period } @@ -195,9 +221,8 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { @SuppressLint("SimpleDateFormat") private fun getDoubleHour(): String { var doubleHour = "" - if (XSPUtils.getBoolean("status_bar_time_double_hour", false)) { - var now = SimpleDateFormat("HH").format(now_time) - + if (isDoubleHour) { + val now = SimpleDateFormat("HH").format(now_time) when (now) { "23", "00" -> { doubleHour = "子时" @@ -236,30 +261,17 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage { doubleHour = "亥时" } } - - if (XSPUtils.getBoolean("status_bar_time_hide_space", false)) { - doubleHour += "" - } else { + if (!isHideSpace) { doubleHour += " " } - } return doubleHour } - private fun getDateSpace(): String { - if (XSPUtils.getBoolean("status_bar_time_year", false) || - XSPUtils.getBoolean("status_bar_time_month", false) || - XSPUtils.getBoolean("status_bar_time_day", false) - ) { - if (XSPUtils.getBoolean("status_bar_time_hide_space", false)) { - return "" - } else { - return " " - } - } - - return "" + fun isZh(context: Context): Boolean { + val locale = context.resources.configuration.locale + val language = locale.language + return language.endsWith("zh") } } \ 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 59affb8a..40ed2eef 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -65,7 +65,7 @@ Hide space Allow screenshot Lock current limit - Display hour + Display chinese twelve hour Custom Clock Switch Display AM/PM Dual row