Compare commits

13 Commits

Author SHA1 Message Date
乌堆小透明
0a6b114354 修复双排网速图标显示异常 2022-03-20 17:52:17 +08:00
乌堆小透明
f6653aef78 New Crowdin updates (#96)
* New translations strings.xml (Russian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Romanian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Turkish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Romanian)
[ci skip] New translations from Crowdin
2022-03-20 17:51:51 +08:00
乌堆小透明
1f7dbba6a8 Merge remote-tracking branch 'origin/main' 2022-03-20 17:00:00 +08:00
乌堆小透明
87a2f04b65 Update version to 1.4.9 2022-03-20 16:57:39 +08:00
乌堆小透明
25dba39daf New translations strings.xml (Chinese Simplified) (#95)
[ci skip] New translations from Crowdin
2022-03-20 16:56:52 +08:00
乌堆小透明
7ad1bcb763 New translations strings.xml (Chinese Simplified) (#94)
[ci skip] New translations from Crowdin
2022-03-20 16:53:26 +08:00
乌堆小透明
1aee169089 New Crowdin updates (#93)
* New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Indonesian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2022-03-20 16:49:46 +08:00
乌堆小透明
8eb42fdf38 update strings.xml 2022-03-20 16:44:47 +08:00
乌堆小透明
fddf3ffb76 update strings.xml 2022-03-20 16:44:11 +08:00
乌堆小透明
6e4e8ed97b Merge remote-tracking branch 'origin/main' 2022-03-20 16:40:45 +08:00
乌堆小透明
e5e64821a8 新增双排网速 2022-03-20 16:40:35 +08:00
乌堆小透明
8ab8330c94 New Crowdin updates (#91) 2022-03-20 15:08:40 +08:00
乌堆小透明
7c8f061c30 双排时钟最大大小提升至9 2022-03-20 14:09:08 +08:00
15 changed files with 328 additions and 30 deletions

View File

@@ -12,8 +12,8 @@ android {
applicationId = "com.lt2333.simplicitytools"
minSdk = 31
targetSdk = 32
versionCode = 49
versionName = "1.4.8"
versionCode = 51
versionName = "1.5.0"
}
buildTypes {

View File

@@ -13,6 +13,7 @@ import android.widget.Switch
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.OwnSP
import cn.fkj233.ui.activity.data.MIUIPopupData
import cn.fkj233.ui.activity.view.*
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
@@ -497,15 +498,6 @@ class SettingsActivity : MIUIActivity() {
menuButton.visibility = View.VISIBLE
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(
@@ -515,15 +507,6 @@ class SettingsActivity : MIUIActivity() {
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(
@@ -719,7 +702,7 @@ class SettingsActivity : MIUIActivity() {
)
add(
SeekBarWithTextV(
"status_bar_clock_double_line_size", 0, 8, 0,
"status_bar_clock_double_line_size", 0, 9, 0,
dataBindingRecv = custom_clock_binding.binding.getRecv(2)
)
)
@@ -734,6 +717,114 @@ class SettingsActivity : MIUIActivity() {
)
)
)
add(LineV())
add(TitleTextV(resId = R.string.status_bar_network_speed))
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_status_bar_network_speed_second,
tipsId = R.string.hide_status_bar_network_speed_second_summary
),
SwitchV("hide_status_bar_network_speed_second")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_network_speed_splitter),
SwitchV("hide_network_speed_splitter")
)
)
val status_bar_dual_row_network_speed_binding = getDataBinding(
SPUtils.getBoolean(
activity,
"status_bar_dual_row_network_speed",
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.status_bar_dual_row_network_speed,
tipsId = R.string.status_bar_dual_row_network_speed_summary
),
SwitchV(
"status_bar_dual_row_network_speed",
dataBindingSend = status_bar_dual_row_network_speed_binding.bindingSend
)
)
)
add(
TextWithSpinnerV(
TextV(resId = R.string.status_bar_network_speed_dual_row_icon),
SpinnerV(
arrayListOf<MIUIPopupData>().apply {
add(MIUIPopupData(getString(R.string.none)) {
OwnSP.ownSP.edit().run {
putString(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
apply()
}
})
add(MIUIPopupData("▲▼") {
OwnSP.ownSP.edit().run {
putString("status_bar_network_speed_dual_row_icon", "▲▼")
apply()
}
})
add(MIUIPopupData("△▽") {
OwnSP.ownSP.edit().run {
putString("status_bar_network_speed_dual_row_icon", "△▽")
apply()
}
})
add(MIUIPopupData("↑↓") {
OwnSP.ownSP.edit().run {
putString("status_bar_network_speed_dual_row_icon", "↑↓")
apply()
}
})
}, "${
OwnSP.ownSP.getString(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
}"
),
dataBindingRecv = status_bar_dual_row_network_speed_binding.binding.getRecv(2)
)
)
add(
TextV(
resId = R.string.status_bar_network_speed_dual_row_size,
dataBindingRecv = status_bar_dual_row_network_speed_binding.binding.getRecv(2)
)
)
add(
SeekBarWithTextV(
"status_bar_network_speed_dual_row_size",
0,
9,
0,
dataBindingRecv = status_bar_dual_row_network_speed_binding.binding.getRecv(2)
)
)
add(LineV())
@@ -1252,13 +1343,6 @@ class SettingsActivity : MIUIActivity() {
SwitchV("hide_zen_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_network_speed_splitter),
SwitchV("hide_network_speed_splitter")
)
)
}
}

View File

@@ -56,6 +56,8 @@ class SystemUI : IXposedHookLoadPackage {
StatusBarDoubleTapToSleep().handleLoadPackage(lpparam)
//旧版快速设置自定义
OldQSCustom().handleLoadPackage(lpparam)
//双排网速
DoubleLineNetworkSpeed().handleLoadPackage(lpparam)
}
}

View File

@@ -0,0 +1,131 @@
package com.lt2333.simplicitytools.hook.app.systemui
import android.content.Context
import android.net.TrafficStats
import android.util.AttributeSet
import android.util.TypedValue
import android.view.Gravity
import android.widget.TextView
import com.github.kyuubiran.ezxhelper.init.InitFields
import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.util.*
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
import java.text.DecimalFormat
class DoubleLineNetworkSpeed : IXposedHookLoadPackage {
private var mLastTotalUp: Long = 0
private var mLastTotalDown: Long = 0
private var lastTimeStampTotalUp: Long = 0
private var lastTimeStampTotalDown: Long = 0
private var upIcon = ""
private var downIcon = ""
private val getDualSize = XSPUtils.getInt("status_bar_network_speed_dual_row_size", 0)
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
val none = InitFields.moduleRes.getString(R.string.none)
if (XSPUtils.getString("status_bar_network_speed_dual_row_icon", none) != none) {
upIcon = XSPUtils.getString("status_bar_network_speed_dual_row_icon", none)
?.firstOrNull()?.plus(" ") ?: String()
downIcon = XSPUtils.getString("status_bar_network_speed_dual_row_icon", none)
?.lastOrNull()?.plus(" ") ?: String()
}
hasEnable("status_bar_dual_row_network_speed") {
"com.android.systemui.statusbar.views.NetworkSpeedView".findClass(lpparam.classLoader)
.hookAfterConstructor(Context::class.java, AttributeSet::class.java) {
val mView = it.thisObject as TextView
mView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 7f)
if (getDualSize!=0){
mView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getDualSize.toFloat())
}
mView.isSingleLine = false
mView.setLineSpacing(0F, 0.8F)
mView.gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL
}
"com.android.systemui.statusbar.policy.NetworkSpeedController".hookBeforeMethod(
lpparam.classLoader,
"formatSpeed",
Context::class.java,
Long::class.java
) {
it.result = "${upIcon}${getTotalUpSpeed()}\n${downIcon}${getTotalDownloadSpeed()}"
}
}
}
//获取总的上行速度
fun getTotalUpSpeed(): String {
var totalUpSpeed = 0F
val currentTotalTxBytes = TrafficStats.getTotalTxBytes()
val nowTimeStampTotalUp = System.currentTimeMillis()
//计算上传速度
val bytes =
(currentTotalTxBytes - mLastTotalUp) * 1000 / (nowTimeStampTotalUp - lastTimeStampTotalUp).toFloat()
var unit = ""
if (bytes >= 1048576) {
totalUpSpeed =
DecimalFormat("0.0").format(bytes / 1048576).toFloat()
unit = "MB/s"
} else {
totalUpSpeed =
DecimalFormat("0.0").format(bytes / 1024).toFloat()
unit = "KB/s"
}
//保存当前的流量总和和上次的时间戳
mLastTotalUp = currentTotalTxBytes
lastTimeStampTotalUp = nowTimeStampTotalUp
if (totalUpSpeed >= 100) {
return "" + totalUpSpeed.toInt() + unit
} else {
return "" + totalUpSpeed + unit
}
}
//获取总的下行速度
fun getTotalDownloadSpeed(): String {
var totalDownSpeed = 0F
val currentTotalRxBytes = TrafficStats.getTotalRxBytes()
val nowTimeStampTotalDown = System.currentTimeMillis()
//计算下行速度
val bytes =
(currentTotalRxBytes - mLastTotalDown) * 1000 / (nowTimeStampTotalDown - lastTimeStampTotalDown).toFloat()
var unit = ""
if (bytes >= 1048576) {
totalDownSpeed =
DecimalFormat("0.0").format(bytes / 1048576).toFloat()
unit = "MB/s"
} else {
totalDownSpeed =
DecimalFormat("0.0").format(bytes / 1024).toFloat()
unit = "KB/s"
}
//保存当前的流量总和和上次的时间戳
mLastTotalDown = currentTotalRxBytes
lastTimeStampTotalDown = nowTimeStampTotalDown
if (totalDownSpeed >= 100) {
return "" + totalDownSpeed.toInt() + unit
} else {
return "" + totalDownSpeed + unit
}
}
}

View File

@@ -51,6 +51,7 @@ class StatusBarTimeCustomization : IXposedHookLoadPackage {
clock_double_line_size = getClockDoubleSize.toFloat()
}
textV.setTextSize(TypedValue.COMPLEX_UNIT_DIP, clock_double_line_size)
textV.setLineSpacing(0F,0.8F)
} else {
if (getClockSize != 0) {
val clock_size = getClockSize.toFloat()

View File

@@ -25,6 +25,13 @@ object XSPUtils {
}
return prefs.getFloat(key, defValue)
}
fun getString(key: String, defValue: String): String? {
if (prefs.hasFileChanged()) {
prefs.reload()
}
return prefs.getString(key, defValue)
}
}
inline fun hasEnable(key: String, default: Boolean = false, noinline extraCondition: (() -> Boolean)? = null, crossinline block: () -> Unit) {

View File

@@ -161,4 +161,10 @@
<string name="hide_icon">Ocultar Iconos</string>
<string name="double_tap_to_sleep">Doble toque para bloquear</string>
<string name="home_double_tap_to_sleep_summary">Doble toque en espacio en blanco para bloquear</string>
<string name="old_quick_settings_panel">Panel de ajustes rápido antiguo</string>
<string name="old_qs_custom_switch">Filas y columnas personalizadas</string>
<string name="qs_custom_columns_unexpanded">Columnas (contraídas)</string>
<string name="qs_custom_rows">Filas</string>
<string name="qs_custom_columns">Columnas</string>
<string name="qs_custom_rows_horizontal">Filas (horizontal)</string>
</resources>

View File

@@ -161,4 +161,10 @@
<string name="hide_icon">Sembunyikan ikon</string>
<string name="double_tap_to_sleep">Ketuk ganda untuk tidur</string>
<string name="home_double_tap_to_sleep_summary">Ketuk ganda pada layar kosong untuk membuat perangkat tidur</string>
<string name="old_quick_settings_panel">Panel lama pengaturan cepat</string>
<string name="old_qs_custom_switch">Kustomisasi jumlah kolom dan baris</string>
<string name="qs_custom_columns_unexpanded">Kolom (tidak diperluas)</string>
<string name="qs_custom_rows">Baris</string>
<string name="qs_custom_columns">Kolom</string>
<string name="qs_custom_rows_horizontal">Baris (Horizontal)</string>
</resources>

View File

@@ -167,4 +167,10 @@
<string name="qs_custom_rows">Rânduri</string>
<string name="qs_custom_columns">Coloane</string>
<string name="qs_custom_rows_horizontal">Rânduri (orizontal)</string>
<string name="status_bar_dual_row_network_speed">Viteză rețea în linie dublă</string>
<string name="status_bar_dual_row_network_speed_summary">Afișare viteză rețea în sus și în jos</string>
<string name="status_bar_network_speed">Viteza rețelei în bara de stare</string>
<string name="status_bar_network_speed_dual_row_size">Dimensiune rând dublu (0: nu se modifică)</string>
<string name="status_bar_network_speed_dual_row_icon">Pictogramă rând dublu</string>
<string name="none">Nimic</string>
</resources>

View File

@@ -165,4 +165,16 @@
<string name="hide_icon">Скрытие иконок строки состояния</string>
<string name="double_tap_to_sleep">Двойное нажатие для отключения экрана</string>
<string name="home_double_tap_to_sleep_summary">Дважды коснитесь экрана для блокировки устройства</string>
<string name="old_quick_settings_panel">Настройки старой шторки</string>
<string name="old_qs_custom_switch">Настраиваемые строки и столбцы</string>
<string name="qs_custom_columns_unexpanded">Столбцы (нерасширенные)</string>
<string name="qs_custom_rows">Строки</string>
<string name="qs_custom_columns">Столбцы</string>
<string name="qs_custom_rows_horizontal">Строки (горизонтальные)</string>
<string name="status_bar_dual_row_network_speed">Скорость сети в 2 строки</string>
<string name="status_bar_dual_row_network_speed_summary">Смещение скорости сети по вертикали</string>
<string name="status_bar_network_speed">Скорость сети в строке состояния</string>
<string name="status_bar_network_speed_dual_row_size">Размер скорости сети в 2 строки (0: не изменять)</string>
<string name="status_bar_network_speed_dual_row_icon">Иконка двойной скорости сети</string>
<string name="none">Нет</string>
</resources>

View File

@@ -14,7 +14,7 @@
<string name="reboot">Sistemi Yeniden Başlat </string>
<!--Status bar icons-->
<string name="status_bar_icon">Durum çubuğu simgeleri</string>
<string name="hide_no_sim_icon">Hide No SIM icon</string>
<string name="hide_no_sim_icon">SIM yok simgesini gizle</string>
<string name="hide_sim_one_icon">SIM Kart 1 simgesini gizle</string>
<string name="hide_sim_two_icon">SIM Kart 2 simgesini gizle</string>
<string name="hide_vpn_icon">VPN simgesini gizle</string>
@@ -168,4 +168,10 @@
<string name="qs_custom_rows">satırlar</string>
<string name="qs_custom_columns">sütunlar</string>
<string name="qs_custom_rows_horizontal">Satırlar (yatay)</string>
<string name="status_bar_dual_row_network_speed">Çift sıra ağ hızı</string>
<string name="status_bar_dual_row_network_speed_summary">Yukarı ve aşağı ağ hızı göstergesi</string>
<string name="status_bar_network_speed">Durum çubuğu ağ hızı</string>
<string name="status_bar_network_speed_dual_row_size">Çift sıra boyutu (0: değişmez)</string>
<string name="status_bar_network_speed_dual_row_icon">Çift satır simgesi</string>
<string name="none">Hiçbiri</string>
</resources>

View File

@@ -67,6 +67,7 @@
<string name="third_party_open_source_statement">Tuyên Bố Về Mã Nguồn Mở Của Bên Thứ Ba</string>
<string name="corepacth">Gỡ bỏ các hạn chế</string>
<string name="corepacth_summary">Hỗ trợ hạ cấp/khác chữ ký/không ký cài đặt</string>
<string name="failed_after_restart">Nó sẽ được khôi phục sau khi khởi động lại hệ thống</string>
<string name="battery_optimization">Tối ưu hóa pin</string>
<string name="app_coolapk_url">Tới và đánh giá chúng tôi 5 sao</string>
<string name="app_coolapk_url_summary">Điều này có thể giúp chúng tôi dễ được biết tới hơn</string>
@@ -95,12 +96,30 @@
<string name="lock_one_hundred_summary">Đặt 100 điểm cho ứng dụng Bảo mật và chặn nút Tối ưu hóa</string>
<string name="unlock_unlimited_cropping_summary">Không nhận giới hạn tối thiểu khi cắt ảnh bởi MIUI</string>
<string name="hide_wifi_activity_icon">Ẩn biểu tượng hoạt động WIFI</string>
<string name="show_weather_main_switch">Hiện thời tiết - Công tắc chính</string>
<string name="lock_screen">Màn hình khoá</string>
<string name="notification_center">Trung tâm Thông báo</string>
<string name="show_city">Hiện thành phố</string>
<string name="control_center">Trung tâm Điều khiển</string>
<string name="not_support">Có vẻ bạn đang dùng LSPosed bản cũ hoặc LSPosed chưa được kích hoạt, vui lòng cập nhật hoặc kích hoạt LSPosed rồi thử lại.</string>
<string name="matters_needing_attention_context">Nên khởi động lại điện thoại sau lần kích hoạt hoặc cập nhật đầu tiên\nHầu hết các thay đổi yêu cầu khởi động lại ở góc trên cùng bên phải để có hiệu lực</string>
<string name="are_you_sure_reboot">Bạn chắc chắn muốn khởi động lại?</string>
<string name="cancel">Hủy</string>
<string name="are_you_sure_reboot_scope">Bạn có muốn khởi động lại tất cả phạm vi?</string>
<string name="hide_battery_charging_icon">Ẩn biểu tượng sạc</string>
<string name="hide_wifi_standard_icon">Ẩn biểu tượng WIFI tiêu chuẩn</string>
<string name="status_bar_time_center">Trung tâm thời gian thanh trạng thái</string>
<string name="layout_compatibility_mode">Chế độ tương thích</string>
<string name="left_margin">Lề trái (0: Tự động)</string>
<string name="right_margin">Lề phải (0: Tự động)</string>
<string name="updater">Trình cập nhật</string>
<string name="settings">Cài đặt</string>
<string name="remove_ad">Gỡ quảng cáo</string>
<string name="remove_thememanager_ads">Gỡ bỏ quảng cáo cho Trình quản lí chủ đề</string>
<string name="max_wallpaper_scale">Tỉ lệ hình nền tối đa</string>
<string name="def">"Mặc định: "</string>
<string name="current">Hiện tại:</string>
<string name="participate_in_translation">Tham gia dịch</string>
<string name="participate_in_translation_summary">Giúp chúng tôi dịch ứng dụng sang ngôn ngữ của bạn</string>
<string name="hide_icon">Ẩn biểu tượng</string>
</resources>

View File

@@ -64,7 +64,7 @@
<string name="status_bar_time_double_hour">显示时辰</string>
<string name="custom_clock_switch">自定义时钟-总开关</string>
<string name="status_bar_time_period">显示时段</string>
<string name="status_bar_time_double_line">显示</string>
<string name="status_bar_time_double_line">显示</string>
<string name="status_bar_clock_size">时钟大小0不更改</string>
<string name="status_bar_clock_double_line_size">双排大小0不更改</string>
<string name="matters_needing_attention">功能无法生效?</string>
@@ -167,4 +167,10 @@
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal">行 (横向)</string>
<string name="status_bar_dual_row_network_speed">双排网络速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下行网络速度显示</string>
<string name="status_bar_network_speed">状态栏网络速度</string>
<string name="status_bar_network_speed_dual_row_size">双排大小0不更改</string>
<string name="status_bar_network_speed_dual_row_icon">双排图标</string>
<string name="none"></string>
</resources>

View File

@@ -167,4 +167,10 @@
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal">行 (橫向)</string>
<string name="status_bar_dual_row_network_speed">雙行網路速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下行網路速度顯示</string>
<string name="status_bar_network_speed">狀態欄網路速度</string>
<string name="status_bar_network_speed_dual_row_size">雙排大小0不更改</string>
<string name="status_bar_network_speed_dual_row_icon">雙行圖示</string>
<string name="none"></string>
</resources>

View File

@@ -171,4 +171,10 @@
<string name="qs_custom_rows">Rows</string>
<string name="qs_custom_columns">Columns</string>
<string name="qs_custom_rows_horizontal">Rows (horizontal)</string>
<string name="status_bar_dual_row_network_speed">Dual row network speed</string>
<string name="status_bar_dual_row_network_speed_summary">Up and down network speed display</string>
<string name="status_bar_network_speed">Status bar network speed</string>
<string name="status_bar_network_speed_dual_row_size">Dual row size (0: do not change)</string>
<string name="status_bar_network_speed_dual_row_icon">Dual row icon</string>
<string name="none">None</string>
</resources>