使用YukiHook重构(未完成)
10
.github/ISSUE_TEMPLATE/----.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 功能请求
|
||||
about: 为这个项目提供好的建议
|
||||
title: "[Feature]"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
请清晰明了地讲述您的建议
|
||||
29
.github/ISSUE_TEMPLATE/bug--.md
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: BUG反馈
|
||||
about: 创建报告使我们更快改进
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**描述一下BUG情况**
|
||||
清晰明了的描述BUG的情况
|
||||
|
||||
**如何复现**
|
||||
复现的步骤
|
||||
1. 去 '...'
|
||||
2. 点击 '....'
|
||||
3. 滚动到 '....'
|
||||
4. 问题出现
|
||||
|
||||
**截图**
|
||||
如果可以,请添加截图以帮助解释您的问题。
|
||||
|
||||
**手机信息:**
|
||||
- 设备型号:
|
||||
- MIUI版本:
|
||||
- Android版本:
|
||||
|
||||
**附加信息**
|
||||
在此处添加有关此问题的任何其他内容。
|
||||
50
.github/workflows/dev.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
name: Dev
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: set up JDK 11
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '11'
|
||||
distribution: 'temurin'
|
||||
cache: gradle
|
||||
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
|
||||
- name: Clone UI
|
||||
run: |
|
||||
cd blockmiui
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
- name: Build with Gradle
|
||||
run: |
|
||||
bash ./gradlew assembleDebug
|
||||
|
||||
- name: Sign Debug APK
|
||||
if: success()
|
||||
id: sign_debug
|
||||
uses: r0adkll/sign-android-release@v1.0.4
|
||||
with:
|
||||
releaseDirectory: ./app/build/outputs/apk/debug
|
||||
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
||||
alias: ${{ secrets.KEY_STORE_ALIAS }}
|
||||
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
keyPassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
|
||||
- name: Upload Debug APK
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: WooBox_Debug
|
||||
path: ${{ steps.sign_debug.outputs.signedReleaseFile }}
|
||||
42
.github/workflows/pr.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: PR Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
- 'README_EN.md'
|
||||
- 'doc/*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'temurin'
|
||||
cache: gradle
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
!~/.gradle/caches/build-cache-*
|
||||
key: gradle-deps-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: gradle-deps
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches/build-cache-*
|
||||
key: gradle-builds-${{ github.sha }}
|
||||
- name: Init Submodule
|
||||
run: |
|
||||
git submodule init
|
||||
git submodule update
|
||||
- name: Build with Gradle
|
||||
run: bash ./gradlew :app:packageDebug
|
||||
19
.gitignore
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea
|
||||
/.idea/caches
|
||||
/.idea/libraries
|
||||
/.idea/modules.xml
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
local.properties
|
||||
/app/release/app-release.apk
|
||||
/app/release/output-metadata.json
|
||||
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "blockmiui"]
|
||||
path = blockmiui
|
||||
url = https://github.com/577fkj/blockmiui.git
|
||||
1
app/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
62
app/build.gradle
Normal file
@@ -0,0 +1,62 @@
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'com.google.devtools.ksp' version '1.8.10-1.0.9'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 33
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.lt2333.simplicitytools"
|
||||
minSdk 31
|
||||
targetSdk 33
|
||||
versionCode 75
|
||||
versionName '1.7.5-Yuki'
|
||||
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled rootProject.ext.enableR8
|
||||
shrinkResources rootProject.ext.enableR8
|
||||
zipAlignEnabled rootProject.ext.enableR8
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '11'
|
||||
freeCompilerArgs = [
|
||||
'-Xno-param-assertions',
|
||||
'-Xno-call-assertions',
|
||||
'-Xno-receiver-assertions'
|
||||
]
|
||||
}
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
}
|
||||
lintOptions {
|
||||
checkReleaseBuilds false
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
//API
|
||||
compileOnly 'de.robv.android.xposed:api:82'
|
||||
implementation 'com.highcapable.yukihookapi:api:1.1.8'
|
||||
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.1.8'
|
||||
|
||||
//UI
|
||||
implementation(project(":blockmiui"))
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||
//APP Center
|
||||
String appCenterSdkVersion = "4.4.3"
|
||||
implementation("com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}")
|
||||
implementation("com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}")
|
||||
}
|
||||
30
app/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
|
||||
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
|
||||
public static *** throwUninitializedProperty(...);
|
||||
public static *** throwUninitializedPropertyAccessException(...);
|
||||
}
|
||||
|
||||
-keepclassmembers class * implements androidx.viewbinding.ViewBinding {
|
||||
*** inflate(android.view.LayoutInflater);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.lt2333.simplicitytools
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class ExampleInstrumentedTest {
|
||||
@Test
|
||||
fun useAppContext() {
|
||||
// Context of the app under test.
|
||||
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
assertEquals("com.lt2333.simplicitytools", appContext.packageName)
|
||||
}
|
||||
}
|
||||
70
app/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.lt2333.simplicitytools">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<application
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".activity.MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity-alias
|
||||
android:label="WooBox"
|
||||
android:name=".launcher"
|
||||
android:enabled="true"
|
||||
android:exported="true"
|
||||
android:targetActivity=".activity.MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity-alias>
|
||||
|
||||
<meta-data
|
||||
android:name="xposedscope"
|
||||
android:resource="@array/module_scope" />
|
||||
<meta-data
|
||||
android:name="xposeddescription"
|
||||
android:value="@string/xposeddescription" />
|
||||
<meta-data
|
||||
android:name="xposedminversion"
|
||||
android:value="93" />
|
||||
|
||||
<service
|
||||
android:name=".tiles.LockMaxFpsTile"
|
||||
android:exported="true"
|
||||
android:icon="@drawable/ic_fps"
|
||||
android:label="@string/lock_max"
|
||||
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.quicksettings.action.QS_TILE" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<service
|
||||
android:name=".tiles.AllowScreenshots"
|
||||
android:exported="true"
|
||||
android:icon="@drawable/ic_baseline_fullscreen_24"
|
||||
android:label="@string/allow_screenshots"
|
||||
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.quicksettings.action.QS_TILE" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
</application>
|
||||
</manifest>
|
||||
1
app/src/main/assets/xposed_init
Normal file
@@ -0,0 +1 @@
|
||||
com.lt2333.simplicitytools.hooks.MainHook_YukiHookXposedInit
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.lt2333.simplicitytools.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.BuildConfig
|
||||
import com.lt2333.simplicitytools.R
|
||||
import com.lt2333.simplicitytools.activity.pages.all.AboutPage
|
||||
import com.lt2333.simplicitytools.activity.pages.all.MenuPage
|
||||
import com.lt2333.simplicitytools.activity.pages.s.*
|
||||
import com.lt2333.simplicitytools.activity.pages.t.*
|
||||
import java.util.*
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class MainActivity : MIUIActivity() {
|
||||
private val activity = this
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
if (!checkLSPosed()) isLoad = false
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
//检测LSPosed是否激活
|
||||
@SuppressLint("WorldReadableFiles")
|
||||
private fun checkLSPosed(): Boolean {
|
||||
try {
|
||||
setSP(getSharedPreferences("config", MODE_WORLD_READABLE))
|
||||
return true
|
||||
} catch (exception: SecurityException) {
|
||||
MIUIDialog(this) {
|
||||
setTitle(R.string.Tips)
|
||||
setMessage(R.string.not_support)
|
||||
setCancelable(false)
|
||||
setRButton(R.string.Done) {
|
||||
exitProcess(0)
|
||||
}
|
||||
}.show()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
init {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
registerPage(MainPageForT::class.java)
|
||||
registerPage(SystemUIPageForT::class.java)
|
||||
registerPage(AndroidPageForT::class.java)
|
||||
registerPage(OtherPageForT::class.java)
|
||||
registerPage(HideIconPageForT::class.java)
|
||||
registerPage(AboutPage::class.java)
|
||||
registerPage(MenuPage::class.java)
|
||||
}
|
||||
Build.VERSION_CODES.S -> {
|
||||
registerPage(MainPageForS::class.java)
|
||||
registerPage(SystemUIPageForS::class.java)
|
||||
registerPage(AndroidPageForS::class.java)
|
||||
registerPage(OtherPageForS::class.java)
|
||||
registerPage(HideIconPageForS::class.java)
|
||||
registerPage(AboutPage::class.java)
|
||||
registerPage(MenuPage::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.all
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.widget.Toast
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import com.lt2333.simplicitytools.BuildConfig
|
||||
import com.lt2333.simplicitytools.R
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
|
||||
@BMPage("about_module","About Module", hideMenu = true)
|
||||
class AboutPage : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
Author(
|
||||
authorHead = getDrawable(R.drawable.app_icon)!!,
|
||||
authorName = getString(R.string.app_name),
|
||||
authorTips = "${
|
||||
SimpleDateFormat(
|
||||
"yyyy-MM-dd HH:mm:ss",
|
||||
Locale.getDefault()
|
||||
).format(BuildConfig.BUILD_TIME.toLong())
|
||||
}\n${BuildConfig.VERSION_NAME}(${BuildConfig.BUILD_TYPE})",
|
||||
onClickListener = {
|
||||
try {
|
||||
activity.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)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
})
|
||||
Line()
|
||||
TitleText(text = getString(R.string.developer))
|
||||
Author(
|
||||
authorHead = getDrawable(R.drawable.lt)!!,
|
||||
authorName = "乌堆小透明",
|
||||
authorTips = "LittleTurtle2333",
|
||||
onClickListener = {
|
||||
try {
|
||||
activity.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("https://www.coolapk.com/u/883441")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
})
|
||||
Line()
|
||||
TitleText(text = getString(R.string.thank_list))
|
||||
TextSummaryWithArrow(
|
||||
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)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
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)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(text = getString(R.string.discussions))
|
||||
TextSummaryWithArrow(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)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}))
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.tg_channel,
|
||||
tipsId = R.string.tg_channel_summary,
|
||||
onClickListener = {
|
||||
try {
|
||||
activity.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)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
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)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(getString(R.string.other))
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.app_coolapk_url,
|
||||
tipsId = R.string.app_coolapk_url_summary,
|
||||
onClickListener = {
|
||||
try {
|
||||
activity.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()
|
||||
}
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
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)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.participate_in_translation,
|
||||
tipsId = R.string.participate_in_translation_summary,
|
||||
onClickListener = {
|
||||
try {
|
||||
val uri = Uri.parse("https://crowdin.com/project/simplicitytools")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.all
|
||||
|
||||
import cn.fkj233.ui.activity.annotation.BMMenuPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
import com.lt2333.simplicitytools.utils.ShellUtils
|
||||
import java.util.*
|
||||
|
||||
|
||||
@BMMenuPage("Menu")
|
||||
class MenuPage : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.reboot, onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
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()
|
||||
}))
|
||||
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.reboot_host, onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
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.android.systemui",
|
||||
"killall com.miui.home",
|
||||
"killall com.miui.securitycenter ",
|
||||
"killall com.android.settings",
|
||||
"killall com.miui.powerkeeper",
|
||||
"killall com.android.updater",
|
||||
"killall com.miui.mediaeditor",
|
||||
"killall com.miui.screenshot",
|
||||
"killall com.milink.service",
|
||||
"killall com.xiaomi.misubscreenui",
|
||||
"killall com.miui.packageinstaller"
|
||||
)
|
||||
ShellUtils.execCommand(command, true)
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
}))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.s
|
||||
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_android","Android", hideMenu = false)
|
||||
class AndroidPageForS : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.corepacth)
|
||||
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.downgr,
|
||||
tipsId = R.string.downgr_summary
|
||||
), SwitchV("downgrade")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.authcreak,
|
||||
tipsId = R.string.authcreak_summary
|
||||
), SwitchV("authcreak")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.digestCreak,
|
||||
tipsId = R.string.digestCreak_summary
|
||||
), SwitchV("digestCreak")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.UsePreSig,
|
||||
tipsId = R.string.UsePreSig_summary
|
||||
), SwitchV("UsePreSig")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.enhancedMode,
|
||||
tipsId = R.string.enhancedMode_summary
|
||||
), SwitchV("enhancedMode")
|
||||
)
|
||||
Line()
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.disable_flag_secure,
|
||||
tipsId = R.string.disable_flag_secure_summary
|
||||
), SwitchV("disable_flag_secure")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.delete_on_post_notification,
|
||||
tipsId = R.string.delete_on_post_notification_summary
|
||||
), SwitchV("delete_on_post_notification")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_small_window_restrictions,
|
||||
tipsId = R.string.remove_small_window_restrictions_summary
|
||||
), SwitchV("remove_small_window_restrictions")
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.max_wallpaper_scale,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.max_wallpaper_scale)
|
||||
setEditText(
|
||||
"",
|
||||
"${activity.getString(R.string.def)}1.1, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("max_wallpaper_scale", 1.1f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"max_wallpaper_scale",
|
||||
getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.allow_untrusted_touches,
|
||||
tipsId = R.string.take_effect_after_reboot
|
||||
), SwitchV("allow_untrusted_touches")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.sound)
|
||||
val mediaVolumeStepsSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"media_volume_steps_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.media_volume_steps_switch,
|
||||
tips = "${getString(R.string.take_effect_after_reboot)}\n${getString(R.string.media_volume_steps_summary)}"
|
||||
),
|
||||
SwitchV(
|
||||
"media_volume_steps_switch",
|
||||
dataBindingSend = mediaVolumeStepsSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"media_volume_steps",
|
||||
15,
|
||||
29,
|
||||
15,
|
||||
dataBindingRecv = mediaVolumeStepsSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.s
|
||||
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.activity.view.TextV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("hide_icon","Hide Icon", hideMenu = false)
|
||||
class HideIconPageForS : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.status_bar_icon)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_battery_icon),
|
||||
SwitchV("hide_battery_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_battery_charging_icon),
|
||||
SwitchV("hide_battery_charging_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_gps_icon), SwitchV("hide_gps_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_bluetooth_icon),
|
||||
SwitchV("hide_bluetooth_icon")
|
||||
)
|
||||
|
||||
TextWithSwitch(TextV(textId = R.string.hide_nfc_icon), SwitchV("hide_nfc_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_bluetooth_battery_icon),
|
||||
SwitchV("hide_bluetooth_battery_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_small_hd_icon),
|
||||
SwitchV("hide_small_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_big_hd_icon),
|
||||
SwitchV("hide_big_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_new_hd_icon),
|
||||
SwitchV("hide_new_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_hd_no_service_icon),
|
||||
SwitchV("hide_hd_no_service_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_no_sim_icon),
|
||||
SwitchV("hide_no_sim_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_sim_one_icon),
|
||||
SwitchV("hide_sim_one_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_sim_two_icon),
|
||||
SwitchV("hide_sim_two_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_mobile_activity_icon),
|
||||
SwitchV("hide_mobile_activity_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_mobile_type_icon),
|
||||
SwitchV("hide_mobile_type_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_wifi_activity_icon),
|
||||
SwitchV("hide_wifi_activity_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_wifi_standard_icon),
|
||||
SwitchV("hide_wifi_standard_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_slave_wifi_icon),
|
||||
SwitchV("hide_slave_wifi_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_hotspot_icon),
|
||||
SwitchV("hide_hotspot_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_airplane_icon),
|
||||
SwitchV("hide_airplane_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_alarm_icon), SwitchV("hide_alarm_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_headset_icon),
|
||||
SwitchV("hide_headset_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_volume_icon),
|
||||
SwitchV("hide_volume_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_zen_icon), SwitchV("hide_zen_icon"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.s
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.pm.PackageManager
|
||||
import cn.fkj233.ui.activity.annotation.BMMainPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.BuildConfig
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMMainPage("WooBox[MIUI13]")
|
||||
class MainPageForS : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.main_switch,
|
||||
colorId = R.color.blue
|
||||
), SwitchV("main_switch", true)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.HideLauncherIcon),
|
||||
SwitchV("hLauncherIcon", onClickListener = {
|
||||
activity.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
|
||||
)
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.matters_needing_attention,
|
||||
colorId = R.color.red,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.matters_needing_attention)
|
||||
setMessage(R.string.matters_needing_attention_context)
|
||||
setRButton(R.string.Done) {
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_systemui,
|
||||
tipsId = R.string.scope_systemui_summary,
|
||||
onClickListener = { showFragment("scope_systemui") })
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_android,
|
||||
tipsId = R.string.scope_android_summary,
|
||||
onClickListener = { showFragment("scope_android") })
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_other,
|
||||
tipsId = R.string.scope_other_summary,
|
||||
onClickListener = { showFragment("scope_other") })
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.about)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.about_module,
|
||||
tips = getString(R.string.about_module_summary),
|
||||
onClickListener = { showFragment("about_module") })
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.s
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import android.widget.Toast
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_other", "Other", hideMenu = false)
|
||||
class OtherPageForS : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.scope_miuihome)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.home_time,
|
||||
tipsId = R.string.home_time_summary
|
||||
), SwitchV("home_time")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.double_tap_to_sleep,
|
||||
tipsId = R.string.home_double_tap_to_sleep_summary
|
||||
), SwitchV("double_tap_to_sleep")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.miuihome_recentwiew_wallpaper_darkening, tipsId = R.string.miuihome_recentwiew_wallpaper_darkening_summary
|
||||
), SwitchV("miuihome_recentwiew_wallpaper_darkening", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.miuihome_recentview_remove_card_animation, tipsId = R.string.miuihome_recentview_remove_card_animation_summary
|
||||
), SwitchV("miuihome_recentview_remove_card_animation", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.miuihome_shortcut_add_small_window, tipsId = R.string.miuihome_shortcut_add_small_window_summary),
|
||||
SwitchV("miuihome_shortcut_add_small_window", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.miuihome_scroll_icon_name, tipsId = R.string.miuihome_scroll_icon_name_summary),
|
||||
SwitchV("miuihome_scroll_icon_name", false)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_powerkeeper)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_max_fps,
|
||||
tipsId = R.string.lock_max_fps_summary
|
||||
), SwitchV("lock_max_fps")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.do_not_clear_app,
|
||||
tipsId = R.string.do_not_clear_app_summary
|
||||
), SwitchV("do_not_clear_app")
|
||||
)
|
||||
val makeMilletMoreAggressiveSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"make_millet_more_aggressive",
|
||||
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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.make_millet_more_aggressive,
|
||||
tipsId = R.string.make_millet_more_aggressive_summary
|
||||
),
|
||||
SwitchV(
|
||||
"make_millet_more_aggressive",
|
||||
dataBindingSend = makeMilletMoreAggressiveSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.make_millet_ignore_active,
|
||||
tipsId = R.string.make_millet_ignore_active_summary
|
||||
),
|
||||
SwitchV("make_millet_ignore_active"),
|
||||
dataBindingRecv = makeMilletMoreAggressiveSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
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
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_securitycenter)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.skip_waiting_time,
|
||||
tipsId = R.string.skip_waiting_time_summary
|
||||
), SwitchV("skip_waiting_time")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_open_app_confirmation_popup,
|
||||
tipsId = R.string.remove_open_app_confirmation_popup_summary
|
||||
), SwitchV("remove_open_app_confirmation_popup")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_one_hundred,
|
||||
tipsId = R.string.lock_one_hundred_summary
|
||||
), SwitchV("lock_one_hundred")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.remove_macro_blacklist),
|
||||
SwitchV("remove_macro_blacklist")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.battery_life_function),
|
||||
SwitchV("battery_life_function")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_mediaeditor)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.unlock_unlimited_cropping,
|
||||
tipsId = R.string.unlock_unlimited_cropping_summary
|
||||
), SwitchV("unlock_unlimited_cropping")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.updater)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_ota_validate,
|
||||
tipsId = R.string.remove_ota_validate_summary
|
||||
), SwitchV("remove_ota_validate")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.settings)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_notification_importance,
|
||||
tipsId = R.string.show_notification_importance_summary
|
||||
), SwitchV("show_notification_importance")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.cast)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.force_support_send_app,
|
||||
), SwitchV("force_support_send_app")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.rear_display)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch,
|
||||
), SwitchV("rear_show_weather")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.remove_ad)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.remove_thememanager_ads),
|
||||
SwitchV("remove_thememanager_ads")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.pkg_installer)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.pkg_installer_summary),
|
||||
SwitchV("pkg_installer_count_checking")
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,740 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.s
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import android.widget.Toast
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SpinnerV
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.activity.view.TextV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import cn.fkj233.ui.dialog.NewDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_systemui", "System UI", hideMenu = false)
|
||||
class SystemUIPageForS : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.statusbar)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.double_tap_to_sleep),
|
||||
SwitchV("status_bar_double_tap_to_sleep")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_layout)
|
||||
val statusBarLayoutMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.default1)
|
||||
it[1] = getString(R.string.clock_center)
|
||||
it[2] = getString(R.string.clock_right)
|
||||
it[3] = getString(R.string.clock_center_and_icon_left)
|
||||
}
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.status_bar_layout_mode),
|
||||
SpinnerV(
|
||||
statusBarLayoutMode[MIUIActivity.safeSP.getInt(
|
||||
"status_bar_layout_mode",
|
||||
0
|
||||
)].toString()
|
||||
) {
|
||||
add(statusBarLayoutMode[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 0)
|
||||
}
|
||||
add(statusBarLayoutMode[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 1)
|
||||
}
|
||||
add(statusBarLayoutMode[2].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 2)
|
||||
}
|
||||
add(statusBarLayoutMode[3].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 3)
|
||||
}
|
||||
})
|
||||
|
||||
val layoutCompatibilityBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary
|
||||
), SwitchV("layout_compatibility_mode", dataBindingSend = layoutCompatibilityBinding.bindingSend)
|
||||
)
|
||||
|
||||
Text(
|
||||
textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_clock_format)
|
||||
|
||||
|
||||
val customClockPresetBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getInt(
|
||||
"custom_clock_mode",
|
||||
0
|
||||
) == 1
|
||||
}) { 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
|
||||
}
|
||||
}
|
||||
|
||||
val customClockGeekBinding =
|
||||
GetDataBinding({ MIUIActivity.safeSP.getInt("custom_clock_mode", 0) == 2 }
|
||||
|
||||
) { 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
|
||||
}
|
||||
}
|
||||
|
||||
val customClockMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.off)
|
||||
it[1] = getString(R.string.preset)
|
||||
it[2] = getString(R.string.geek)
|
||||
}
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.custom_clock_mode),
|
||||
SpinnerV(customClockMode[MIUIActivity.safeSP.getInt("custom_clock_mode", 0)].toString()) {
|
||||
add(customClockMode[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 0)
|
||||
customClockPresetBinding.binding.Send().send(false)
|
||||
customClockGeekBinding.binding.Send().send(false)
|
||||
}
|
||||
add(customClockMode[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 1)
|
||||
customClockPresetBinding.binding.Send().send(true)
|
||||
customClockGeekBinding.binding.Send().send(false)
|
||||
}
|
||||
add(customClockMode[2].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 2)
|
||||
customClockPresetBinding.binding.Send().send(false)
|
||||
customClockGeekBinding.binding.Send().send(true)
|
||||
}
|
||||
})
|
||||
|
||||
//预设模式起始
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_year),
|
||||
SwitchV("status_bar_time_year"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_month),
|
||||
SwitchV("status_bar_time_month"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_day),
|
||||
SwitchV("status_bar_time_day"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_week),
|
||||
SwitchV("status_bar_time_week"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_hour),
|
||||
SwitchV("status_bar_time_double_hour"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_period),
|
||||
SwitchV("status_bar_time_period", true),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_seconds),
|
||||
SwitchV("status_bar_time_seconds"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_hide_space),
|
||||
SwitchV("status_bar_time_hide_space"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line),
|
||||
SwitchV("status_bar_time_double_line"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line_center_align),
|
||||
SwitchV("status_bar_time_double_line_center_align"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_size,
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_size",
|
||||
0,
|
||||
18,
|
||||
0,
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_double_line_size,
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_double_line_size",
|
||||
0,
|
||||
9,
|
||||
0,
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
//预设模式结束
|
||||
|
||||
//极客模式起始
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
|
||||
NewDialog(activity) {
|
||||
setTitle(R.string.custom_clock_format_geek)
|
||||
setEditText(
|
||||
MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false
|
||||
)
|
||||
Button(getString(R.string.click_to_view_use_cases)) {
|
||||
val locale = context.resources.configuration.locale
|
||||
val language = locale.language
|
||||
if (language.endsWith("zh")) {
|
||||
val uri = Uri.parse("https://zhuti.designer.xiaomi.com/docs/grammar/#%E6%97%B6%E9%97%B4%E6%97%A5%E6%9C%9F")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
} else {
|
||||
val uri = Uri.parse("https://docs.google.com/spreadsheets/d/1ghkT2iFbxB3bT4TKCiKAfmEdGt6kTVKFU3dm4Nz1or8/edit?usp=sharing")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
}
|
||||
Button(getString(R.string.Done)) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
|
||||
dismiss()
|
||||
return@Button
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
Button(getString(R.string.cancel), cancelStyle = true) {
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line_center_align),
|
||||
SwitchV("status_bar_time_center_align_geek"),
|
||||
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_size,
|
||||
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_size_geek",
|
||||
0,
|
||||
18,
|
||||
0,
|
||||
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
//极客模式结束
|
||||
|
||||
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_icon)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.hide_icon,
|
||||
onClickListener = { showFragment("hide_icon") })
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.show_wifi_standard),
|
||||
SwitchV("show_wifi_standard")
|
||||
)
|
||||
val customMobileTypeTextBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"custom_mobile_type_text_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.custom_mobile_type_text_switch),
|
||||
SwitchV(
|
||||
"custom_mobile_type_text_switch",
|
||||
dataBindingSend = customMobileTypeTextBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_mobile_type_text) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.custom_mobile_type_text)
|
||||
setEditText(MIUIActivity.safeSP.getString("custom_mobile_type_text", "5G"), "")
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
MIUIActivity.safeSP.putAny("custom_mobile_type_text", getEditText())
|
||||
dismiss()
|
||||
return@setRButton
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = customMobileTypeTextBinding.binding.getRecv(2))
|
||||
val bigMobileTypeIconBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"big_mobile_type_icon",
|
||||
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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_icon),
|
||||
SwitchV(
|
||||
"big_mobile_type_icon",
|
||||
dataBindingSend = bigMobileTypeIconBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_icon_bold),
|
||||
SwitchV("big_mobile_type_icon_bold", true),
|
||||
dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.big_mobile_type_icon_size,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_size)
|
||||
setEditText(
|
||||
"",
|
||||
"${activity.getString(R.string.def)}12.5, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("big_mobile_type_icon_size", 12.5f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_size",
|
||||
getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
}), dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_up_and_down_position) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_up_and_down_position)
|
||||
setMessage("${activity.getString(R.string.range)} -15~15")
|
||||
setEditText(
|
||||
"",
|
||||
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getInt("big_mobile_type_icon_up_and_down_position", 0)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
val value = getEditText().toInt()
|
||||
if (value in (-15..15)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_up_and_down_position",
|
||||
value
|
||||
)
|
||||
dismiss()
|
||||
return@setRButton
|
||||
}
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_left_and_right_margins) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_left_and_right_margins)
|
||||
setMessage("${activity.getString(R.string.range)} 0~30")
|
||||
setEditText(
|
||||
"",
|
||||
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getInt("big_mobile_type_icon_left_and_right_margins", 0)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
val value = getEditText().toInt()
|
||||
if (value in (0..30)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_left_and_right_margins",
|
||||
value
|
||||
)
|
||||
dismiss()
|
||||
return@setRButton
|
||||
}
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
|
||||
Text(textId = R.string.maximum_number_of_notification_icons)
|
||||
SeekBarWithText("maximum_number_of_notification_icons", 1, 30, 3)
|
||||
Text(textId = R.string.maximum_number_of_notification_dots)
|
||||
SeekBarWithText("maximum_number_of_notification_dots", 0, 4, 3)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.battery_percentage_font_size,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.battery_percentage_font_size)
|
||||
setMessage(R.string.zero_do_no_change)
|
||||
setEditText(
|
||||
"", "${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("battery_percentage_font_size", 0f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"battery_percentage_font_size",
|
||||
getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.hide_battery_percentage_icon,
|
||||
tipsId = R.string.hide_battery_percentage_icon_summary
|
||||
), SwitchV("hide_battery_percentage_icon")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_network_speed)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_network_speed_splitter),
|
||||
SwitchV("hide_network_speed_splitter")
|
||||
)
|
||||
val statusBarDualRowNetworkSpeedBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
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 = statusBarDualRowNetworkSpeedBinding.bindingSend
|
||||
)
|
||||
)
|
||||
val align: HashMap<Int, String> = hashMapOf()
|
||||
align[0] = getString(R.string.left)
|
||||
align[1] = getString(R.string.right)
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.status_bar_network_speed_dual_row_gravity),
|
||||
SpinnerV(
|
||||
align[MIUIActivity.safeSP.getInt(
|
||||
"status_bar_network_speed_dual_row_gravity",
|
||||
0
|
||||
)].toString()
|
||||
) {
|
||||
add(align[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 0)
|
||||
}
|
||||
add(align[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 1)
|
||||
|
||||
}
|
||||
},
|
||||
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.status_bar_network_speed_dual_row_icon),
|
||||
SpinnerV(
|
||||
MIUIActivity.safeSP.getString(
|
||||
"status_bar_network_speed_dual_row_icon",
|
||||
getString(R.string.none)
|
||||
)
|
||||
) {
|
||||
add(getString(R.string.none)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"status_bar_network_speed_dual_row_icon",
|
||||
getString(R.string.none)
|
||||
)
|
||||
}
|
||||
add("▲▼") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "▲▼")
|
||||
}
|
||||
add("△▽") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "△▽")
|
||||
}
|
||||
add("↑↓") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "↑↓")
|
||||
}
|
||||
})
|
||||
Text(
|
||||
textId = R.string.status_bar_network_speed_dual_row_size,
|
||||
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_network_speed_dual_row_size",
|
||||
0,
|
||||
9,
|
||||
0,
|
||||
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.notification_center)
|
||||
val showWeatherMainSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch,
|
||||
colorId = R.color.blue
|
||||
),
|
||||
SwitchV(
|
||||
"notification_weather",
|
||||
dataBindingSend = showWeatherMainSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_city,
|
||||
),
|
||||
SwitchV("notification_weather_city"),
|
||||
dataBindingRecv = showWeatherMainSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.can_notification_slide,
|
||||
tipsId = R.string.can_notification_slide_summary,
|
||||
),
|
||||
SwitchV("can_notification_slide"),
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.control_center)
|
||||
val controlCenterWeatherBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch,
|
||||
colorId = R.color.blue,
|
||||
tipsId = R.string.control_center_weather_summary
|
||||
),
|
||||
SwitchV(
|
||||
"control_center_weather",
|
||||
dataBindingSend = controlCenterWeatherBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_city,
|
||||
),
|
||||
SwitchV("control_center_weather_city"),
|
||||
dataBindingRecv = controlCenterWeatherBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.lock_screen)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_screen_clock_display_seconds,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("lock_screen_clock_display_seconds")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_lock_screen_camera,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("remove_lock_screen_camera")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.enable_wave_charge_animation),
|
||||
SwitchV("enable_wave_charge_animation")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_screen_charging_current,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("lock_screen_charging_current")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.double_tap_to_sleep,
|
||||
tipsId = R.string.home_double_tap_to_sleep_summary
|
||||
), SwitchV("lock_screen_double_tap_to_sleep")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.old_quick_settings_panel)
|
||||
val oldQSCustomSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"old_qs_custom_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.old_qs_custom_switch,
|
||||
colorId = R.color.blue
|
||||
),
|
||||
SwitchV(
|
||||
"old_qs_custom_switch",
|
||||
dataBindingSend = oldQSCustomSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_rows,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_rows",
|
||||
1,
|
||||
6,
|
||||
3,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_rows_horizontal,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_rows_horizontal",
|
||||
1,
|
||||
3,
|
||||
2,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_columns,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_columns",
|
||||
1,
|
||||
7,
|
||||
4,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_columns_unexpanded,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_columns_unexpanded",
|
||||
1,
|
||||
7,
|
||||
5,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.t
|
||||
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_android","Android", hideMenu = false)
|
||||
class AndroidPageForT : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.corepacth)
|
||||
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.downgr,
|
||||
tipsId = R.string.downgr_summary
|
||||
), SwitchV("downgrade")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.authcreak,
|
||||
tipsId = R.string.authcreak_summary
|
||||
), SwitchV("authcreak")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.digestCreak,
|
||||
tipsId = R.string.digestCreak_summary
|
||||
), SwitchV("digestCreak")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.UsePreSig,
|
||||
tipsId = R.string.UsePreSig_summary
|
||||
), SwitchV("UsePreSig")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.enhancedMode,
|
||||
tipsId = R.string.enhancedMode_summary
|
||||
), SwitchV("enhancedMode")
|
||||
)
|
||||
Line()
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.disable_flag_secure,
|
||||
tipsId = R.string.disable_flag_secure_summary
|
||||
), SwitchV("disable_flag_secure")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.delete_on_post_notification,
|
||||
tipsId = R.string.delete_on_post_notification_summary
|
||||
), SwitchV("delete_on_post_notification")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_small_window_restrictions,
|
||||
tipsId = R.string.remove_small_window_restrictions_summary
|
||||
), SwitchV("remove_small_window_restrictions")
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.max_wallpaper_scale,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.max_wallpaper_scale)
|
||||
setEditText(
|
||||
"",
|
||||
"${activity.getString(R.string.def)}1.2, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("max_wallpaper_scale", 1.2f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"max_wallpaper_scale",
|
||||
getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.allow_untrusted_touches,
|
||||
tipsId = R.string.take_effect_after_reboot
|
||||
), SwitchV("allow_untrusted_touches")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.sound)
|
||||
val mediaVolumeStepsSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"media_volume_steps_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.media_volume_steps_switch,
|
||||
tips = "${getString(R.string.take_effect_after_reboot)}\n${getString(R.string.media_volume_steps_summary)}"
|
||||
),
|
||||
SwitchV(
|
||||
"media_volume_steps_switch",
|
||||
dataBindingSend = mediaVolumeStepsSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"media_volume_steps",
|
||||
15,
|
||||
29,
|
||||
15,
|
||||
dataBindingRecv = mediaVolumeStepsSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.t
|
||||
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.activity.view.TextV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("hide_icon","Hide Icon", hideMenu = false)
|
||||
class HideIconPageForT : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.status_bar_icon)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_battery_icon),
|
||||
SwitchV("hide_battery_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_battery_charging_icon),
|
||||
SwitchV("hide_battery_charging_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_gps_icon), SwitchV("hide_gps_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_bluetooth_icon),
|
||||
SwitchV("hide_bluetooth_icon")
|
||||
)
|
||||
|
||||
TextWithSwitch(TextV(textId = R.string.hide_nfc_icon), SwitchV("hide_nfc_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_bluetooth_battery_icon),
|
||||
SwitchV("hide_bluetooth_battery_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_small_hd_icon),
|
||||
SwitchV("hide_small_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_big_hd_icon),
|
||||
SwitchV("hide_big_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_new_hd_icon),
|
||||
SwitchV("hide_new_hd_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_hd_no_service_icon),
|
||||
SwitchV("hide_hd_no_service_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_no_sim_icon),
|
||||
SwitchV("hide_no_sim_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_sim_one_icon),
|
||||
SwitchV("hide_sim_one_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_sim_two_icon),
|
||||
SwitchV("hide_sim_two_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_mobile_activity_icon),
|
||||
SwitchV("hide_mobile_activity_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_mobile_type_icon),
|
||||
SwitchV("hide_mobile_type_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_wifi_activity_icon),
|
||||
SwitchV("hide_wifi_activity_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_wifi_standard_icon),
|
||||
SwitchV("hide_wifi_standard_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_slave_wifi_icon),
|
||||
SwitchV("hide_slave_wifi_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_hotspot_icon),
|
||||
SwitchV("hide_hotspot_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_airplane_icon),
|
||||
SwitchV("hide_airplane_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_alarm_icon), SwitchV("hide_alarm_icon"))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_headset_icon),
|
||||
SwitchV("hide_headset_icon")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_volume_icon),
|
||||
SwitchV("hide_volume_icon")
|
||||
)
|
||||
TextWithSwitch(TextV(textId = R.string.hide_zen_icon), SwitchV("hide_zen_icon"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.t
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.pm.PackageManager
|
||||
import cn.fkj233.ui.activity.annotation.BMMainPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import com.lt2333.simplicitytools.BuildConfig
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMMainPage("WooBox[MIUI14]")
|
||||
class MainPageForT : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.main_switch,
|
||||
colorId = R.color.blue
|
||||
), SwitchV("main_switch", true)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.HideLauncherIcon),
|
||||
SwitchV("hLauncherIcon", onClickListener = {
|
||||
activity.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
|
||||
)
|
||||
})
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.matters_needing_attention,
|
||||
colorId = R.color.red,
|
||||
onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.matters_needing_attention)
|
||||
setMessage(R.string.matters_needing_attention_context)
|
||||
setRButton(R.string.Done) {
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_systemui,
|
||||
tipsId = R.string.scope_systemui_summary,
|
||||
onClickListener = { showFragment("scope_systemui") })
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_android,
|
||||
tipsId = R.string.scope_android_summary,
|
||||
onClickListener = { showFragment("scope_android") })
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.scope_other,
|
||||
tipsId = R.string.scope_other_summary,
|
||||
onClickListener = { showFragment("scope_other") })
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.about)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(
|
||||
textId = R.string.about_module,
|
||||
tips = getString(R.string.about_module_summary),
|
||||
onClickListener = { showFragment("about_module") })
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.t
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import android.widget.Toast
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_other", "Other", hideMenu = false)
|
||||
class OtherPageForT : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.scope_miuihome)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.home_time,
|
||||
tipsId = R.string.home_time_summary
|
||||
), SwitchV("home_time")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.double_tap_to_sleep,
|
||||
tipsId = R.string.home_double_tap_to_sleep_summary
|
||||
), SwitchV("double_tap_to_sleep")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.miuihome_recentwiew_wallpaper_darkening, tipsId = R.string.miuihome_recentwiew_wallpaper_darkening_summary
|
||||
), SwitchV("miuihome_recentwiew_wallpaper_darkening", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.miuihome_recentview_remove_card_animation, tipsId = R.string.miuihome_recentview_remove_card_animation_summary
|
||||
), SwitchV("miuihome_recentview_remove_card_animation", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.miuihome_shortcut_add_small_window, tipsId = R.string.miuihome_shortcut_add_small_window_summary),
|
||||
SwitchV("miuihome_shortcut_add_small_window", false)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.miuihome_scroll_icon_name, tipsId = R.string.miuihome_scroll_icon_name_summary),
|
||||
SwitchV("miuihome_scroll_icon_name", false)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_powerkeeper)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_max_fps,
|
||||
tipsId = R.string.lock_max_fps_summary
|
||||
), SwitchV("lock_max_fps")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.do_not_clear_app,
|
||||
tipsId = R.string.do_not_clear_app_summary
|
||||
), SwitchV("do_not_clear_app")
|
||||
)
|
||||
val makeMilletMoreAggressiveSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"make_millet_more_aggressive",
|
||||
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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.make_millet_more_aggressive,
|
||||
tipsId = R.string.make_millet_more_aggressive_summary
|
||||
),
|
||||
SwitchV(
|
||||
"make_millet_more_aggressive",
|
||||
dataBindingSend = makeMilletMoreAggressiveSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.make_millet_ignore_active,
|
||||
tipsId = R.string.make_millet_ignore_active_summary
|
||||
),
|
||||
SwitchV("make_millet_ignore_active"),
|
||||
dataBindingRecv = makeMilletMoreAggressiveSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
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
|
||||
activity.startActivity(intent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
|
||||
}
|
||||
})
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_securitycenter)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.skip_waiting_time,
|
||||
tipsId = R.string.skip_waiting_time_summary
|
||||
), SwitchV("skip_waiting_time")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_open_app_confirmation_popup,
|
||||
tipsId = R.string.remove_open_app_confirmation_popup_summary
|
||||
), SwitchV("remove_open_app_confirmation_popup")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_one_hundred,
|
||||
tipsId = R.string.lock_one_hundred_summary
|
||||
), SwitchV("lock_one_hundred")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.remove_macro_blacklist),
|
||||
SwitchV("remove_macro_blacklist")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.battery_life_function),
|
||||
SwitchV("battery_life_function")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.scope_mediaeditor)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.unlock_unlimited_cropping,
|
||||
tipsId = R.string.unlock_unlimited_cropping_summary
|
||||
), SwitchV("unlock_unlimited_cropping")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.updater)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_ota_validate,
|
||||
tipsId = R.string.remove_ota_validate_summary
|
||||
), SwitchV("remove_ota_validate")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.settings)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_notification_importance,
|
||||
tipsId = R.string.show_notification_importance_summary
|
||||
), SwitchV("show_notification_importance")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.cast)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.force_support_send_app,
|
||||
), SwitchV("force_support_send_app")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.rear_display)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch,
|
||||
), SwitchV("rear_show_weather")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.remove_ad)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.remove_thememanager_ads),
|
||||
SwitchV("remove_thememanager_ads")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.pkg_installer)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.pkg_installer_summary),
|
||||
SwitchV("pkg_installer_count_checking")
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,680 @@
|
||||
package com.lt2333.simplicitytools.activity.pages.t
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import android.widget.Toast
|
||||
import cn.fkj233.ui.activity.MIUIActivity
|
||||
import cn.fkj233.ui.activity.annotation.BMPage
|
||||
import cn.fkj233.ui.activity.data.BasePage
|
||||
import cn.fkj233.ui.activity.view.SpinnerV
|
||||
import cn.fkj233.ui.activity.view.SwitchV
|
||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||
import cn.fkj233.ui.activity.view.TextV
|
||||
import cn.fkj233.ui.dialog.MIUIDialog
|
||||
import cn.fkj233.ui.dialog.NewDialog
|
||||
import com.lt2333.simplicitytools.R
|
||||
|
||||
|
||||
@BMPage("scope_systemui", "System UI", hideMenu = false) class SystemUIPageForT : BasePage() {
|
||||
|
||||
override fun onCreate() {
|
||||
TitleText(textId = R.string.statusbar)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.double_tap_to_sleep), SwitchV("status_bar_double_tap_to_sleep")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_layout)
|
||||
val statusBarLayoutMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.default1)
|
||||
it[1] = getString(R.string.clock_center)
|
||||
it[2] = getString(R.string.clock_right)
|
||||
it[3] = getString(R.string.clock_center_and_icon_left)
|
||||
}
|
||||
TextWithSpinner(TextV(textId = R.string.status_bar_layout_mode), SpinnerV(
|
||||
statusBarLayoutMode[MIUIActivity.safeSP.getInt(
|
||||
"status_bar_layout_mode", 0
|
||||
)].toString()
|
||||
) {
|
||||
add(statusBarLayoutMode[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 0)
|
||||
}
|
||||
add(statusBarLayoutMode[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 1)
|
||||
}
|
||||
add(statusBarLayoutMode[2].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 2)
|
||||
}
|
||||
add(statusBarLayoutMode[3].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 3)
|
||||
}
|
||||
})
|
||||
|
||||
val layoutCompatibilityBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary
|
||||
), SwitchV("layout_compatibility_mode", dataBindingSend = layoutCompatibilityBinding.bindingSend)
|
||||
)
|
||||
|
||||
Text(
|
||||
textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_clock_format)
|
||||
|
||||
|
||||
val customClockPresetBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getInt(
|
||||
"custom_clock_mode", 0
|
||||
) == 1
|
||||
}) { 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
|
||||
}
|
||||
}
|
||||
|
||||
val customClockGeekBinding = GetDataBinding({ MIUIActivity.safeSP.getInt("custom_clock_mode", 0) == 2 }
|
||||
|
||||
) { 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
|
||||
}
|
||||
}
|
||||
|
||||
val customClockMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.off)
|
||||
it[1] = getString(R.string.preset)
|
||||
it[2] = getString(R.string.geek)
|
||||
}
|
||||
TextWithSpinner(TextV(textId = R.string.custom_clock_mode), SpinnerV(
|
||||
customClockMode[MIUIActivity.safeSP.getInt(
|
||||
"custom_clock_mode", 0
|
||||
)].toString()
|
||||
) {
|
||||
add(customClockMode[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 0)
|
||||
customClockPresetBinding.binding.Send().send(false)
|
||||
customClockGeekBinding.binding.Send().send(false)
|
||||
}
|
||||
add(customClockMode[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 1)
|
||||
customClockPresetBinding.binding.Send().send(true)
|
||||
customClockGeekBinding.binding.Send().send(false)
|
||||
}
|
||||
add(customClockMode[2].toString()) {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_mode", 2)
|
||||
customClockPresetBinding.binding.Send().send(false)
|
||||
customClockGeekBinding.binding.Send().send(true)
|
||||
}
|
||||
})
|
||||
|
||||
//预设模式起始
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_year),
|
||||
SwitchV("status_bar_time_year"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_month),
|
||||
SwitchV("status_bar_time_month"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_day),
|
||||
SwitchV("status_bar_time_day"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_week),
|
||||
SwitchV("status_bar_time_week"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_hour),
|
||||
SwitchV("status_bar_time_double_hour"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_period),
|
||||
SwitchV("status_bar_time_period", true),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_seconds),
|
||||
SwitchV("status_bar_time_seconds"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_hide_space),
|
||||
SwitchV("status_bar_time_hide_space"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line),
|
||||
SwitchV("status_bar_time_double_line"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line_center_align),
|
||||
SwitchV("status_bar_time_double_line_center_align"),
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_size, dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_size", 0, 18, 0, dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_double_line_size,
|
||||
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_double_line_size", 0, 9, 0, dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
|
||||
)
|
||||
//预设模式结束
|
||||
|
||||
//极客模式起始
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
|
||||
NewDialog(activity) {
|
||||
setTitle(R.string.custom_clock_format_geek)
|
||||
setEditText(
|
||||
MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false
|
||||
)
|
||||
Button(getString(R.string.click_to_view_use_cases)) {
|
||||
val locale = context.resources.configuration.locale
|
||||
val language = locale.language
|
||||
if (language.endsWith("zh")) {
|
||||
val uri = Uri.parse("https://zhuti.designer.xiaomi.com/docs/grammar/#%E6%97%B6%E9%97%B4%E6%97%A5%E6%9C%9F")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
} else {
|
||||
val uri = Uri.parse("https://docs.google.com/spreadsheets/d/1ghkT2iFbxB3bT4TKCiKAfmEdGt6kTVKFU3dm4Nz1or8/edit?usp=sharing")
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
}
|
||||
Button(getString(R.string.Done)) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
|
||||
dismiss()
|
||||
return@Button
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
Button(getString(R.string.cancel), cancelStyle = true) {
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.status_bar_time_double_line_center_align),
|
||||
SwitchV("status_bar_time_center_align_geek"),
|
||||
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.status_bar_clock_size, dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_clock_size_geek", 0, 18, 0, dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
|
||||
)
|
||||
//极客模式结束
|
||||
|
||||
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_icon)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(textId = R.string.hide_icon, onClickListener = { showFragment("hide_icon") })
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.show_wifi_standard), SwitchV("show_wifi_standard")
|
||||
)
|
||||
val customMobileTypeTextBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"custom_mobile_type_text_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.custom_mobile_type_text_switch), SwitchV(
|
||||
"custom_mobile_type_text_switch", dataBindingSend = customMobileTypeTextBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_mobile_type_text) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.custom_mobile_type_text)
|
||||
setEditText(MIUIActivity.safeSP.getString("custom_mobile_type_text", "5G"), "")
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
MIUIActivity.safeSP.putAny("custom_mobile_type_text", getEditText())
|
||||
dismiss()
|
||||
return@setRButton
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = customMobileTypeTextBinding.binding.getRecv(2))
|
||||
val bigMobileTypeIconBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"big_mobile_type_icon", 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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_icon), SwitchV(
|
||||
"big_mobile_type_icon", dataBindingSend = bigMobileTypeIconBinding.bindingSend
|
||||
)
|
||||
)
|
||||
val bigMobileTypeLocation: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.left)
|
||||
it[1] = getString(R.string.right)
|
||||
}
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.big_mobile_type_location), SpinnerV(
|
||||
bigMobileTypeLocation[MIUIActivity.safeSP.getInt(
|
||||
"big_mobile_type_location", 1
|
||||
)].toString()
|
||||
) {
|
||||
add(bigMobileTypeLocation[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("big_mobile_type_location", 0)
|
||||
}
|
||||
add(bigMobileTypeLocation[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("big_mobile_type_location", 1)
|
||||
}
|
||||
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_only_show_network_card),
|
||||
SwitchV("big_mobile_type_only_show_network_card", false),
|
||||
dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_icon_bold),
|
||||
SwitchV("big_mobile_type_icon_bold", true),
|
||||
dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(textId = R.string.big_mobile_type_icon_size, onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_size)
|
||||
setEditText(
|
||||
"", "${activity.getString(R.string.def)}12.5, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("big_mobile_type_icon_size", 12.5f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_size", getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
}), dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_up_and_down_position) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_up_and_down_position)
|
||||
setMessage("${activity.getString(R.string.range)} -15~15")
|
||||
setEditText(
|
||||
"", "${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getInt("big_mobile_type_icon_up_and_down_position", 0)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
val value = getEditText().toInt()
|
||||
if (value in (-15..15)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_up_and_down_position", value
|
||||
)
|
||||
dismiss()
|
||||
return@setRButton
|
||||
}
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
|
||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_left_and_right_margins) {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.big_mobile_type_icon_left_and_right_margins)
|
||||
setMessage("${activity.getString(R.string.range)} 0~30")
|
||||
setEditText(
|
||||
"", "${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getInt("big_mobile_type_icon_left_and_right_margins", 0)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText().isNotEmpty()) {
|
||||
try {
|
||||
val value = getEditText().toInt()
|
||||
if (value in (0..30)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"big_mobile_type_icon_left_and_right_margins", value
|
||||
)
|
||||
dismiss()
|
||||
return@setRButton
|
||||
}
|
||||
} catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}.show()
|
||||
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
|
||||
Text(textId = R.string.maximum_number_of_notification_icons)
|
||||
SeekBarWithText("maximum_number_of_notification_icons", 1, 30, 3)
|
||||
Text(textId = R.string.maximum_number_of_notification_dots)
|
||||
SeekBarWithText("maximum_number_of_notification_dots", 0, 4, 3)
|
||||
TextSummaryWithArrow(
|
||||
TextSummaryV(textId = R.string.battery_percentage_font_size, onClickListener = {
|
||||
MIUIDialog(activity) {
|
||||
setTitle(R.string.battery_percentage_font_size)
|
||||
setMessage(R.string.zero_do_no_change)
|
||||
setEditText(
|
||||
"", "${activity.getString(R.string.current)}${
|
||||
MIUIActivity.safeSP.getFloat("battery_percentage_font_size", 0f)
|
||||
}"
|
||||
)
|
||||
setLButton(textId = R.string.cancel) {
|
||||
dismiss()
|
||||
}
|
||||
setRButton(textId = R.string.Done) {
|
||||
if (getEditText() != "") {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"battery_percentage_font_size", getEditText().toFloat()
|
||||
)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
}.show()
|
||||
})
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.hide_battery_percentage_icon, tipsId = R.string.hide_battery_percentage_icon_summary
|
||||
), SwitchV("hide_battery_percentage_icon")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.status_bar_network_speed)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextWithSwitch(
|
||||
TextV(textId = R.string.hide_network_speed_splitter), SwitchV("hide_network_speed_splitter")
|
||||
)
|
||||
val statusBarDualRowNetworkSpeedBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
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 = statusBarDualRowNetworkSpeedBinding.bindingSend
|
||||
)
|
||||
)
|
||||
val align: HashMap<Int, String> = hashMapOf()
|
||||
align[0] = getString(R.string.left)
|
||||
align[1] = getString(R.string.right)
|
||||
TextWithSpinner(
|
||||
TextV(textId = R.string.status_bar_network_speed_dual_row_gravity), SpinnerV(
|
||||
align[MIUIActivity.safeSP.getInt(
|
||||
"status_bar_network_speed_dual_row_gravity", 0
|
||||
)].toString()
|
||||
) {
|
||||
add(align[0].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 0)
|
||||
}
|
||||
add(align[1].toString()) {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 1)
|
||||
|
||||
}
|
||||
}, dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
TextWithSpinner(TextV(textId = R.string.status_bar_network_speed_dual_row_icon), SpinnerV(
|
||||
MIUIActivity.safeSP.getString(
|
||||
"status_bar_network_speed_dual_row_icon", getString(R.string.none)
|
||||
)
|
||||
) {
|
||||
add(getString(R.string.none)) {
|
||||
MIUIActivity.safeSP.putAny(
|
||||
"status_bar_network_speed_dual_row_icon", getString(R.string.none)
|
||||
)
|
||||
}
|
||||
add("▲▼") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "▲▼")
|
||||
}
|
||||
add("△▽") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "△▽")
|
||||
}
|
||||
add("↑↓") {
|
||||
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "↑↓")
|
||||
}
|
||||
})
|
||||
Text(
|
||||
textId = R.string.status_bar_network_speed_dual_row_size,
|
||||
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"status_bar_network_speed_dual_row_size",
|
||||
0,
|
||||
9,
|
||||
0,
|
||||
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.notification_center)
|
||||
val showWeatherMainSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch, colorId = R.color.blue
|
||||
), SwitchV(
|
||||
"notification_weather", dataBindingSend = showWeatherMainSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_city,
|
||||
), SwitchV("notification_weather_city"), dataBindingRecv = showWeatherMainSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.can_notification_slide,
|
||||
tipsId = R.string.can_notification_slide_summary,
|
||||
),
|
||||
SwitchV("can_notification_slide"),
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.control_center)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.disable_bluetooth_temporarily_off
|
||||
), SwitchV(
|
||||
"disable_bluetooth_temporarily_off"
|
||||
)
|
||||
)
|
||||
val controlCenterWeatherBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_weather_main_switch,
|
||||
colorId = R.color.blue,
|
||||
tipsId = R.string.control_center_weather_summary
|
||||
), SwitchV(
|
||||
"control_center_weather", dataBindingSend = controlCenterWeatherBinding.bindingSend
|
||||
)
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.show_city,
|
||||
), SwitchV("control_center_weather_city"), dataBindingRecv = controlCenterWeatherBinding.binding.getRecv(2)
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.lock_screen)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_screen_clock_display_seconds,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("lock_screen_clock_display_seconds")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
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")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_lock_screen_camera,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("remove_lock_screen_camera")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(textId = R.string.enable_wave_charge_animation), SwitchV("enable_wave_charge_animation")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.lock_screen_charging_current,
|
||||
tipsId = R.string.only_official_default_themes_are_supported
|
||||
), SwitchV("lock_screen_charging_current")
|
||||
)
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.double_tap_to_sleep, tipsId = R.string.home_double_tap_to_sleep_summary
|
||||
), SwitchV("lock_screen_double_tap_to_sleep")
|
||||
)
|
||||
Line()
|
||||
TitleText(textId = R.string.old_quick_settings_panel)
|
||||
val oldQSCustomSwitchBinding = GetDataBinding({
|
||||
MIUIActivity.safeSP.getBoolean(
|
||||
"old_qs_custom_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
|
||||
}
|
||||
}
|
||||
TextSummaryWithSwitch(
|
||||
TextSummaryV(
|
||||
textId = R.string.old_qs_custom_switch, colorId = R.color.blue
|
||||
), SwitchV(
|
||||
"old_qs_custom_switch", dataBindingSend = oldQSCustomSwitchBinding.bindingSend
|
||||
)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_rows, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_rows", 1, 6, 3, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_rows_horizontal, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_rows_horizontal", 1, 3, 2, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_columns, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_columns", 1, 7, 4, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
Text(
|
||||
textId = R.string.qs_custom_columns_unexpanded,
|
||||
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
SeekBarWithText(
|
||||
"qs_custom_columns_unexpanded", 1, 7, 5, dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.lt2333.simplicitytools.application
|
||||
|
||||
import com.highcapable.yukihookapi.hook.xposed.application.ModuleApplication
|
||||
|
||||
class DefaultApplication : ModuleApplication() {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.lt2333.simplicitytools.hooks
|
||||
|
||||
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
||||
import com.highcapable.yukihookapi.hook.factory.configs
|
||||
import com.highcapable.yukihookapi.hook.factory.encase
|
||||
import com.highcapable.yukihookapi.hook.xposed.bridge.event.YukiXposedEvent
|
||||
import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
|
||||
import com.lt2333.simplicitytools.hooks.apps.*
|
||||
import com.lt2333.simplicitytools.hooks.rules.all.corepatch.CorePatchMainHook
|
||||
import de.robv.android.xposed.IXposedHookZygoteInit
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage
|
||||
|
||||
@InjectYukiHookWithXposed
|
||||
class MainHook : IYukiHookXposedInit {
|
||||
|
||||
override fun onInit() = configs {
|
||||
debugLog {
|
||||
tag = "WooBoxForMIUI-Debug"
|
||||
}
|
||||
}
|
||||
|
||||
override fun onHook() = encase {
|
||||
loadSystem(AndroidHooker) //Andorid
|
||||
loadApp("com.android.systemui", SystemUIHooker) //系统界面
|
||||
loadApp("com.milink.service", CastHooker) //投屏
|
||||
loadApp("com.miui.mediaeditor", MediaEditorHooker) //相册编辑
|
||||
loadApp("com.miui.home", MiuiHomeHooker) //桌面
|
||||
loadApp("com.miui.packageinstaller", PackageInstallerHooker) //安装包管理组件
|
||||
loadApp("com.miui.powerkeeper", PowerKeepcerHooker) //电量与性能
|
||||
loadApp("com.xiaomi.misubscreenui", RearDisplayHooker) //背屏显示
|
||||
loadApp("com.miui.screenshot", ScreenShotHooker) //截屏
|
||||
loadApp("com.miui.securitycenter", SecurityCenterHooker) //手机管家
|
||||
loadApp("com.android.settings", SettingsHooker) //设置
|
||||
loadApp("com.android.thememanager", ThemeManagerHooker) //主题管理
|
||||
loadApp("com.android.updater", UpdaterHooker) //系统更新
|
||||
}
|
||||
|
||||
override fun onXposedEvent() {
|
||||
YukiXposedEvent.onHandleLoadPackage {
|
||||
if (it.packageName == "android") CorePatchMainHook().handleLoadPackage(it)
|
||||
}
|
||||
YukiXposedEvent.onInitZygote {
|
||||
CorePatchMainHook().initZygote(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
import com.lt2333.simplicitytools.hooks.rules.all.android.DisableFlagSecureForAll
|
||||
import com.lt2333.simplicitytools.hooks.rules.all.corepatch.CorePatchMainHook
|
||||
|
||||
object AndroidHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
loadHooker(DisableFlagSecureForAll) //允许截图
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
loadHooker(DisableFlagSecureForAll) //允许截图
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
import com.lt2333.simplicitytools.hooks.rules.all.android.DisableFlagSecureForAll
|
||||
|
||||
object CastHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object MediaEditorHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object MiuiHomeHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object PackageInstallerHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object PowerKeepcerHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object RearDisplayHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object ScreenShotHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object SecurityCenterHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object SettingsHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
import com.lt2333.simplicitytools.hooks.rules.all.android.DisableFlagSecureForAll
|
||||
|
||||
object SystemUIHooker : YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object ThemeManagerHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.lt2333.simplicitytools.hooks.apps
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
|
||||
object UpdaterHooker: YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
when (Build.VERSION.SDK_INT) {
|
||||
Build.VERSION_CODES.TIRAMISU -> {
|
||||
}
|
||||
|
||||
Build.VERSION_CODES.S -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.android
|
||||
|
||||
import android.os.Build
|
||||
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
|
||||
import com.highcapable.yukihookapi.hook.factory.MembersType
|
||||
import com.lt2333.simplicitytools.utils.hasEnable
|
||||
|
||||
object DisableFlagSecureForAll : YukiBaseHooker() {
|
||||
override fun onHook() {
|
||||
"com.android.server.wm.WindowState".hook {
|
||||
injectMember {
|
||||
method { name = "isSecureLocked" }
|
||||
beforeHook {
|
||||
hasEnable("disable_flag_secure") {
|
||||
this.result = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Android13 额外Hook
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) {
|
||||
"com.android.server.wm.WindowSurfaceController".hook {
|
||||
injectMember {
|
||||
method { name = "setSecure" }
|
||||
beforeHook {
|
||||
hasEnable("disable_flag_secure") {
|
||||
this.args[0] = false
|
||||
}
|
||||
}
|
||||
}
|
||||
injectMember {
|
||||
allMembers(MembersType.CONSTRUCTOR)
|
||||
beforeHook {
|
||||
hasEnable("disable_flag_secure") {
|
||||
var flags = this.args[2] as Int
|
||||
val secureFlag = 128
|
||||
flags = flags and secureFlag.inv()
|
||||
this.args[2] = flags
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.Signature;
|
||||
|
||||
import com.lt2333.simplicitytools.BuildConfig;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||
import de.robv.android.xposed.IXposedHookZygoteInit;
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XC_MethodReplacement;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class CorePatchForQ extends XposedHelper implements IXposedHookLoadPackage, IXposedHookZygoteInit {
|
||||
XSharedPreferences prefs = new XSharedPreferences(BuildConfig.APPLICATION_ID, "config");
|
||||
|
||||
@Override
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||
// 允许降级
|
||||
Class<?> packageClazz = XposedHelpers.findClass("android.content.pm.PackageParser.Package", loadPackageParam.classLoader);
|
||||
hookAllMethods("com.android.server.pm.PackageManagerService", loadPackageParam.classLoader, "checkDowngrade", new XC_MethodHook() {
|
||||
public void beforeHookedMethod(MethodHookParam methodHookParam) throws Throwable {
|
||||
super.beforeHookedMethod(methodHookParam);
|
||||
if (prefs.getBoolean("downgrade", true)) {
|
||||
Object packageInfoLite = methodHookParam.args[0];
|
||||
|
||||
if (prefs.getBoolean("downgrade", true)) {
|
||||
Field field = packageClazz.getField("mVersionCode");
|
||||
field.setAccessible(true);
|
||||
field.set(packageInfoLite, 0);
|
||||
field = packageClazz.getField("mVersionCodeMajor");
|
||||
field.setAccessible(true);
|
||||
field.set(packageInfoLite, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
hookAllMethods("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader, "verifyMessageDigest",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
hookAllMethods("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader, "verify",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
hookAllMethods("java.security.MessageDigest", loadPackageParam.classLoader, "isEqual",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
hookAllMethods("com.android.server.pm.PackageManagerServiceUtils", loadPackageParam.classLoader, "verifySignatures",
|
||||
new ReturnConstant(prefs, "authcreak", false));
|
||||
|
||||
Class<?> signingDetails = XposedHelpers.findClass("android.content.pm.PackageParser.SigningDetails", loadPackageParam.classLoader);
|
||||
Constructor<?> findConstructorExact = XposedHelpers.findConstructorExact(signingDetails, Signature[].class, Integer.TYPE);
|
||||
findConstructorExact.setAccessible(true);
|
||||
Class<?> packageParserException = XposedHelpers.findClass("android.content.pm.PackageParser.PackageParserException", loadPackageParam.classLoader);
|
||||
Field error = XposedHelpers.findField(packageParserException, "error");
|
||||
error.setAccessible(true);
|
||||
Object[] signingDetailsArgs = new Object[2];
|
||||
signingDetailsArgs[0] = new Signature[]{new Signature(SIGNATURE)};
|
||||
signingDetailsArgs[1] = 1;
|
||||
final Object newInstance = findConstructorExact.newInstance(signingDetailsArgs);
|
||||
hookAllMethods("android.util.apk.ApkSignatureVerifier", loadPackageParam.classLoader, "verifyV1Signature", new XC_MethodHook() {
|
||||
public void afterHookedMethod(MethodHookParam methodHookParam) throws Throwable {
|
||||
super.afterHookedMethod(methodHookParam);
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
Throwable throwable = methodHookParam.getThrowable();
|
||||
if (throwable != null) {
|
||||
Throwable cause = throwable.getCause();
|
||||
if (throwable.getClass() == packageParserException) {
|
||||
if (error.getInt(throwable) == -103) {
|
||||
methodHookParam.setResult(newInstance);
|
||||
}
|
||||
}
|
||||
if (cause != null && cause.getClass() == packageParserException) {
|
||||
if (error.getInt(cause) == -103) {
|
||||
methodHookParam.setResult(newInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//New package has a different signature
|
||||
//处理覆盖安装但签名不一致
|
||||
hookAllMethods(signingDetails, "checkCapability", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
if (prefs.getBoolean("digestCreak", true)) {
|
||||
if ((Integer) param.args[1] != 4 && prefs.getBoolean("authcreak", true)) {
|
||||
param.setResult(Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
hookAllMethods(signingDetails, "checkCapabilityRecover",
|
||||
new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
if (prefs.getBoolean("digestCreak", true)) {
|
||||
if ((Integer) param.args[1] != 4 && prefs.getBoolean("authcreak", true)) {
|
||||
param.setResult(Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// if app is system app, allow to use hidden api, even if app not using a system signature
|
||||
findAndHookMethod("android.content.pm.ApplicationInfo", loadPackageParam.classLoader, "isPackageWhitelistedForHiddenApis", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
if (prefs.getBoolean("digestCreak", true)) {
|
||||
ApplicationInfo info = (ApplicationInfo) param.thisObject;
|
||||
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0
|
||||
|| (info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initZygote(StartupParam startupParam) {
|
||||
hookAllMethods("android.content.pm.PackageParser", null, "getApkSigningVersion", XC_MethodReplacement.returnConstant(1));
|
||||
hookAllConstructors("android.util.jar.StrictJarVerifier", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
if (prefs.getBoolean("enhancedMode", false)) {
|
||||
param.args[3] = Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
|
||||
import android.app.AndroidAppHelper;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.Signature;
|
||||
import android.util.Log;
|
||||
|
||||
import com.lt2333.simplicitytools.BuildConfig;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Member;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.cert.Certificate;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.zip.ZipEntry;
|
||||
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||
import de.robv.android.xposed.IXposedHookZygoteInit;
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XC_MethodReplacement;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class CorePatchForR extends XposedHelper implements IXposedHookLoadPackage, IXposedHookZygoteInit {
|
||||
XSharedPreferences prefs = new XSharedPreferences(BuildConfig.APPLICATION_ID, "config");
|
||||
|
||||
@Override
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||
|
||||
Log.d(CorePatchMainHook.TAG, "downgrade" + prefs.getBoolean("downgrade->", true));
|
||||
Log.d(CorePatchMainHook.TAG, "authcreak" + prefs.getBoolean("authcreak->", true));
|
||||
Log.d(CorePatchMainHook.TAG, "digestCreak" + prefs.getBoolean("digestCreak->", true));
|
||||
Log.d(CorePatchMainHook.TAG, "UsePreSig" + prefs.getBoolean("UsePreSig->", false));
|
||||
|
||||
// 允许降级
|
||||
findAndHookMethod("com.android.server.pm.PackageManagerService", loadPackageParam.classLoader,
|
||||
"checkDowngrade",
|
||||
"com.android.server.pm.parsing.pkg.AndroidPackage",
|
||||
"android.content.pm.PackageInfoLite",
|
||||
new ReturnConstant(prefs, "downgrade", null));
|
||||
|
||||
// exists on flyme 9(Android 11) only
|
||||
findAndHookMethod("com.android.server.pm.PackageManagerService", loadPackageParam.classLoader,
|
||||
"checkDowngrade",
|
||||
"android.content.pm.PackageInfoLite",
|
||||
"android.content.pm.PackageInfoLite",
|
||||
new ReturnConstant(prefs, "downgrade", true));
|
||||
|
||||
|
||||
// apk内文件修改后 digest校验会失败
|
||||
hookAllMethods("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader, "verifyMessageDigest",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
hookAllMethods("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader, "verify",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
hookAllMethods("java.security.MessageDigest", loadPackageParam.classLoader, "isEqual",
|
||||
new ReturnConstant(prefs, "authcreak", true));
|
||||
|
||||
// Targeting R+ (version " + Build.VERSION_CODES.R + " and above) requires"
|
||||
// + " the resources.arsc of installed APKs to be stored uncompressed"
|
||||
// + " and aligned on a 4-byte boundary
|
||||
// target >=30 的情况下 resources.arsc 必须是未压缩的且4K对齐
|
||||
hookAllMethods("android.content.res.AssetManager", loadPackageParam.classLoader, "containsAllocatedTable",
|
||||
new ReturnConstant(prefs, "authcreak", false));
|
||||
|
||||
// No signature found in package of version " + minSignatureSchemeVersion
|
||||
// + " or newer for package " + apkPath
|
||||
findAndHookMethod("android.util.apk.ApkSignatureVerifier", loadPackageParam.classLoader, "getMinimumSignatureSchemeVersionForTargetSdk", int.class,
|
||||
new ReturnConstant(prefs, "authcreak", 0));
|
||||
findAndHookMethod("com.android.apksig.ApkVerifier", loadPackageParam.classLoader, "getMinimumSignatureSchemeVersionForTargetSdk", int.class,
|
||||
new ReturnConstant(prefs, "authcreak", 0));
|
||||
|
||||
// Package " + packageName + " signatures do not match previously installed version; ignoring!"
|
||||
// public boolean checkCapability(String sha256String, @CertCapabilities int flags) {
|
||||
// public boolean checkCapability(SigningDetails oldDetails, @CertCapabilities int flags)
|
||||
hookAllMethods("android.content.pm.PackageParser", loadPackageParam.classLoader, "checkCapability", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
// Don't handle PERMISSION (grant SIGNATURE permissions to pkgs with this cert)
|
||||
// Or applications will have all privileged permissions
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/PackageParser.java;l=5947?q=CertCapabilities
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
if ((Integer) param.args[1] != 4) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 当verifyV1Signature抛出转换异常时,替换一个签名作为返回值
|
||||
// 如果用户已安装apk,并且其定义了私有权限,则安装时会因签名与模块内硬编码的不一致而被拒绝。尝试从待安装apk中获取签名。如果其中apk的签名和已安装的一致(只动了内容)就没有问题。此策略可能有潜在的安全隐患。
|
||||
Class<?> pkc = XposedHelpers.findClass("sun.security.pkcs.PKCS7", loadPackageParam.classLoader);
|
||||
Constructor<?> constructor = XposedHelpers.findConstructorExact(pkc, byte[].class);
|
||||
constructor.setAccessible(true);
|
||||
Class<?> ASV = XposedHelpers.findClass("android.util.apk.ApkSignatureVerifier", loadPackageParam.classLoader);
|
||||
Class<?> sJarClass = XposedHelpers.findClass("android.util.jar.StrictJarFile", loadPackageParam.classLoader);
|
||||
Constructor<?> constructorExact = XposedHelpers.findConstructorExact(sJarClass, String.class, boolean.class, boolean.class);
|
||||
constructorExact.setAccessible(true);
|
||||
Class<?> signingDetails = getSigningDetails(loadPackageParam.classLoader);
|
||||
Constructor<?> findConstructorExact = XposedHelpers.findConstructorExact(signingDetails, Signature[].class, Integer.TYPE);
|
||||
findConstructorExact.setAccessible(true);
|
||||
Class<?> packageParserException = XposedHelpers.findClass("android.content.pm.PackageParser.PackageParserException", loadPackageParam.classLoader);
|
||||
Field error = XposedHelpers.findField(packageParserException, "error");
|
||||
error.setAccessible(true);
|
||||
Object[] signingDetailsArgs = new Object[2];
|
||||
signingDetailsArgs[1] = 1;
|
||||
Class<?> parseResult = XposedHelpers.findClassIfExists("android.content.pm.parsing.result.ParseResult", loadPackageParam.classLoader);
|
||||
hookAllMethods("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader, "verifyBytes", new XC_MethodHook() {
|
||||
public void afterHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.afterHookedMethod(param);
|
||||
if (prefs.getBoolean("digestCreak", true)) {
|
||||
if (!prefs.getBoolean("UsePreSig", false)) {
|
||||
final Object block = constructor.newInstance(param.args[0]);
|
||||
Object[] infos = (Object[]) XposedHelpers.callMethod(block, "getSignerInfos");
|
||||
Object info = infos[0];
|
||||
List<X509Certificate> verifiedSignerCertChain = (List<X509Certificate>) XposedHelpers.callMethod(info, "getCertificateChain", block);
|
||||
param.setResult(verifiedSignerCertChain.toArray(
|
||||
new X509Certificate[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
hookAllMethods("android.util.apk.ApkSignatureVerifier", loadPackageParam.classLoader, "verifyV1Signature", new XC_MethodHook() {
|
||||
public void afterHookedMethod(MethodHookParam methodHookParam) throws Throwable {
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
Throwable throwable = methodHookParam.getThrowable();
|
||||
Integer parseErr = null;
|
||||
if (parseResult != null && ((Method) methodHookParam.method).getReturnType() == parseResult) {
|
||||
Object result = methodHookParam.getResult();
|
||||
if ((boolean) XposedHelpers.callMethod(result, "isError")) {
|
||||
parseErr = (int) XposedHelpers.callMethod(result, "getErrorCode");
|
||||
}
|
||||
}
|
||||
if (throwable != null || parseErr != null) {
|
||||
Signature[] lastSigs = null;
|
||||
try {
|
||||
if (prefs.getBoolean("UsePreSig", false)) {
|
||||
PackageManager PM = AndroidAppHelper.currentApplication().getPackageManager();
|
||||
if (PM == null) {
|
||||
XposedBridge.log("E: " + BuildConfig.APPLICATION_ID + " Cannot get the Package Manager... Are you using MiUI?");
|
||||
} else {
|
||||
PackageInfo pI;
|
||||
if (parseErr != null) {
|
||||
pI = PM.getPackageArchiveInfo((String) methodHookParam.args[1], 0);
|
||||
} else {
|
||||
pI = PM.getPackageArchiveInfo((String) methodHookParam.args[0], 0);
|
||||
}
|
||||
PackageInfo InstpI = PM.getPackageInfo(pI.packageName, PackageManager.GET_SIGNATURES);
|
||||
lastSigs = InstpI.signatures;
|
||||
}
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
|
||||
}
|
||||
try {
|
||||
if (lastSigs == null && prefs.getBoolean("digestCreak", true)) {
|
||||
final Object origJarFile = constructorExact.newInstance(methodHookParam.args[parseErr == null ? 0 : 1], true, false);
|
||||
final ZipEntry manifestEntry = (ZipEntry) XposedHelpers.callMethod(origJarFile, "findEntry", "AndroidManifest.xml");
|
||||
final Certificate[][] lastCerts;
|
||||
if (parseErr != null) {
|
||||
lastCerts = (Certificate[][]) XposedHelpers.callMethod(XposedHelpers.callStaticMethod(ASV, "loadCertificates", methodHookParam.args[0], origJarFile, manifestEntry), "getResult");
|
||||
} else {
|
||||
lastCerts = (Certificate[][]) XposedHelpers.callStaticMethod(ASV, "loadCertificates", origJarFile, manifestEntry);
|
||||
}
|
||||
lastSigs = (Signature[]) XposedHelpers.callStaticMethod(ASV, "convertToSignatures", (Object) lastCerts);
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
if (lastSigs != null) {
|
||||
signingDetailsArgs[0] = lastSigs;
|
||||
} else {
|
||||
signingDetailsArgs[0] = new Signature[]{new Signature(SIGNATURE)};
|
||||
}
|
||||
Object newInstance = findConstructorExact.newInstance(signingDetailsArgs);
|
||||
|
||||
//修复 java.lang.ClassCastException: Cannot cast android.content.pm.PackageParser$SigningDetails to android.util.apk.ApkSignatureVerifier$SigningDetailsWithDigests
|
||||
Class<?> signingDetailsWithDigests = XposedHelpers.findClassIfExists("android.util.apk.ApkSignatureVerifier.SigningDetailsWithDigests", loadPackageParam.classLoader);
|
||||
if (signingDetailsWithDigests != null) {
|
||||
Constructor<?> signingDetailsWithDigestsConstructorExact = XposedHelpers.findConstructorExact(signingDetailsWithDigests, signingDetails, Map.class);
|
||||
signingDetailsWithDigestsConstructorExact.setAccessible(true);
|
||||
newInstance = signingDetailsWithDigestsConstructorExact.newInstance(new Object[]{newInstance, null});
|
||||
}
|
||||
if (throwable != null) {
|
||||
Throwable cause = throwable.getCause();
|
||||
if (throwable.getClass() == packageParserException) {
|
||||
if (error.getInt(throwable) == -103) {
|
||||
methodHookParam.setResult(newInstance);
|
||||
}
|
||||
}
|
||||
if (cause != null && cause.getClass() == packageParserException) {
|
||||
if (error.getInt(cause) == -103) {
|
||||
methodHookParam.setResult(newInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (parseErr != null && parseErr == -103) {
|
||||
Object input = methodHookParam.args[0];
|
||||
XposedHelpers.callMethod(input, "reset");
|
||||
methodHookParam.setResult(XposedHelpers.callMethod(input, "success", newInstance));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//New package has a different signature
|
||||
//处理覆盖安装但签名不一致
|
||||
hookAllMethods(signingDetails, "checkCapability", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
// Don't handle PERMISSION (grant SIGNATURE permissions to pkgs with this cert)
|
||||
// Or applications will have all privileged permissions
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/PackageParser.java;l=5947?q=CertCapabilities
|
||||
if (((Integer) param.args[1] != 4) && prefs.getBoolean("digestCreak", true)) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
// if app is system app, allow to use hidden api, even if app not using a system signature
|
||||
findAndHookMethod("android.content.pm.ApplicationInfo", loadPackageParam.classLoader, "isPackageWhitelistedForHiddenApis", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
if (prefs.getBoolean("digestCreak", true)) {
|
||||
ApplicationInfo info = (ApplicationInfo) param.thisObject;
|
||||
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0
|
||||
|| (info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var utilClass = findClass("com.android.server.pm.PackageManagerServiceUtils", loadPackageParam.classLoader);
|
||||
if (utilClass != null) {
|
||||
for (var m : utilClass.getDeclaredMethods()) {
|
||||
if ("verifySignatures".equals(m.getName())) {
|
||||
try {
|
||||
XposedBridge.class.getDeclaredMethod("deoptimizeMethod", Member.class).invoke(null, m);
|
||||
} catch (Throwable e) {
|
||||
Log.e("CorePatch", "deoptimizing failed", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class<?> getSigningDetails(ClassLoader classLoader) {
|
||||
return XposedHelpers.findClass("android.content.pm.PackageParser.SigningDetails", classLoader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initZygote(StartupParam startupParam) {
|
||||
|
||||
hookAllMethods("android.content.pm.PackageParser", null, "getApkSigningVersion", XC_MethodReplacement.returnConstant(1));
|
||||
hookAllConstructors("android.util.jar.StrictJarVerifier", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
if (prefs.getBoolean("enhancedMode", false)) {
|
||||
super.beforeHookedMethod(param);
|
||||
param.args[3] = Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class CorePatchForS extends CorePatchForR {
|
||||
@Override
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||
super.handleLoadPackage(loadPackageParam);
|
||||
if (prefs.getBoolean("digestCreak", true) && prefs.getBoolean("UsePreSig", false)) {
|
||||
findAndHookMethod("com.android.server.pm.PackageManagerService", loadPackageParam.classLoader, "doesSignatureMatchForPermissions", String.class, "com.android.server.pm.parsing.pkg.ParsedPackage", int.class, new XC_MethodHook() {
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
|
||||
//If we decide to crack this then at least make sure they are same apks, avoid another one that tries to impersonate.
|
||||
if (param.getResult().equals(false)) {
|
||||
String pPname = (String) XposedHelpers.callMethod(param.args[1], "getPackageName");
|
||||
if (pPname.contentEquals((String) param.args[0])) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
public class CorePatchForSv2 extends CorePatchForS{
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class CorePatchForT extends CorePatchForSv2 {
|
||||
@Override
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException {
|
||||
super.handleLoadPackage(loadPackageParam);
|
||||
|
||||
findAndHookMethod("com.android.server.pm.PackageManagerServiceUtils", loadPackageParam.classLoader,
|
||||
"checkDowngrade",
|
||||
"com.android.server.pm.parsing.pkg.AndroidPackage",
|
||||
"android.content.pm.PackageInfoLite",
|
||||
new ReturnConstant(prefs, "downgrade", null));
|
||||
|
||||
Class<?> signingDetails = getSigningDetails(loadPackageParam.classLoader);
|
||||
//New package has a different signature
|
||||
//处理覆盖安装但签名不一致
|
||||
hookAllMethods(signingDetails, "checkCapability", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
// Don't handle PERMISSION (grant SIGNATURE permissions to pkgs with this cert)
|
||||
// Or applications will have all privileged permissions
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/PackageParser.java;l=5947?q=CertCapabilities
|
||||
if (((Integer) param.args[1] != 4) && prefs.getBoolean("digestCreak", true)) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Package " + packageName + " signatures do not match previously installed version; ignoring!"
|
||||
// public boolean checkCapability(String sha256String, @CertCapabilities int flags) {
|
||||
// public boolean checkCapability(SigningDetails oldDetails, @CertCapabilities int flags)
|
||||
hookAllMethods("android.content.pm.PackageParser", loadPackageParam.classLoader, "checkCapability", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) {
|
||||
Log.e("CorePatch", "checkCapability");
|
||||
// Don't handle PERMISSION (grant SIGNATURE permissions to pkgs with this cert)
|
||||
// Or applications will have all privileged permissions
|
||||
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/PackageParser.java;l=5947?q=CertCapabilities
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
if ((Integer) param.args[1] != 4) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (prefs.getBoolean("digestCreak", true) && prefs.getBoolean("UsePreSig", false)) {
|
||||
findAndHookMethod("com.android.server.pm.InstallPackageHelper", loadPackageParam.classLoader, "doesSignatureMatchForPermissions", String.class, "com.android.server.pm.parsing.pkg.ParsedPackage", int.class, new XC_MethodHook() {
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) {
|
||||
//If we decide to crack this then at least make sure they are same apks, avoid another one that tries to impersonate.
|
||||
if (param.getResult().equals(false)) {
|
||||
String pPname = (String) XposedHelpers.callMethod(param.args[1], "getPackageName");
|
||||
if (pPname.contentEquals((String) param.args[0])) {
|
||||
param.setResult(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
findAndHookMethod("com.android.server.pm.ScanPackageUtils", loadPackageParam.classLoader, "assertMinSignatureSchemeIsValid", "com.android.server.pm.parsing.pkg.AndroidPackage", int.class, new XC_MethodHook() {
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
param.setResult(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
Class<?> strictJarVerifier = findClass("android.util.jar.StrictJarVerifier", loadPackageParam.classLoader);
|
||||
if (strictJarVerifier != null) {
|
||||
XposedBridge.hookAllConstructors(strictJarVerifier, new XC_MethodHook() {
|
||||
@Override
|
||||
protected void afterHookedMethod(MethodHookParam param) {
|
||||
if (prefs.getBoolean("authcreak", true)) {
|
||||
XposedHelpers.setBooleanField(param.thisObject, "signatureSchemeRollbackProtectionsEnforced", false);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
Class<?> getSigningDetails(ClassLoader classLoader) {
|
||||
return XposedHelpers.findClassIfExists("android.content.pm.SigningDetails", classLoader);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||
import de.robv.android.xposed.IXposedHookZygoteInit;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class CorePatchMainHook implements IXposedHookLoadPackage, IXposedHookZygoteInit {
|
||||
public static final String TAG = "WooBox: CorePatch";
|
||||
|
||||
@Override
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
|
||||
if (("android".equals(lpparam.packageName)) && (lpparam.processName.equals("android"))) {
|
||||
Log.d(TAG, "Current sdk version " + Build.VERSION.SDK_INT);
|
||||
switch (Build.VERSION.SDK_INT) {
|
||||
case Build.VERSION_CODES.TIRAMISU: // 33
|
||||
new CorePatchForT().handleLoadPackage(lpparam);
|
||||
break;
|
||||
case Build.VERSION_CODES.S_V2: // 32
|
||||
new CorePatchForSv2().handleLoadPackage(lpparam);
|
||||
break;
|
||||
case Build.VERSION_CODES.S: // 31
|
||||
new CorePatchForS().handleLoadPackage(lpparam);
|
||||
break;
|
||||
case Build.VERSION_CODES.R: // 30
|
||||
new CorePatchForR().handleLoadPackage(lpparam);
|
||||
break;
|
||||
case Build.VERSION_CODES.Q: // 29
|
||||
new CorePatchForQ().handleLoadPackage(lpparam);
|
||||
break;
|
||||
default:
|
||||
XposedBridge.log(TAG + ": Warning: Unsupported Version of Android " + Build.VERSION.SDK_INT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initZygote(StartupParam startupParam) throws Throwable {
|
||||
if (startupParam.startsSystemServer) {
|
||||
Log.d(TAG, "Current sdk version " + Build.VERSION.SDK_INT);
|
||||
switch (Build.VERSION.SDK_INT) {
|
||||
case Build.VERSION_CODES.TIRAMISU: // 33
|
||||
new CorePatchForT().initZygote(startupParam);
|
||||
break;
|
||||
case Build.VERSION_CODES.S_V2: // 32
|
||||
new CorePatchForSv2().initZygote(startupParam);
|
||||
break;
|
||||
case Build.VERSION_CODES.S: // 31
|
||||
new CorePatchForS().initZygote(startupParam);
|
||||
break;
|
||||
case Build.VERSION_CODES.R: // 30
|
||||
new CorePatchForR().initZygote(startupParam);
|
||||
break;
|
||||
case Build.VERSION_CODES.Q: // 29
|
||||
new CorePatchForQ().initZygote(startupParam);
|
||||
break;
|
||||
default:
|
||||
XposedBridge.log(TAG + ": Warning: Unsupported Version of Android " + Build.VERSION.SDK_INT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
|
||||
public class ReturnConstant extends XC_MethodHook {
|
||||
private final XSharedPreferences prefs;
|
||||
private final String prefsKey;
|
||||
private final Object value;
|
||||
|
||||
public ReturnConstant(XSharedPreferences prefs, String prefsKey, Object value) {
|
||||
this.prefs = prefs;
|
||||
this.prefsKey = prefsKey;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
super.beforeHookedMethod(param);
|
||||
prefs.reload();
|
||||
if (prefs.getBoolean(prefsKey, false)) {
|
||||
param.setResult(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.lt2333.simplicitytools.hooks.rules.all.corepatch;
|
||||
|
||||
import com.lt2333.simplicitytools.BuildConfig;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
|
||||
public class XposedHelper {
|
||||
public String SIGNATURE = "308203c6308202aea003020102021426d148b7c65944abcf3a683b4c3dd3b139c4ec85300d06092a864886f70d01010b05003074310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f69643110300e06035504031307416e64726f6964301e170d3139303130323138353233385a170d3439303130323138353233385a3074310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f69643110300e06035504031307416e64726f696430820122300d06092a864886f70d01010105000382010f003082010a028201010087fcde48d9beaeba37b733a397ae586fb42b6c3f4ce758dc3ef1327754a049b58f738664ece587994f1c6362f98c9be5fe82c72177260c390781f74a10a8a6f05a6b5ca0c7c5826e15526d8d7f0e74f2170064896b0cf32634a388e1a975ed6bab10744d9b371cba85069834bf098f1de0205cdee8e715759d302a64d248067a15b9beea11b61305e367ac71b1a898bf2eec7342109c9c5813a579d8a1b3e6a3fe290ea82e27fdba748a663f73cca5807cff1e4ad6f3ccca7c02945926a47279d1159599d4ecf01c9d0b62e385c6320a7a1e4ddc9833f237e814b34024b9ad108a5b00786ea15593a50ca7987cbbdc203c096eed5ff4bf8a63d27d33ecc963990203010001a350304e300c0603551d13040530030101ff301d0603551d0e04160414a361efb002034d596c3a60ad7b0332012a16aee3301f0603551d23041830168014a361efb002034d596c3a60ad7b0332012a16aee3300d06092a864886f70d01010b0500038201010022ccb684a7a8706f3ee7c81d6750fd662bf39f84805862040b625ddf378eeefae5a4f1f283deea61a3c7f8e7963fd745415153a531912b82b596e7409287ba26fb80cedba18f22ae3d987466e1fdd88e440402b2ea2819db5392cadee501350e81b8791675ea1a2ed7ef7696dff273f13fb742bb9625fa12ce9c2cb0b7b3d94b21792f1252b1d9e4f7012cb341b62ff556e6864b40927e942065d8f0f51273fcda979b8832dd5562c79acf719de6be5aee2a85f89265b071bf38339e2d31041bc501d5e0c034ab1cd9c64353b10ee70b49274093d13f733eb9d3543140814c72f8e003f301c7a00b1872cc008ad55e26df2e8f07441002c4bcb7dc746745f0db";
|
||||
|
||||
public static void findAndHookMethod(String p1, ClassLoader lpparam, String p2, Object... parameterTypesAndCallback) {
|
||||
try {
|
||||
if (findClass(p1, lpparam) != null) {
|
||||
XposedHelpers.findAndHookMethod(p1, lpparam, p2, parameterTypesAndCallback);
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void hookAllMethods(String p1, ClassLoader lpparam, String methodName, XC_MethodHook parameterTypesAndCallback) {
|
||||
try {
|
||||
Class<?> packageParser = findClass(p1, lpparam);
|
||||
XposedBridge.hookAllMethods(packageParser, methodName, parameterTypesAndCallback);
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void hookAllMethods(Class<?> packageManagerServiceUtils, String verifySignatures, XC_MethodHook methodHook) {
|
||||
try {
|
||||
XposedBridge.hookAllMethods(packageManagerServiceUtils, verifySignatures, methodHook);
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static Class<?> findClass(String className, ClassLoader classLoader) {
|
||||
try {
|
||||
return Class.forName(className, false, classLoader);
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void hookAllConstructors(String p1, XC_MethodHook parameterTypesAndCallback) {
|
||||
try {
|
||||
Class<?> packageParser = findClass(p1, null);
|
||||
hookAllConstructors(packageParser, parameterTypesAndCallback);
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static Set<XC_MethodHook.Unhook> hookAllConstructors(Class<?> hookClass, XC_MethodHook callback) {
|
||||
try {
|
||||
return XposedBridge.hookAllConstructors(hookClass, callback);
|
||||
} catch (Throwable e) {
|
||||
if (BuildConfig.DEBUG)
|
||||
XposedBridge.log(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.lt2333.simplicitytools.tiles
|
||||
|
||||
import android.service.quicksettings.Tile
|
||||
import android.service.quicksettings.TileService
|
||||
|
||||
class AllowScreenshots : TileService() {
|
||||
private val key = "disable_flag_secure"
|
||||
|
||||
override fun onClick() {
|
||||
super.onClick()
|
||||
try {
|
||||
val pref = getSharedPreferences("config", MODE_WORLD_READABLE)
|
||||
val prefEditor = pref.edit()
|
||||
if (pref.getBoolean(key, false)) {
|
||||
prefEditor.putBoolean(key, false)
|
||||
qsTile.state = Tile.STATE_INACTIVE
|
||||
} else {
|
||||
prefEditor.putBoolean(key, true)
|
||||
qsTile.state = Tile.STATE_ACTIVE
|
||||
}
|
||||
prefEditor.commit()
|
||||
qsTile.updateTile()
|
||||
} catch (e: SecurityException) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStartListening() {
|
||||
super.onStartListening()
|
||||
try {
|
||||
val pref = getSharedPreferences("config", MODE_WORLD_READABLE)
|
||||
if (pref.getBoolean(key, false)) {
|
||||
qsTile.state = Tile.STATE_ACTIVE
|
||||
} else {
|
||||
qsTile.state = Tile.STATE_INACTIVE
|
||||
}
|
||||
qsTile.updateTile()
|
||||
} catch (e: SecurityException) {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.lt2333.simplicitytools.tiles
|
||||
|
||||
import android.service.quicksettings.Tile
|
||||
import android.service.quicksettings.TileService
|
||||
|
||||
class LockMaxFpsTile : TileService() {
|
||||
|
||||
private val key = "lock_max_fps"
|
||||
|
||||
override fun onClick() {
|
||||
super.onClick()
|
||||
try {
|
||||
val pref = getSharedPreferences("config", MODE_WORLD_READABLE)
|
||||
val prefEditor = pref.edit()
|
||||
if (pref.getBoolean(key, false)) {
|
||||
prefEditor.putBoolean(key, false)
|
||||
qsTile.state = Tile.STATE_INACTIVE
|
||||
} else {
|
||||
prefEditor.putBoolean(key, true)
|
||||
qsTile.state = Tile.STATE_ACTIVE
|
||||
}
|
||||
prefEditor.commit()
|
||||
qsTile.updateTile()
|
||||
} catch (e: SecurityException) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStartListening() {
|
||||
super.onStartListening()
|
||||
try {
|
||||
val pref = getSharedPreferences("config", MODE_WORLD_READABLE)
|
||||
if (pref.getBoolean(key, false)) {
|
||||
qsTile.state = Tile.STATE_ACTIVE
|
||||
} else {
|
||||
qsTile.state = Tile.STATE_INACTIVE
|
||||
}
|
||||
qsTile.updateTile()
|
||||
} catch (e: SecurityException) {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
package com.lt2333.simplicitytools.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.List;
|
||||
|
||||
public class ShellUtils {
|
||||
|
||||
public static final String COMMAND_SU = "su";
|
||||
public static final String COMMAND_SH = "sh";
|
||||
public static final String COMMAND_EXIT = "exit\n";
|
||||
public static final String COMMAND_LINE_END = "\n";
|
||||
|
||||
private ShellUtils() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
/**
|
||||
* check whether has root permission
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static boolean checkRootPermission() {
|
||||
return execCommand("echo root", true, false).result == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell command, default return result msg
|
||||
*
|
||||
* @param command command
|
||||
* @param isRoot whether need to run with root
|
||||
* @return
|
||||
* @see ShellUtils#execCommand(String[], boolean, boolean)
|
||||
*/
|
||||
public static CommandResult execCommand(String command, boolean isRoot) {
|
||||
return execCommand(new String[]{command}, isRoot, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell commands, default return result msg
|
||||
*
|
||||
* @param commands command activity_wifi
|
||||
* @param isRoot whether need to run with root
|
||||
* @return
|
||||
* @see ShellUtils#execCommand(String[], boolean, boolean)
|
||||
*/
|
||||
public static CommandResult execCommand(List<String> commands, boolean isRoot) {
|
||||
return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell commands, default return result msg
|
||||
*
|
||||
* @param commands command array
|
||||
* @param isRoot whether need to run with root
|
||||
* @return
|
||||
* @see ShellUtils#execCommand(String[], boolean, boolean)
|
||||
*/
|
||||
public static CommandResult execCommand(String[] commands, boolean isRoot) {
|
||||
return execCommand(commands, isRoot, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell command
|
||||
*
|
||||
* @param command command
|
||||
* @param isRoot whether need to run with root
|
||||
* @param isNeedResultMsg whether need result msg
|
||||
* @return
|
||||
* @see ShellUtils#execCommand(String[], boolean, boolean)
|
||||
*/
|
||||
public static CommandResult execCommand(String command, boolean isRoot, boolean isNeedResultMsg) {
|
||||
return execCommand(new String[]{command}, isRoot, isNeedResultMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell commands
|
||||
*
|
||||
* @param commands command activity_wifi
|
||||
* @param isRoot whether need to run with root
|
||||
* @param isNeedResultMsg whether need result msg
|
||||
* @return
|
||||
* @see ShellUtils#execCommand(String[], boolean, boolean)
|
||||
*/
|
||||
public static CommandResult execCommand(List<String> commands, boolean isRoot, boolean isNeedResultMsg) {
|
||||
return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, isNeedResultMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* execute shell commands
|
||||
*
|
||||
* @param commands command array
|
||||
* @param isRoot whether need to run with root
|
||||
* @param isNeedResultMsg whether need result msg
|
||||
* @return <ul>
|
||||
* <li>if isNeedResultMsg is false, {@link CommandResult#successMsg} is null and
|
||||
* {@link CommandResult#errorMsg} is null.</li>
|
||||
* <li>if {@link CommandResult#result} is -1, there maybe some excepiton.</li>
|
||||
* </ul>
|
||||
*/
|
||||
public static CommandResult execCommand(String[] commands, boolean isRoot, boolean isNeedResultMsg) {
|
||||
int result = -1;
|
||||
if (commands == null || commands.length == 0) {
|
||||
return new CommandResult(result, null, null);
|
||||
}
|
||||
|
||||
Process process = null;
|
||||
BufferedReader successResult = null;
|
||||
BufferedReader errorResult = null;
|
||||
StringBuilder successMsg = null;
|
||||
StringBuilder errorMsg = null;
|
||||
|
||||
DataOutputStream os = null;
|
||||
try {
|
||||
process = Runtime.getRuntime().exec(isRoot ? COMMAND_SU : COMMAND_SH);
|
||||
os = new DataOutputStream(process.getOutputStream());
|
||||
for (String command : commands) {
|
||||
if (command == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// donnot use os.writeBytes(commmand), avoid chinese charset error
|
||||
os.write(command.getBytes());
|
||||
os.writeBytes(COMMAND_LINE_END);
|
||||
os.flush();
|
||||
}
|
||||
os.writeBytes(COMMAND_EXIT);
|
||||
os.flush();
|
||||
|
||||
result = process.waitFor();
|
||||
// get command result
|
||||
if (isNeedResultMsg) {
|
||||
successMsg = new StringBuilder();
|
||||
errorMsg = new StringBuilder();
|
||||
successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||
errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
|
||||
String s;
|
||||
while ((s = successResult.readLine()) != null) {
|
||||
successMsg.append(s);
|
||||
}
|
||||
while ((s = errorResult.readLine()) != null) {
|
||||
errorMsg.append(s);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (os != null) {
|
||||
os.close();
|
||||
}
|
||||
if (successResult != null) {
|
||||
successResult.close();
|
||||
}
|
||||
if (errorResult != null) {
|
||||
errorResult.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (process != null) {
|
||||
process.destroy();
|
||||
}
|
||||
}
|
||||
return new CommandResult(result, successMsg == null ? null : successMsg.toString(), errorMsg == null ? null
|
||||
: errorMsg.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* result of command
|
||||
* <ul>
|
||||
* <li>{@link CommandResult#result} means result of command, 0 means normal, else means error, same to excute in
|
||||
* linux shell</li>
|
||||
* <li>{@link CommandResult#successMsg} means success message of command result</li>
|
||||
* <li>{@link CommandResult#errorMsg} means error message of command result</li>
|
||||
* </ul>
|
||||
*
|
||||
* @author <main href="http://www.trinea.cn" target="_blank">Trinea</main> 2013-5-16
|
||||
*/
|
||||
public static class CommandResult {
|
||||
|
||||
/**
|
||||
* result of command
|
||||
**/
|
||||
public int result;
|
||||
/**
|
||||
* success message of command result
|
||||
**/
|
||||
public String successMsg;
|
||||
/**
|
||||
* error message of command result
|
||||
**/
|
||||
public String errorMsg;
|
||||
|
||||
public CommandResult(int result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public CommandResult(int result, String successMsg, String errorMsg) {
|
||||
this.result = result;
|
||||
this.successMsg = successMsg;
|
||||
this.errorMsg = errorMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.lt2333.simplicitytools.utils
|
||||
|
||||
import com.lt2333.simplicitytools.BuildConfig
|
||||
import de.robv.android.xposed.XSharedPreferences
|
||||
|
||||
object XSPUtils {
|
||||
private var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config")
|
||||
|
||||
fun getBoolean(key: String, defValue: Boolean): Boolean {
|
||||
if (prefs.hasFileChanged()) {
|
||||
prefs.reload()
|
||||
}
|
||||
return prefs.getBoolean(key, defValue)
|
||||
}
|
||||
|
||||
fun getInt(key: String, defValue: Int): Int {
|
||||
if (prefs.hasFileChanged()) {
|
||||
prefs.reload()
|
||||
}
|
||||
return prefs.getInt(key, defValue)
|
||||
}
|
||||
|
||||
fun getFloat(key: String, defValue: Float): Float {
|
||||
if (prefs.hasFileChanged()) {
|
||||
prefs.reload()
|
||||
}
|
||||
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
|
||||
) {
|
||||
val conditionResult = if (extraCondition != null) extraCondition() else true
|
||||
if (XSPUtils.getBoolean(key, default) && conditionResult) {
|
||||
block()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package com.lt2333.simplicitytools.utils.factory
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
|
||||
/**
|
||||
* System dark mode is enabled or not
|
||||
*
|
||||
* 系统深色模式是否开启
|
||||
* @return [Boolean] Whether to enable / 是否开启
|
||||
*/
|
||||
val Context.isSystemInDarkMode get() = (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES
|
||||
|
||||
/**
|
||||
* System dark mode is disable or not
|
||||
*
|
||||
* 系统深色模式是否没开启
|
||||
* @return [Boolean] Whether to enable / 是否开启
|
||||
*/
|
||||
inline val Context.isNotSystemInDarkMode get() = isSystemInDarkMode.not()
|
||||
|
||||
/**
|
||||
* dp to pxInt
|
||||
*
|
||||
* dp 转换为 pxInt
|
||||
* @param context using instance / 使用的实例
|
||||
* @return [Int]
|
||||
*/
|
||||
fun Number.dp(context: Context) = dpFloat(context).toInt()
|
||||
|
||||
/**
|
||||
* dp to pxFloat
|
||||
*
|
||||
* dp 转换为 pxFloat
|
||||
* @param context using instance / 使用的实例
|
||||
* @return [Float]
|
||||
*/
|
||||
fun Number.dpFloat(context: Context) = toFloat() * context.resources.displayMetrics.density
|
||||
BIN
app/src/main/res/drawable/app_icon.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
5
app/src/main/res/drawable/ic_baseline_fullscreen_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
|
||||
</vector>
|
||||
21
app/src/main/res/drawable/ic_fps.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M7.21,8.05H2.39v2.79H6.57v1H2.39v3.93H1.21V7h6Z"
|
||||
android:fillColor="#fff"
|
||||
android:strokeColor="#fff"/>
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M12.11,12.36H9.74v3.38H8.56V7.08h3.67c1.86,0.08 2.86,0.94 3,2.57C15.21,11.43 14.16,12.33 12.11,12.36ZM11.94,8H9.74v3.42h2.2c1.38,0 2.08,-0.59 2.11,-1.78S13.26,8.06 11.94,8Z"
|
||||
android:fillColor="#fff"
|
||||
android:strokeColor="#fff"/>
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M16.2,13.12l1.19,-0.3a2.22,2.22 0,0 0,2.53 2.12c1.3,0 2,-0.55 2.07,-1.57 0.09,-0.7 -0.56,-1.22 -1.94,-1.56l-0.76,-0.21c-1.95,-0.37 -2.86,-1.16 -2.75,-2.37 0.11,-1.46 1.13,-2.22 3,-2.28s3.09,0.78 3.43,2.32l-1.19,0.3a1.91,1.91 0,0 0,-2.15 -1.69c-1.19,0.06 -1.83,0.51 -2,1.35s0.65,1.2 2.2,1.48l0.68,0.17 0.25,0.08c1.63,0.46 2.42,1.26 2.37,2.41C23.13,15 22.05,15.85 20,15.91S16.57,15 16.2,13.12Z"
|
||||
android:fillColor="#fff"
|
||||
android:strokeColor="#fff"/>
|
||||
</vector>
|
||||
24
app/src/main/res/drawable/ic_launcher_background.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group android:scaleX="0.5625"
|
||||
android:scaleY="0.5625">
|
||||
<path
|
||||
android:pathData="M0,0h192v192h-192z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="192"
|
||||
android:startX="0"
|
||||
android:endY="0"
|
||||
android:endX="192"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FFF76B1C"/>
|
||||
<item android:offset="1" android:color="#FFFAD961"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</group>
|
||||
</vector>
|
||||
23
app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group android:scaleX="0.37125"
|
||||
android:scaleY="0.37125"
|
||||
android:translateX="18.36"
|
||||
android:translateY="18.36">
|
||||
<path
|
||||
android:pathData="M57.71,64.27 L51.6,40.71A3.48,3.48 0,0 1,55 36.35H55A3.49,3.49 0,0 1,58.41 39l4.12,17.58h0.22l4.81,-17.7a3.48,3.48 0,0 1,3.35 -2.57h2.26a3.5,3.5 0,0 1,3.35 2.51l5.15,17.76h0.22L86,39a3.49,3.49 0,0 1,3.39 -2.69h0a3.47,3.47 0,0 1,3.35 4.39L86.36,64.3A3.49,3.49 0,0 1,83 66.87h-2a3.48,3.48 0,0 1,-3.32 -2.42l-5.6,-17.62h-0.22l-5.6,17.62A3.48,3.48 0,0 1,63 66.87H61.07A3.47,3.47 0,0 1,57.71 64.27Z"
|
||||
android:fillColor="#fff"/>
|
||||
<path
|
||||
android:pathData="M99,66a9.67,9.67 0,0 1,-3.85 -4.15,14.11 14.11,0 0,1 -1.33,-6.34 14,14 0,0 1,1.33 -6.31A9.67,9.67 0,0 1,99 45a12.71,12.71 0,0 1,11.79 0,9.59 9.59,0 0,1 3.84,4.15A14,14 0,0 1,116 55.46a14.11,14.11 0,0 1,-1.34 6.34A9.59,9.59 0,0 1,110.77 66,12.71 12.71,0 0,1 99,66ZM107.93,59.56a6.66,6.66 0,0 0,1.11 -4,6.52 6.52,0 0,0 -1.11,-4 3.85,3.85 0,0 0,-6.07 0,6.52 6.52,0 0,0 -1.11,4 6.66,6.66 0,0 0,1.11 4,3.85 3.85,0 0,0 6.07,0Z"
|
||||
android:fillColor="#fff"/>
|
||||
<path
|
||||
android:pathData="M123.54,66a9.59,9.59 0,0 1,-3.84 -4.15,14.11 14.11,0 0,1 -1.34,-6.34 14,14 0,0 1,1.34 -6.31A9.59,9.59 0,0 1,123.54 45a12.73,12.73 0,0 1,11.8 0,9.59 9.59,0 0,1 3.84,4.15 14,14 0,0 1,1.34 6.31,14.11 14.11,0 0,1 -1.34,6.34A9.59,9.59 0,0 1,135.34 66a12.73,12.73 0,0 1,-11.8 0ZM132.47,59.56a6.66,6.66 0,0 0,1.11 -4,6.52 6.52,0 0,0 -1.11,-4 3.84,3.84 0,0 0,-6.06 0,6.46 6.46,0 0,0 -1.12,4 6.6,6.6 0,0 0,1.12 4,3.84 3.84,0 0,0 6.06,0Z"
|
||||
android:fillColor="#fff"/>
|
||||
<path
|
||||
android:pathData="M129.08,95.23 L97.56,77a3.23,3.23 0,0 0,-3.12 0L62.92,95.23a3.21,3.21 0,0 0,-1.57 2.71v36.4a3.2,3.2 0,0 0,1.57 2.7l31.52,18.2a3.18,3.18 0,0 0,3.12 0L129.08,137a3.22,3.22 0,0 0,1.14 -1.15,3.25 3.25,0 0,0 0.43,-1.55L130.65,97.94A3.22,3.22 0,0 0,129.08 95.23ZM96,83.35l9.51,5.49L80.24,103.43l-9.51,-5.49ZM92.88,147.12L67.6,132.53L67.6,103.35l9.51,5.49L77.11,125a3.13,3.13 0,1 0,6.25 0L83.36,112.45l9.52,5.49ZM96,112.53 L86.49,107l25.27,-14.59 9.51,5.49ZM124.4,132.53L99.13,147.12L99.13,117.94l25.27,-14.59Z"
|
||||
android:fillColor="#fff"/>
|
||||
</group>
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/ic_small_window_dark.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="63dp"
|
||||
android:height="63dp"
|
||||
android:autoMirrored="true"
|
||||
android:viewportWidth="63"
|
||||
android:viewportHeight="63">
|
||||
<path
|
||||
android:fillColor="#BCBDBE"
|
||||
android:pathData="m17.85,15.85v17.3c0,0.83 0.67,1.5 1.5,1.5h13.3c0.83,0 1.5,-0.67 1.5,-1.5L34.15,15.85c0,-0.83 -0.68,-1.5 -1.5,-1.5h-13.3c-0.82,0 -1.5,0.67 -1.5,1.5ZM29.16,30.25h-6.32c-0.32,0 -0.59,-0.27 -0.59,-0.61v-10.27c0,-0.34 0.26,-0.61 0.59,-0.61h6.32c0.32,0 0.59,0.27 0.59,0.61v10.27c0,0.34 -0.26,0.61 -0.59,0.61Z" />
|
||||
<path
|
||||
android:fillColor="#BCBDBE"
|
||||
android:pathData="m48.5,6.5L14.2,6.5c-2.32,0 -4.2,1.88 -4.2,4.2v41.3c0,2.49 2.01,4.5 4.5,4.5h34c2.49,0 4.5,-2.01 4.5,-4.5L53,11c0,-2.49 -2.01,-4.5 -4.5,-4.5ZM46.65,51.15h-30.3c-0.55,0 -1,-0.45 -1,-1L15.35,12.85c0,-0.55 0.45,-1 1,-1h30.3c0.55,0 1,0.45 1,1v37.3c0,0.55 -0.45,1 -1,1Z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/ic_small_window_light.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="63dp"
|
||||
android:height="63dp"
|
||||
android:autoMirrored="true"
|
||||
android:viewportWidth="63"
|
||||
android:viewportHeight="63">
|
||||
<path
|
||||
android:fillColor="#4D4D4D"
|
||||
android:pathData="m17.85,15.85v17.3c0,0.83 0.67,1.5 1.5,1.5h13.3c0.83,0 1.5,-0.67 1.5,-1.5L34.15,15.85c0,-0.83 -0.68,-1.5 -1.5,-1.5h-13.3c-0.82,0 -1.5,0.67 -1.5,1.5ZM29.16,30.25h-6.32c-0.32,0 -0.59,-0.27 -0.59,-0.61v-10.27c0,-0.34 0.26,-0.61 0.59,-0.61h6.32c0.32,0 0.59,0.27 0.59,0.61v10.27c0,0.34 -0.26,0.61 -0.59,0.61Z" />
|
||||
<path
|
||||
android:fillColor="#4D4D4D"
|
||||
android:pathData="m48.5,6.5L14.2,6.5c-2.32,0 -4.2,1.88 -4.2,4.2v41.3c0,2.49 2.01,4.5 4.5,4.5h34c2.49,0 4.5,-2.01 4.5,-4.5L53,11c0,-2.49 -2.01,-4.5 -4.5,-4.5ZM46.65,51.15h-30.3c-0.55,0 -1,-0.45 -1,-1L15.35,12.85c0,-0.55 0.45,-1 1,-1h30.3c0.55,0 1,0.45 1,1v37.3c0,0.55 -0.45,1 -1,1Z" />
|
||||
</vector>
|
||||
BIN
app/src/main/res/drawable/lt.jpg
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
BIN
app/src/main/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
4
app/src/main/res/values-af/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
14
app/src/main/res/values-ar/strings.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="other">غير ذلك</string>
|
||||
<string name="disable_flag_secure">السماح بلقطة الشاشة</string>
|
||||
<string name="home">الصفحة الرئيسية</string>
|
||||
<string name="home_time">عرض ساعة الشاشة الرئيسية دائماً</string>
|
||||
<string name="reboot">إعادة تشغيل النظام</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">أيقونات شريط الحالة</string>
|
||||
<string name="hide_no_sim_icon">إخفاء أيقونة No SIM</string>
|
||||
<string name="hide_sim_one_icon">إخفاء أيقونة SIM Card 1</string>
|
||||
<string name="hide_sim_two_icon">إخفاء أيقونة SIM Card 2</string>
|
||||
<string name="hide_vpn_icon">إخفاء أيقونة VPN</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-ca/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
213
app/src/main/res/values-cs/strings.xml
Normal file
@@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Výkon</string>
|
||||
<string name="lock_max_fps">Zamknout horní limit aktuální obnovovací frekvence</string>
|
||||
<string name="ui">Rozhraní</string>
|
||||
<string name="delete_on_post_notification">Odstranit zobrazení přes oznámení</string>
|
||||
<string name="delete_on_post_notification_summary">Odstranit oznámení \"Tato aplikace se zobrazuje přes ostatní aplikace\"</string>
|
||||
<string name="other">Další</string>
|
||||
<string name="disable_flag_secure">Povolit snímek obrazovky</string>
|
||||
<string name="disable_flag_secure_summary">Povolit snímek obrazovky v softwaru, který to neumožňuje\nPodpora přidávání rychlého rozbalovacího nastavení v ovládacím centru pro zabezpečení</string>
|
||||
<string name="home">Domů</string>
|
||||
<string name="home_time">Vždy zobrazovat hodiny na domovské obrazovce</string>
|
||||
<string name="reboot_host">Restartovat celý rozsah</string>
|
||||
<string name="reboot">Restartovat systém</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Ikony ve stavové liště</string>
|
||||
<string name="hide_no_sim_icon">Skrýt ikonu Žádná SIM</string>
|
||||
<string name="hide_sim_one_icon">Skrýt ikonu 1 SIM karty</string>
|
||||
<string name="hide_sim_two_icon">Skrýt ikonu 2 SIM karty</string>
|
||||
<string name="hide_vpn_icon">Skrýt ikonu VPN</string>
|
||||
<string name="hide_airplane_icon">Skrýt ikonu režimu letadlo</string>
|
||||
<string name="hide_wifi_icon">Skrýt ikonu WIFI</string>
|
||||
<string name="hide_bluetooth_icon">Skrýt ikonu Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Skrýt zvuk a ikonu režimu Nerušit</string>
|
||||
<string name="hide_alarm_icon">Skrýt ikonu budíku</string>
|
||||
<string name="hide_hotspot_icon">Skrýt ikonu přenosného hotspotu</string>
|
||||
<string name="hide_headset_icon">Skrýt ikonu sluchátek</string>
|
||||
<string name="hide_bluetooth_battery_icon">Skrýt ikonu baterie Bluetooth</string>
|
||||
<string name="hide_nfc_icon">Skrýt ikonu NFC</string>
|
||||
<string name="hide_big_hd_icon">Skrýt velkou HD ikonu</string>
|
||||
<string name="hide_small_hd_icon">Skrýt malou ikonu HD</string>
|
||||
<string name="hide_hd_no_service_icon">Skrýt ikonu HD bez služby</string>
|
||||
<string name="about">Podrobnosti</string>
|
||||
<string name="about_module">O modulu</string>
|
||||
<string name="verison">Verze</string>
|
||||
<string name="dev_coolapk">Autor Coolapk</string>
|
||||
<string name="opensource">Open Source repozitář</string>
|
||||
<string name="github_url">Vítejte více vývojářů, aby se podíleli na vývoji</string>
|
||||
<string name="issues">Zpětná vazba/návrh</string>
|
||||
<string name="issues_url">Kliknutím zobrazíte problémy GitHub</string>
|
||||
<string name="statusbar">Stavová lišta</string>
|
||||
<string name="status_bar_time_seconds">Zobrazit vteřiny</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Obnovení rychlosti sítě v sekundách</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Odstranit maximální počet ikon oznámení</string>
|
||||
<string name="main_switch">Hlavní přepínač modulu</string>
|
||||
<string name="hide_gps_icon">Skrýt ikonu GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Skrýt jednotky rychlosti sítě (/s)</string>
|
||||
<string name="Tips">Tipy</string>
|
||||
<string name="skip_waiting_time">Přeskočit upozornění na 5/10 vteřin</string>
|
||||
<string name="unlock_unlimited_cropping">Odstranit omezení oříznutí obrázků/snímků obrazovky</string>
|
||||
<string name="hide_slave_wifi_icon">Skrýt sekundární ikonu WIFI</string>
|
||||
<string name="HideLauncherIcon">Skrýt ikonu launcheru</string>
|
||||
<string name="hide_battery_percentage_icon">Skrýt baterii (%)</string>
|
||||
<string name="hide_battery_icon">Skrýt ikonu baterie</string>
|
||||
<string name="status_bar_clock_format">Formát hodin ve stavové liště</string>
|
||||
<string name="status_bar_time_year">Zobrazit rok</string>
|
||||
<string name="status_bar_time_month">Zobrazit měsíc</string>
|
||||
<string name="status_bar_time_day">Zobrazit datum</string>
|
||||
<string name="status_bar_time_week">Zobrazit den</string>
|
||||
<string name="status_bar_time_hide_space">Skrýt mezeru</string>
|
||||
<string name="allow_screenshots">Povolit snímek obrazovky</string>
|
||||
<string name="lock_max">Zamknout aktuální limit</string>
|
||||
<string name="status_bar_time_double_hour">Zobrazit čínskou 12 hodin</string>
|
||||
<string name="custom_clock_switch">Vlastní přepínač hodin</string>
|
||||
<string name="status_bar_time_period">Zobrazit AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Dvojitý řádek</string>
|
||||
<string name="status_bar_clock_size">Velikost hodin (0: neměnit)</string>
|
||||
<string name="status_bar_clock_double_line_size">Velikost dvojitého řádku (0: neměnit)</string>
|
||||
<string name="matters_needing_attention">Funkce nefunguje? </string>
|
||||
<string name="about_module_summary">Zobrazit informace o modulu</string>
|
||||
<string name="contributor_list">Seznam přispěvatelů Open source repozitáře</string>
|
||||
<string name="developer">Vývojář</string>
|
||||
<string name="thank_list">Seznam poděkování</string>
|
||||
<string name="third_party_open_source_statement">Prohlášení Open Source třetí strany</string>
|
||||
<string name="corepacth">Odstranit omezení</string>
|
||||
<string name="corepacth_summary">Podpora downgrade/různá podpis/nepodepsaná instalace</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Zabránit obnovení bílého seznamu povolených optimalizace baterie</string>
|
||||
<string name="failed_after_restart">Bude obnoven po restartu systému</string>
|
||||
<string name="battery_optimization">Optimalizace baterie</string>
|
||||
<string name="battery_optimization_summary">Rychlé otevření nabídky optimalizace baterie skryté v MIUI</string>
|
||||
<string name="remove_small_window_restrictions">Vynutit malá okna</string>
|
||||
<string name="app_coolapk_url">Přijďte a dejte nám pětihvězdičkové hodnocení</string>
|
||||
<string name="app_coolapk_url_summary">To nás může více odhalit</string>
|
||||
<string name="qq_channel">Připojte se k oficiálnímu kanálu QQ</string>
|
||||
<string name="tg_channel">Připojte se k oficiálnímu kanálu TG</string>
|
||||
<string name="tg_channel_summary">Můžete vstoupit do chatové skupiny na kanálu</string>
|
||||
<string name="discussions">Diskuse</string>
|
||||
<string name="remove_small_window_restrictions_summary">Ignorovat systémovou černou listinu a zakázání softwaru malých oken</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Odstranit boční panel zamykací obrazovky</string>
|
||||
<string name="remove_lock_screen_camera">Odstranit funkci fotoaparátu na zamykací obrazovce</string>
|
||||
<string name="only_official_default_themes_are_supported">Podporovány jsou pouze oficiální výchozí motivy</string>
|
||||
<string name="lock_one_hundred">Nastavit 100 bodů v bezpečnostní aplikaci</string>
|
||||
<string name="scope">Rozsah</string>
|
||||
<string name="scope_android">Systémový framework</string>
|
||||
<string name="scope_miuihome">Domovská obrazovka</string>
|
||||
<string name="scope_other">Ostatní</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Změnit frekvenci obnovení složky rychlosti sítě ve stavové liště na 1 s</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Zobrazení procenta baterie musí být zapnuto sami sebou</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Skrýt (/s) jednotky rychlosti ve stavové liště</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Odstranit limit 3 oznámení ve stavové liště</string>
|
||||
<string name="scope_systemui_summary">Přizpůsobit systémové rozhraní, stavovou lištu, zamykací obrazovku atd.</string>
|
||||
<string name="scope_android_summary">Po prvním povolení modulu nebo po aktualizaci modulu se funkce projeví po restartu systému</string>
|
||||
<string name="scope_other_summary">Bezpečnostní aplikace, editor galerie, baterie a výkon, atd.</string>
|
||||
<string name="scope_powerkeeper">Baterie a výkon</string>
|
||||
<string name="scope_securitycenter">Bezpečnostní aplikace</string>
|
||||
<string name="scope_mediaeditor">Editor galerie</string>
|
||||
<string name="home_time_summary">Pokud je zapnuto, hodiny nebudou skryty ve stavové liště ani v případě widgetu hodin</string>
|
||||
<string name="skip_waiting_time_summary">Ignorovat dobu čekání MIUI při ladění USB, neznámých zdrojů a přístupnosti</string>
|
||||
<string name="lock_one_hundred_summary">Nastavte skóre v bezpečnostní aplikaci na 100 bodů a zablokujte tlačítko Optimalizovat</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Ignorovat minimální limit oříznutí obrázku MIUI</string>
|
||||
<string name="hide_wifi_activity_icon">Skrýt ikonu aktivity WIFI</string>
|
||||
<string name="hide_mobile_activity_icon">Skrýt ikonu mobilní aktivity</string>
|
||||
<string name="hide_mobile_type_icon">Skrýt ikonu mobilního typu</string>
|
||||
<string name="show_weather_main_switch">Zobrazit počasí - hlavní přepínač</string>
|
||||
<string name="lock_screen">Zamykací obrazovka</string>
|
||||
<string name="notification_center">Oznamovací centrum</string>
|
||||
<string name="show_city">Zobrazit město</string>
|
||||
<string name="lock_max_fps_summary">Podpora přidávání rychlého nastavení kontrolního centra v reálném čase</string>
|
||||
<string name="control_center">Centrum ovládání</string>
|
||||
<string name="control_center_weather_summary">Verze Mi Smart Hub není aktuálně podporována</string>
|
||||
<string name="not_support">Zdá se, že používáte zastaralou verzi LSPosed nebo LSPosed není aktivní, prosím aktualizujte LSPosed nebo ho aktivujte a zkuste to znovu.</string>
|
||||
<string name="matters_needing_attention_context">Po první aktivaci nebo aktualizaci\nVětšina změn vyžaduje restartování telefonu v pravém horním rohu</string>
|
||||
<string name="are_you_sure_reboot">Opravdu chcete restartovat?</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<string name="are_you_sure_reboot_scope">Opravdu chcete restartovat celý rozsah?</string>
|
||||
<string name="hide_battery_charging_icon">Skrýt ikonu nabíjení</string>
|
||||
<string name="hide_wifi_standard_icon">Skrýt standardní ikonu WIFI</string>
|
||||
<string name="status_bar_time_center">Centrum času ve stavové liště</string>
|
||||
<string name="status_bar_layout_summary">Další rozložení stavové lišty jsou ve vývoji</string>
|
||||
<string name="status_bar_layout">Rozložení stavové lišty</string>
|
||||
<string name="layout_compatibility_mode">Režim kompatibility</string>
|
||||
<string name="left_margin">Levý okraj (0: Auto)</string>
|
||||
<string name="right_margin">Pravý okraj (0: Auto)</string>
|
||||
<string name="remove_macro_blacklist">Odstranit makro-černou listinu</string>
|
||||
<string name="hide_network_speed_splitter">Skrýt rozdělovač rychlosti sítě</string>
|
||||
<string name="remove_ota_validate_summary">- Podpořte pouze použití VAB série, prosím neotevírejte jiné série.\n- Nemusí být potřeba interní testovací kvalifikace, aby bylo možné nainstalovat celý interní testovací balíček.\n- Ti, kdo mají interní testovací oprávnění, nebudou moci přijímat aktualizace interních testů a mohou být použity k blokování aktualizací systému.\n- Po aktualizaci křížových verzí je doporučeno vymazat data.\n- Neoficiální ROM použití není podporováno.</string>
|
||||
<string name="settings">Nastavení</string>
|
||||
<string name="show_notification_importance">Zobrazit důležitost oznámení</string>
|
||||
<string name="show_notification_importance_summary">Zobrazit nastavení důležitosti oznámení, která jsou skryta v MIUI 12 a v pozdějších verzích</string>
|
||||
<string name="remove_ad">Odstranit reklamy</string>
|
||||
<string name="remove_thememanager_ads">Odstranit reklamy pro správce motivů</string>
|
||||
<string name="battery_life_function">Stránka baterie zobrazuje aktuální teplotu</string>
|
||||
<string name="enable_wave_charge_animation">Povolit animaci nabíjení vln</string>
|
||||
<string name="max_wallpaper_scale">Maximální velikost tapety</string>
|
||||
<string name="def">"Výchozí: "</string>
|
||||
<string name="current">Aktuální:</string>
|
||||
<string name="participate_in_translation">Účast na překladu</string>
|
||||
<string name="participate_in_translation_summary">Pomozte nám přeložit aplikaci do vašeho jazyka</string>
|
||||
<string name="lock_screen_charging_current">Zobrazit aktuální informace při nabíjení</string>
|
||||
<string name="current_current">Elektrický proud</string>
|
||||
<string name="remove_open_app_confirmation_popup">Odstranit otevřené vyskakovací okno aplikace</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Odebrat \"Povolit XXX otevřít XXX\" vyskakovací okno pro start řetězce</string>
|
||||
<string name="hide_volume_icon">Skrýt ikonu hlasitosti</string>
|
||||
<string name="hide_zen_icon">Skrýt ikonu ZEN</string>
|
||||
<string name="hide_icon">Skrýt ikonu</string>
|
||||
<string name="double_tap_to_sleep">Dvojím klepnutím uspat</string>
|
||||
<string name="home_double_tap_to_sleep_summary">Dvojitým klepnutím na prázdný prostor uspat zařízení</string>
|
||||
<string name="old_quick_settings_panel">Starý panel rychlého nastavení</string>
|
||||
<string name="old_qs_custom_switch">Vlastní řádky a sloupce</string>
|
||||
<string name="qs_custom_columns_unexpanded">Sloupce (Nerozbaleno)</string>
|
||||
<string name="qs_custom_rows">Řádky</string>
|
||||
<string name="qs_custom_columns">Sloupce</string>
|
||||
<string name="qs_custom_rows_horizontal">Řádky (horizontální)</string>
|
||||
<string name="status_bar_dual_row_network_speed">Rychlost sítě se dvěma řádky</string>
|
||||
<string name="status_bar_dual_row_network_speed_summary">Zobrazení rychlosti sítě nahoru a dolů</string>
|
||||
<string name="status_bar_network_speed">Rychlost sítě ve stavovém řádku</string>
|
||||
<string name="status_bar_network_speed_dual_row_size">Velikost dvojitého řádku (0: neměnit)</string>
|
||||
<string name="status_bar_network_speed_dual_row_icon">Ikona dvojitého řádku</string>
|
||||
<string name="none">Žádné</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Zarovnání dvojitého řádku</string>
|
||||
<string name="left">Vlevo</string>
|
||||
<string name="right">Vpravo</string>
|
||||
<string name="big_mobile_type_icon">Velká ikona mobilního typu</string>
|
||||
<string name="show_wifi_standard">Zobrazit Wifi Standard</string>
|
||||
<string name="can_notification_slide">Převést většinu oznámení do malého okna</string>
|
||||
<string name="battery_percentage_font_size">Velikost písma procenta baterie</string>
|
||||
<string name="zero_do_no_change">0: neměnit</string>
|
||||
<string name="big_mobile_type_icon_size">Velká velikost ikony mobilního typu</string>
|
||||
<string name="big_mobile_type_icon_bold">Velké ikony mobilního typu tučně</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Velká ikona mobilního typu nahoru a dolů</string>
|
||||
<string name="input_error">Chyba vstupu</string>
|
||||
<string name="range">Rozsah: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Velká ikona mobilního typu doleva a doprava</string>
|
||||
<string name="force_support_send_app">Vynutit otevření všech aplikací na jiném zařízení</string>
|
||||
<string name="status_bar_time_double_line_center_align">Zarovnání uprostřed dvojité řádky</string>
|
||||
<string name="default1">Výchozí</string>
|
||||
<string name="clock_center">Hodiny na střed</string>
|
||||
<string name="clock_right">Hodiny vpravo</string>
|
||||
<string name="status_bar_layout_mode">Režim rozložení stavové lišty</string>
|
||||
<string name="clock_center_and_icon_left">Střed hodin a ikona vlevo</string>
|
||||
<string name="maximum_number_of_notification_icons">Maximální počet ikon oznámení</string>
|
||||
<string name="maximum_number_of_notification_dots">Maximální počet teček oznámení</string>
|
||||
<string name="custom_mobile_type_text">Vlastní text mobilního typu</string>
|
||||
<string name="custom_mobile_type_text_switch">Přepínač textu vlastního mobilního typu</string>
|
||||
<string name="downgr">Povolit downgrade</string>
|
||||
<string name="downgr_summary">Povolit downgrade aplikací.</string>
|
||||
<string name="authcreak">Zakázat ověřování digestu</string>
|
||||
<string name="authcreak_summary">Umožňuje nainstalovat aplikace po změně souboru v apk (ignorovat neplatnou chybu).</string>
|
||||
<string name="digestCreak">Zakázat porovnávání podpisů</string>
|
||||
<string name="digestCreak_summary">Povolit přeinstalování aplikace s různými podpisy.</string>
|
||||
<string name="UsePreSig">Použít nainstalované podpisy</string>
|
||||
<string name="UsePreSig_summary">Vždy používat podpisy z již nainstalovaných aplikací.\nToto je extrémně <b>nebezpečné</b>.\nPovolte pouze, když je opravdu potřeba!</string>
|
||||
<string name="enhancedMode">Vylepšený režim</string>
|
||||
<string name="enhancedMode_summary">Předejte nějaké ověření v aplikaci</string>
|
||||
<string name="rear_display">Zadní displej (11Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Zobrazit sekundy</string>
|
||||
<string name="sound">Zvuk</string>
|
||||
<string name="media_volume_steps_switch">Kroky hlasitosti médií</string>
|
||||
<string name="allow_untrusted_touches">Povolit nedůvěryhodné dotyky</string>
|
||||
<string name="take_effect_after_reboot">Převést se po restartu</string>
|
||||
<string name="media_volume_steps_summary">Zapnutí může způsobit, že posun panelu hlasitosti zmizí nebo že hlasitost Bluetooth je abnormální</string>
|
||||
<string name="can_notification_slide_summary">Některá oznámení přes Mi Push nemusí být podporována.</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-da/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
4
app/src/main/res/values-de/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
4
app/src/main/res/values-el/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
250
app/src/main/res/values-es/strings.xml
Normal file
@@ -0,0 +1,250 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Rendimiento</string>
|
||||
<string name="lock_max_fps">Bloquear la tasa actual de refresco por arriba del límite</string>
|
||||
<string name="ui">Interfaz</string>
|
||||
<string name="delete_on_post_notification">Eliminar notificación de mostrar encima</string>
|
||||
<string name="delete_on_post_notification_summary">Eliminar la notificación \"Está aplicación se está mostrando sobre otras aplicaciones\"</string>
|
||||
<string name="other">Otro</string>
|
||||
<string name="disable_flag_secure">Permitir capturas de pantalla</string>
|
||||
<string name="disable_flag_secure_summary">Permite realizar capturas de pantalla en aplicaciones que no lo permiten\nPor seguridad permite añadir un ajuste rápido en el Centro de Control</string>
|
||||
<string name="home">Inicio</string>
|
||||
<string name="home_time">Mostrar siempre el reloj en la pantalla de inicio</string>
|
||||
<string name="reboot_host">Reinicia todo el ámbito</string>
|
||||
<string name="reboot">Reiniciar el sistema</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Iconos de la barra de estado</string>
|
||||
<string name="hide_no_sim_icon">Ocultar icono sin SIM</string>
|
||||
<string name="hide_sim_one_icon">Ocultar icono SIM 1</string>
|
||||
<string name="hide_sim_two_icon">Ocultar icono SIM 2</string>
|
||||
<string name="hide_vpn_icon">Ocultar icono VPN</string>
|
||||
<string name="hide_airplane_icon">Ocultar icono modo fuera de línea</string>
|
||||
<string name="hide_wifi_icon">Ocultar icono WIFI</string>
|
||||
<string name="hide_bluetooth_icon">Ocultar icono Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Ocultar icono de Sonido y No Molestar</string>
|
||||
<string name="hide_alarm_icon">Ocultar icono de alarma</string>
|
||||
<string name="hide_hotspot_icon">Ocultar icono de punto de accesos inalámbrico</string>
|
||||
<string name="hide_headset_icon">Ocultar icono de audífonos</string>
|
||||
<string name="hide_bluetooth_battery_icon">Ocultar icono de batería de Bluetooth</string>
|
||||
<string name="hide_nfc_icon">Ocultar icono de NFC</string>
|
||||
<string name="hide_big_hd_icon">Ocultar icono grande HD</string>
|
||||
<string name="hide_small_hd_icon">Ocultar icono pequeño HD</string>
|
||||
<string name="hide_new_hd_icon">Ocultar nuevo icono HD</string>
|
||||
<string name="hide_hd_no_service_icon">Ocultar icono sin servicio HD</string>
|
||||
<string name="about">Acerca de</string>
|
||||
<string name="about_module">Acerca del Módulo</string>
|
||||
<string name="verison">Versión</string>
|
||||
<string name="dev_coolapk">Autor Coolapk</string>
|
||||
<string name="opensource">Repositorio de Código Abierto</string>
|
||||
<string name="github_url">Más desarrolladores están invitados a participar en el proyecto</string>
|
||||
<string name="issues">Comentarios/Sugerencias</string>
|
||||
<string name="issues_url">Clic para ver errores en GitHub</string>
|
||||
<string name="xposeddescription">Herramienta de personalización para MIUI13+(Android 12+)</string>
|
||||
<string name="statusbar">Barra de estado</string>
|
||||
<string name="status_bar_time_seconds">Mostrar segundos</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">La velocidad de red se actualiza en segundos</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Eliminar el número máximo de iconos de notificaciones</string>
|
||||
<string name="main_switch">Interruptor principal del módulo</string>
|
||||
<string name="hide_gps_icon">Ocultar icono GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Ocultar unidad (/s) en velocidad de red</string>
|
||||
<string name="menu">Menú</string>
|
||||
<string name="Tips">Consejos</string>
|
||||
<string name="skip_waiting_time">Saltar tiempo de advertencia de 5/10 segundos</string>
|
||||
<string name="unlock_unlimited_cropping">Elimina la restricción de recorte en imágenes/capturas de pantalla</string>
|
||||
<string name="hide_slave_wifi_icon">Ocultar icono de WIFI secundario</string>
|
||||
<string name="HideLauncherIcon">Esconder el icono del Launcher</string>
|
||||
<string name="hide_battery_percentage_icon">Esconder la batería (%)</string>
|
||||
<string name="hide_battery_icon">Ocultar icono de batería</string>
|
||||
<string name="status_bar_clock_format">Formato de reloj de la barra de estado</string>
|
||||
<string name="status_bar_time_year">Mostrar año</string>
|
||||
<string name="status_bar_time_month">Mostrar mes</string>
|
||||
<string name="status_bar_time_day">Mostrar fecha</string>
|
||||
<string name="status_bar_time_week">Mostrar día</string>
|
||||
<string name="status_bar_time_hide_space">Ocultar espacio</string>
|
||||
<string name="allow_screenshots">Permitir captura de pantalla</string>
|
||||
<string name="lock_max">Bloquear límite actual</string>
|
||||
<string name="status_bar_time_double_hour">Mostrar doce horas Chino</string>
|
||||
<string name="custom_clock_switch">Interruptor de reloj personalizado</string>
|
||||
<string name="status_bar_time_period">Mostrar AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Fila dual</string>
|
||||
<string name="status_bar_clock_size">Tamaño del reloj (0: no cambiar)</string>
|
||||
<string name="status_bar_clock_double_line_size">Tamaño de la fila dual (0: no cambiar)</string>
|
||||
<string name="matters_needing_attention">¿Alguna característica no funciona? </string>
|
||||
<string name="Done">Ok</string>
|
||||
<string name="about_module_summary">Ver información relacionada con el módulo</string>
|
||||
<string name="contributor_list">Lista de colaboradores del repositorio de código abierto</string>
|
||||
<string name="developer">Desarrollador</string>
|
||||
<string name="thank_list">Agradecimientos</string>
|
||||
<string name="third_party_open_source_statement">Declaración de Código Abierto de Terceros</string>
|
||||
<string name="corepacth">Eliminar restricciones</string>
|
||||
<string name="corepacth_summary">Permite instalar versiones anteriores/con firma diferente/sin firma</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Evita la recuperación de la lista de blanca de optimización de batería</string>
|
||||
<string name="failed_after_restart">Se restaurará después del reinicio del sistema</string>
|
||||
<string name="battery_optimization">Optimización de la batería</string>
|
||||
<string name="battery_optimization_summary">Abre rápidamente el menú oculto por MIUI de optimización de batería</string>
|
||||
<string name="remove_small_window_restrictions">Fuerza ventanas pequeñas</string>
|
||||
<string name="app_coolapk_url">Ayúdanos con una reseña de cinco estrellas</string>
|
||||
<string name="app_coolapk_url_summary">Esto hará que más personas nos encuentren</string>
|
||||
<string name="qq_channel">Únete al canal oficial de QQ</string>
|
||||
<string name="tg_channel">Únete al canal oficial de TG</string>
|
||||
<string name="tg_channel_summary">Pues entrar al grupo de chat desde la página del canal</string>
|
||||
<string name="discussions">Discusiones</string>
|
||||
<string name="remove_small_window_restrictions_summary">Ignorar la lista negra del sistema y bloqueo de software para ventanas pequeñas</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Remueve el panel lateral de la pantalla de bloqueo</string>
|
||||
<string name="remove_lock_screen_camera">Remueve el acceso a la cámara en la pantalla de bloqueo</string>
|
||||
<string name="only_official_default_themes_are_supported">Solo temas oficiales por defecto son soportados</string>
|
||||
<string name="lock_one_hundred">Estable 100 puntos en la aplicación de Seguridad</string>
|
||||
<string name="scope">Ámbito</string>
|
||||
<string name="scope_android">Framework del sistema</string>
|
||||
<string name="scope_systemui">UI del Sistema</string>
|
||||
<string name="scope_miuihome">Pantalla de inicio</string>
|
||||
<string name="scope_other">Otros</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Cambia la frecuencia de actualización de la velocidad de red de la barra de estado a 1 s</string>
|
||||
<string name="hide_battery_percentage_icon_summary">La función de porcentaje de batería debe de ser activada manualmente</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Ocultar la unidad (/s) de la velocidad de red en la barra de estado</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Eliminar el límite de 3 notificaciones en la barra de estado</string>
|
||||
<string name="scope_systemui_summary">Personaliza la interfaz del sistema, barra de estado, pantalla de bloqueo, etc.</string>
|
||||
<string name="scope_android_summary">Después de activar el módulo por primera vez o al actualizarlo, los cambios serán aplicados después de reiniciar el sistema</string>
|
||||
<string name="scope_other_summary">App de seguridad, Editor de galería, Batería y rendimiento, etc.</string>
|
||||
<string name="scope_powerkeeper">Batería y rendimiento</string>
|
||||
<string name="scope_securitycenter">App de seguridad</string>
|
||||
<string name="scope_mediaeditor">Editor de Galería</string>
|
||||
<string name="home_time_summary">Cuando se activa, el reloj no se ocultará en la barra de estado incluso si hay un widget de reloj</string>
|
||||
<string name="skip_waiting_time_summary">Ignora el tiempo de espera de MIUI cuando se habilita la depuración USB, fuentes desconocidas y accesibilidad</string>
|
||||
<string name="lock_one_hundred_summary">Establecer la puntuación de la app de Seguridad en 100 puntos y bloquea el botón de Optimización</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Ignorar el límite mínimo de recorte de imagen por MIUI</string>
|
||||
<string name="hide_wifi_activity_icon">Ocultar icono de actividad de WIFI</string>
|
||||
<string name="hide_mobile_activity_icon">Ocultar icono de actividad red móvil</string>
|
||||
<string name="hide_mobile_type_icon">Ocultar icono tipo de red móvil</string>
|
||||
<string name="show_weather_main_switch">Mostrar Tiempo - Interruptor Principal</string>
|
||||
<string name="lock_screen">Pantalla de bloqueo</string>
|
||||
<string name="notification_center">Centro de Notificaciones</string>
|
||||
<string name="show_city">Mostrar la ciudad</string>
|
||||
<string name="lock_max_fps_summary">Permite añadir un mosaico de acceso rápido en el centro de control para un cambio rápido</string>
|
||||
<string name="control_center">Centro de Control</string>
|
||||
<string name="control_center_weather_summary">Esta versión de Mi Smart Hub no es compatible</string>
|
||||
<string name="not_support">Al parecer estás usando una versión antigua de LSPosed o LSPosed no está activo, por favor actualiza LSPosed o actívalo e intenta de nuevo.</string>
|
||||
<string name="matters_needing_attention_context">Se recomienda reiniciar el teléfono después de la primera activación o al actualizarla\nLa mayoría de los cambios requieren un reinicio desde la esquina superior derecha para que surtan efecto</string>
|
||||
<string name="are_you_sure_reboot">¿Está seguro de reiniciar?</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="are_you_sure_reboot_scope">¿Está seguro de reiniciar todo el ámbito?</string>
|
||||
<string name="hide_battery_charging_icon">Ocultar el icono de carga</string>
|
||||
<string name="hide_wifi_standard_icon">Ocultar el icono estándar de WIFI</string>
|
||||
<string name="status_bar_time_center">Centrar el reloj en la barra de estado</string>
|
||||
<string name="status_bar_layout_summary">Más diseños para la barra de estado están en desarrollo</string>
|
||||
<string name="status_bar_layout">Diseño de la barra de estado</string>
|
||||
<string name="layout_compatibility_mode">Modo de compatibilidad</string>
|
||||
<string name="left_margin">Margen izquierdo (0: Auto)</string>
|
||||
<string name="right_margin">Margen derecho (0: Auto)</string>
|
||||
<string name="layout_compatibility_mode_summary">Forzar el diseño a pantalla completa (compatible con cualquier forma de pantalla)</string>
|
||||
<string name="remove_macro_blacklist">Remueve la lista negra de game macro</string>
|
||||
<string name="hide_network_speed_splitter">Remover el divisor de la velocidad de red</string>
|
||||
<string name="updater">Actualizador</string>
|
||||
<string name="remove_ota_validate">*Remueve validación de OTA [LAB]</string>
|
||||
<string name="remove_ota_validate_summary">- Sólo soporta series que usen VAB, por favor no use en otras series.\n- No se requiere aplicar para pruebas internas para flashear los paquetes completos de éstos.\n- Para aquellos que cuentan con permisos, ya no serán capaces de recibir actualizaciones de pruebas internas, y se podrá usar para bloquear actualizaciones del sistema.\n Después de actualizar entre versiones diferentes, se recomienda borrar datos.\n- ROM no oficiales no están soportadas.</string>
|
||||
<string name="settings">Configuración</string>
|
||||
<string name="show_notification_importance">Mostrar importancia de notificaciones</string>
|
||||
<string name="show_notification_importance_summary">Mostrar configuración de importancia de notificación que está oculto en MIUI 12 y versiones posteriores</string>
|
||||
<string name="remove_ad">Remover publicidad</string>
|
||||
<string name="remove_thememanager_ads">Remueve publicidad del gestor de Temas</string>
|
||||
<string name="battery_life_function">La página de batería muestra la temperatura actual</string>
|
||||
<string name="enable_wave_charge_animation">Activar la animación de carga de onda</string>
|
||||
<string name="max_wallpaper_scale">Escala máxima de fondo de pantalla</string>
|
||||
<string name="def">"Predeterminado: "</string>
|
||||
<string name="current">Actual:</string>
|
||||
<string name="participate_in_translation">Participa en la traducción</string>
|
||||
<string name="participate_in_translation_summary">Ayúdanos a traducir la app en tu idioma</string>
|
||||
<string name="lock_screen_charging_current">Mostrar la información de corriente durante la carga</string>
|
||||
<string name="current_current">Corriente de carga</string>
|
||||
<string name="remove_open_app_confirmation_popup">Remover popup de inicio en cadena</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Eliminar ventana de inicio en cadena \"Permitir XXX abrir XXX\"</string>
|
||||
<string name="hide_volume_icon">Ocultar icono de volumen</string>
|
||||
<string name="hide_zen_icon">Ocultar icono ZEN</string>
|
||||
<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>
|
||||
<string name="status_bar_dual_row_network_speed">Velocidad de red en fila dual</string>
|
||||
<string name="status_bar_dual_row_network_speed_summary">Mostrar velocidad de subida y bajada</string>
|
||||
<string name="status_bar_network_speed">Velocidad de red en barra de estado</string>
|
||||
<string name="status_bar_network_speed_dual_row_size">Tamaño de fila dual (0: no cambiar)</string>
|
||||
<string name="status_bar_network_speed_dual_row_icon">Icono de fila dual</string>
|
||||
<string name="none">Ninguno</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Alineación de icono en fila dual</string>
|
||||
<string name="left">Izquierda</string>
|
||||
<string name="right">Derecha</string>
|
||||
<string name="big_mobile_type_icon">Icono grande de red móvil</string>
|
||||
<string name="show_wifi_standard">Mostrar estándar de Wifi</string>
|
||||
<string name="can_notification_slide">Hacer que la mayoría de las notificaciones puedan abrirse en ventana flotante</string>
|
||||
<string name="battery_percentage_font_size">Tamaño de la fuente del porcentaje de batería</string>
|
||||
<string name="zero_do_no_change">0: sin cambios</string>
|
||||
<string name="big_mobile_type_icon_size">Tamaño del icono red móvil grande</string>
|
||||
<string name="big_mobile_type_icon_bold">Icono red móvil grande en negrita</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Posición arriba y abajo del icono red móvil grande</string>
|
||||
<string name="input_error">Error de entrada</string>
|
||||
<string name="range">Rango: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Margen izquierdo y derecho del icono de red móvil grande</string>
|
||||
<string name="cast">Transmitir</string>
|
||||
<string name="force_support_send_app">Forzar que todas las apps soporten abrir en otro dispositivo</string>
|
||||
<string name="status_bar_time_double_line_center_align">Alinear al centro fila dual</string>
|
||||
<string name="default1">Por defecto</string>
|
||||
<string name="clock_center">Reloj centrado</string>
|
||||
<string name="clock_right">Reloj a la derecha</string>
|
||||
<string name="status_bar_layout_mode">Modo de diseño de barra de estado</string>
|
||||
<string name="clock_center_and_icon_left">Centrar reloj e icono a la izquierda</string>
|
||||
<string name="maximum_number_of_notification_icons">Número máximo de iconos de notificación</string>
|
||||
<string name="maximum_number_of_notification_dots">Número máximo de puntos de notificaciones</string>
|
||||
<string name="custom_mobile_type_text">Texto red móvil personalizado</string>
|
||||
<string name="custom_mobile_type_text_switch">Interruptor texto red móvil personalizado</string>
|
||||
<string name="downgr">Permitir volver a la versión anterior</string>
|
||||
<string name="downgr_summary">Permitir volver a la versión anterior de la aplicación.</string>
|
||||
<string name="authcreak">Deshabilitar verificación de digest</string>
|
||||
<string name="authcreak_summary">Permite instalar las apps después de modificar el archivo apk (ignorar error de digest inválido).</string>
|
||||
<string name="digestCreak">Deshabilitar comparación de firmas</string>
|
||||
<string name="digestCreak_summary">Permitir reinstalar apps con firmas diferentes.</string>
|
||||
<string name="UsePreSig">Usar firmas instaladas</string>
|
||||
<string name="UsePreSig_summary">Usar siempre las firmas de las aplicaciones instaladas cuando se instale una.\nEsto es extremadamente<b<peligroso</b>.\n¡Habilitar únicamente cuando sea necesario!</string>
|
||||
<string name="enhancedMode">Modo mejorado</string>
|
||||
<string name="enhancedMode_summary">Pasar algunas validaciones en la aplicación</string>
|
||||
<string name="rear_display">Pantalla trasera (11Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Mostrar segundos en el reloj</string>
|
||||
<string name="sound">Sonido</string>
|
||||
<string name="media_volume_steps_switch">Pasos de volumen multimedia</string>
|
||||
<string name="allow_untrusted_touches">Permitir toques no confiables</string>
|
||||
<string name="take_effect_after_reboot">Se activa después de reiniciar</string>
|
||||
<string name="media_volume_steps_summary">Activar esta opción puede hacer que el desplazamiento de la barra de volumen se congele o que el volumen Bluetooth sea anormal</string>
|
||||
<string name="can_notification_slide_summary">Es posible que algunas notificaciones a través de Mi Push no sean soportadas.</string>
|
||||
<string name="screen_hole_location">Ubicación del agujero de pantalla</string>
|
||||
<string name="custom_clock_mode">Modo de reloj personalizado</string>
|
||||
<string name="custom_clock_format_geek">Formato de reloj</string>
|
||||
<string name="off">Apagado</string>
|
||||
<string name="center">Centro</string>
|
||||
<string name="left_or_right">Izquierda o Derecha</string>
|
||||
<string name="preset">Preajuste</string>
|
||||
<string name="geek">Geek</string>
|
||||
<string name="do_not_clear_app">Evitar cerrar apps en segundo plano</string>
|
||||
<string name="do_not_clear_app_summary">Puede incrementar el consumo de batería, recomendado con \"Hacer el Millet más agresivo\", NO recomendado para usar con tombstones</string>
|
||||
<string name="make_millet_more_aggressive">Hacer el Millet más agresivo</string>
|
||||
<string name="make_millet_more_aggressive_summary">Permitr a Millet congelar apps mientras las apps en segundo plano tengan notificaciones, servicios y procesos ejecutándose.\nApps que no se deseen congelar se pueden configurar como Sin restricciones en Ahorro de batería.\nPor favor desinstala módulos relacionados con tombstone y NoANR antes de activar esta opción.</string>
|
||||
<string name="make_millet_ignore_active">Permitir a Millet congelar apps activas</string>
|
||||
<string name="make_millet_ignore_active_summary">Muy agresivo y puede afectar el comportamiento de la aplicación</string>
|
||||
<string name="pkg_installer">Instalador de Paquetes</string>
|
||||
<string name="pkg_installer_summary">Desactivar la comprobación del conteo de la instalación</string>
|
||||
<string name="big_mobile_type_only_show_network_card">Tipo de móvil grande solo muestra tarjeta de red</string>
|
||||
<string name="big_mobile_type_location">Ubicación del tipo de red móvil grande</string>
|
||||
<string name="miuihome_recentview_remove_card_animation">Modificar la animación de marcado de tarjetas</string>
|
||||
<string name="miuihome_recentview_remove_card_animation_summary">Modificar el efecto de animación al remover ventana de tareas recientes</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening">Deshabilitar atenuación de fondo de pantalla</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Esto deshabilitará el efecto en el que el fondo de pantalla se ilumina gradualmente cuando se abre y se cierra una tarea reciente</string>
|
||||
<string name="miuihome_scroll_icon_name">Desplazar el nombre de la app</string>
|
||||
<string name="miuihome_scroll_icon_name_summary">Si el nombre de la aplicación es demasiado largo se mostrará con desplazamiento y sin ningúna línea nueva</string>
|
||||
<string name="miuihome_shortcut_add_small_window">Añadir ventana al menú de accesos directos</string>
|
||||
<string name="miuihome_shortcut_add_small_window_summary">Mantener presionando el icono del escritorio para añadir a una ventana de acceso rápido</string>
|
||||
<string name="miuihome_shortcut_add_small_window_title">Ventana pequeña </string>
|
||||
<string name="click_to_view_use_cases">Clic para ver casos de uso</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-fi/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
168
app/src/main/res/values-fr/strings.xml
Normal file
@@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="lock_max_fps">Verrouiller le taux de rafraîchissement actuel</string>
|
||||
<string name="delete_on_post_notification">Supprimer l\'affichage sur la notification</string>
|
||||
<string name="delete_on_post_notification_summary">Supprimer la notification \"Cette application s\'affiche au-dessus des autres applications\"</string>
|
||||
<string name="other">Autre</string>
|
||||
<string name="disable_flag_secure">Permettre la capture d\'écran</string>
|
||||
<string name="disable_flag_secure_summary">Permettre une capture d\'écran dans un logiciel qui ne permet pas\najouter des paramètres rapides dans le centre de contrôle pour la sécurité</string>
|
||||
<string name="home">Homepage</string>
|
||||
<string name="home_time">Toujours afficher l\'horloge à l\'écran d\'accueil</string>
|
||||
<string name="reboot_host">Redémarrer SystemUI</string>
|
||||
<string name="reboot">Redémarrer le système</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Icônes de la barre d\'état</string>
|
||||
<string name="hide_no_sim_icon">Masquer l\'icône Aucune SIM</string>
|
||||
<string name="hide_sim_one_icon">Masquer l\'icône SIM 1</string>
|
||||
<string name="hide_sim_two_icon">Masquer l\'icône SIM 2</string>
|
||||
<string name="hide_vpn_icon">Masquer l\'icône VPN</string>
|
||||
<string name="hide_airplane_icon">Masquer l\'icône du mode avion</string>
|
||||
<string name="hide_wifi_icon">Masquer l\'icône WiFi</string>
|
||||
<string name="hide_bluetooth_icon">Masquer l\'icône Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Masquer l\'icône Sonnerie et Ne Pas Déranger</string>
|
||||
<string name="hide_alarm_icon">Cacher l\'icône de l\'horloge</string>
|
||||
<string name="hide_hotspot_icon">Masquer l\'icône de point d\'accès mobile</string>
|
||||
<string name="hide_headset_icon">Masquer l\'icône de casque</string>
|
||||
<string name="hide_bluetooth_battery_icon">Masquer l\'icône de Batterie Bluetooth</string>
|
||||
<string name="hide_big_hd_icon">Masquer l\'icône HD grosse</string>
|
||||
<string name="hide_small_hd_icon">Masquer l\'icône HD petite</string>
|
||||
<string name="hide_hd_no_service_icon">Masquer l\'icône HD Non Service</string>
|
||||
<string name="about">À propos</string>
|
||||
<string name="about_module">À propos du Module</string>
|
||||
<string name="dev_coolapk">Développeur en Coolapk</string>
|
||||
<string name="opensource">Référentiel Open Source</string>
|
||||
<string name="github_url">Bienvenue à d\'autres développeurs pour participer au développement</string>
|
||||
<string name="issues">Feed-back/Proposition</string>
|
||||
<string name="issues_url">Cliquez pour voir GitHub</string>
|
||||
<string name="statusbar">Barre d\'État</string>
|
||||
<string name="status_bar_time_seconds">Affichage des secondes</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Rafraichissement de la vitesse du réseau en secondes</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Supprimer le nombre maximum d\'icônes de notification</string>
|
||||
<string name="main_switch">Interrupteur Généra</string>
|
||||
<string name="hide_gps_icon">Masquer l\'icône GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Masquer les unités de vitesse réseau (/s)</string>
|
||||
<string name="Tips">Conseils</string>
|
||||
<string name="unlock_unlimited_cropping">Supprimer la restriction lors du recadrage des photos/captures d\'écran</string>
|
||||
<string name="hide_slave_wifi_icon">Masquer l\'icône secondaire WIFI</string>
|
||||
<string name="HideLauncherIcon">Masquer l\'icône en Homepage</string>
|
||||
<string name="hide_battery_percentage_icon">Masquer l\'icône Batterie(%)</string>
|
||||
<string name="hide_battery_icon">Masquer l\'icône batterie</string>
|
||||
<string name="status_bar_clock_format">Format de l\'horloge de la barre d\'état</string>
|
||||
<string name="status_bar_time_year">Afficher l\'année</string>
|
||||
<string name="status_bar_time_month">Afficher le mois</string>
|
||||
<string name="status_bar_time_day">Afficher la date</string>
|
||||
<string name="status_bar_time_week">Afficher les jours</string>
|
||||
<string name="status_bar_time_hide_space">Masquer l\'écart</string>
|
||||
<string name="allow_screenshots">Permettre la capture d\'écran</string>
|
||||
<string name="lock_max">Verrouiller la limite courante</string>
|
||||
<string name="status_bar_time_double_hour">Douze heures Chinoise</string>
|
||||
<string name="custom_clock_switch">Interrupteur généra de l\'horloge</string>
|
||||
<string name="status_bar_time_period">Afficher AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Double ligne</string>
|
||||
<string name="status_bar_clock_size">Taille de l\'horloge (0: ne pas changer)</string>
|
||||
<string name="status_bar_clock_double_line_size">Taille de double ligne (0: ne pas changer)</string>
|
||||
<string name="matters_needing_attention">Fonctionnalité ne fonctionne pas ? </string>
|
||||
<string name="Done">Ok</string>
|
||||
<string name="about_module_summary">Informations Relatives au module</string>
|
||||
<string name="contributor_list">Liste des contributeurs</string>
|
||||
<string name="developer">Développeur</string>
|
||||
<string name="thank_list">Liste de remerciements</string>
|
||||
<string name="third_party_open_source_statement">Déclaration Open Source Tiers</string>
|
||||
<string name="corepacth">Supprimer les restrictions</string>
|
||||
<string name="corepacth_summary">Prise en charge de la rétrograde/de différentes signatures/installation non signée</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Empêcher la récupération de la liste blanche de l\'optimisation de la batterie</string>
|
||||
<string name="failed_after_restart">Il sera restauré après le redémarrage du système</string>
|
||||
<string name="battery_optimization">Optimisation de la batterie</string>
|
||||
<string name="battery_optimization_summary">Ouvrir commodément le menu d\'optimisation de la batterie masqué par MIUI</string>
|
||||
<string name="remove_small_window_restrictions">Forcer les petites fenêtres</string>
|
||||
<string name="app_coolapk_url">Ddonnez un avis cinq étoiles</string>
|
||||
<string name="app_coolapk_url_summary">Cela peut nous rendre plus découverts</string>
|
||||
<string name="qq_channel">Joignez la chaîne officielle en QQ</string>
|
||||
<string name="tg_channel">Joignez la chaîne officielle en Télégramme</string>
|
||||
<string name="tg_channel_summary">Vous pouvez entrer dans le groupe de discussion sur la page de la chaîne</string>
|
||||
<string name="remove_small_window_restrictions_summary">Ignorer la liste noire du système et l\'interdiction du logiciel des petites fenêtres</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Supprimer le panneau latéral de l\'écran de verrouillage</string>
|
||||
<string name="remove_lock_screen_camera">Supprimer le caméra de l\'écran de verrouillage</string>
|
||||
<string name="only_official_default_themes_are_supported">Seuls les thèmes officiels par défaut sont supportés</string>
|
||||
<string name="lock_one_hundred">Définir 100 points dans la Centre Security</string>
|
||||
<string name="scope">Aapplication activée</string>
|
||||
<string name="scope_android">Cadre du Système</string>
|
||||
<string name="scope_miuihome">Homepage</string>
|
||||
<string name="scope_other">Autres</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Changer la fréquence d\'actualisation du composant de vitesse réseau de la barre d\'état à 1s</string>
|
||||
<string name="hide_battery_percentage_icon_summary">La fonction d\'affichage du pourcentage de la batterie doit être activée par vous-même</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Masquer les unités (/s) de la vitesse réseau en barre d\'état</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Supprimer la limite de 3 notifications en barre d\'état</string>
|
||||
<string name="scope_systemui_summary">Personnaliser l\'interface système, la barre d\'état, l\'écran de verrouillage, etc.</string>
|
||||
<string name="scope_android_summary">Après avoir activé le module pour la première fois ou le module est mis à jour, la fonctionnalité prendra effet après le redémarrage du système</string>
|
||||
<string name="scope_other_summary">Centre de Sécurité, Éditeur de Galerie, Batterie et Performances, etc.</string>
|
||||
<string name="scope_powerkeeper">Batterie et performance</string>
|
||||
<string name="scope_securitycenter">Centre de Sécurité</string>
|
||||
<string name="scope_mediaeditor">Éditeur de Galerie</string>
|
||||
<string name="home_time_summary">Quand activé, l\'horloge ne sera pas manqueé en barre d\'état même s\'il y a un widget horloge</string>
|
||||
<string name="skip_waiting_time_summary">Ignorer le temps d\'attente de MIUI lorsque le débogage USB, les sources inconnues et l\'accessibilité</string>
|
||||
<string name="lock_one_hundred_summary">Définissez le score sur la Centre Security à 100 points et bloquez le bouton optimiser</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Ignorer la limite minimale de recadrage d\'image par MIUI</string>
|
||||
<string name="hide_wifi_activity_icon">Masquer l\'icône WIFI activeé</string>
|
||||
<string name="hide_mobile_activity_icon">Masquer l\'icône trafic mobile activeé</string>
|
||||
<string name="hide_mobile_type_icon">Masquer l\'icône de type trafic mobile</string>
|
||||
<string name="show_weather_main_switch">Afficher la météo - Interrupteur principal</string>
|
||||
<string name="lock_screen">Écran de Verrouillage</string>
|
||||
<string name="notification_center">Centre de Notifications</string>
|
||||
<string name="show_city">Afficher la ville</string>
|
||||
<string name="lock_max_fps_summary">Prise en charge de l\'ajout des paramètres rapides du centre de contrôle déroulant pour le changement en temps réel</string>
|
||||
<string name="control_center">Centre de Contrôle</string>
|
||||
<string name="control_center_weather_summary">La version Mi Smart Hub n\'est pas supportée pour le moment</string>
|
||||
<string name="not_support">Vous semblez utiliser une version obsolète de LSPosed ou LSPosed n\'est pas active, veuillez mettre à jour LSPosed ou l\'activer et réessayer.</string>
|
||||
<string name="matters_needing_attention_context">Il est recommandé de redémarrer le téléphone après la première activation ou la première mise à jour\nLa plupart des modifications nécessitent un redémarrage SystemUI dans le coin supérieur droit pour prendre effet</string>
|
||||
<string name="are_you_sure_reboot">Êtes-vous sûr de vouloir redémarrer ?</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<string name="are_you_sure_reboot_scope">Êtes-vous sûr de redémarrer SystemUI?</string>
|
||||
<string name="hide_battery_charging_icon">Masquer l\'icône de charge</string>
|
||||
<string name="hide_wifi_standard_icon">Masquer l\'icône WIFI standard</string>
|
||||
<string name="status_bar_time_center">Horloge au centre en barre d\'état</string>
|
||||
<string name="status_bar_layout_summary">Plus de mises style barre d\'état sont en cours de développement</string>
|
||||
<string name="status_bar_layout">Style de la barre d\'état</string>
|
||||
<string name="layout_compatibility_mode">Mode Compatibilité</string>
|
||||
<string name="left_margin">Marge gauche (0: Auto)</string>
|
||||
<string name="right_margin">Marge droite (0: Auto)</string>
|
||||
<string name="remove_macro_blacklist">Supprimer la liste noire des macros du jeu</string>
|
||||
<string name="hide_network_speed_splitter">Masquer le écart de vitesse du réseau</string>
|
||||
<string name="updater">Mise à jour</string>
|
||||
<string name="remove_ota_validate">*Supprimer OTA valider [LAB]</string>
|
||||
<string name="remove_ota_validate_summary">- Supporte uniquement l\'utilisation de la série VAB, s\'il vous plaît ne pas ouvrir d\'autres séries.\n- Pas besoin de qualification de test interne pour flash dans le package de test interne complet.\n- Ceux qui ont une permission de test interne ne seront pas en mesure de recevoir des mises à jour de test internes, et peuvent être utilisés pour bloquer les mises à jour du système.\n- Après une mise à jour de type multi-version, il est recommandé d\'effacer les données.\n- L\'utilisation non officielle de la ROM n\'est pas prise en charge.</string>
|
||||
<string name="settings">Réglages</string>
|
||||
<string name="show_notification_importance">Afficher l\'importance notification</string>
|
||||
<string name="show_notification_importance_summary">Afficher les paramètres d\'importance de la notification qui sont manqueés dans les versions MIUI 12 et ultérieures</string>
|
||||
<string name="remove_ad">Supprimez les pubs</string>
|
||||
<string name="remove_thememanager_ads">Supprimer les publicités pour le gestionnaire de thème</string>
|
||||
<string name="battery_life_function">La page de la batterie affiche la température actuelle</string>
|
||||
<string name="enable_wave_charge_animation">Activer l\'animation de chargement de la vague</string>
|
||||
<string name="max_wallpaper_scale">Échelle maximum du fond d\'écran</string>
|
||||
<string name="def">"Défaut: "</string>
|
||||
<string name="current">Actuelles:</string>
|
||||
<string name="participate_in_translation">Participer à la traduction</string>
|
||||
<string name="participate_in_translation_summary">Aidez-nous à traduire l\'application dans votre langue</string>
|
||||
<string name="lock_screen_charging_current">Afficher les informations actuelles pendant le chargement</string>
|
||||
<string name="current_current">Actuelles</string>
|
||||
<string name="hide_volume_icon">Masquer l\'icône de le volume</string>
|
||||
<string name="hide_zen_icon">Masquer l\'icône ZEN</string>
|
||||
<string name="hide_icon">Masquer l\'icône</string>
|
||||
<string name="double_tap_to_sleep">Double tapper pour veille</string>
|
||||
<string name="home_double_tap_to_sleep_summary">Double-tapez l\'espace vide pour mettre en veille</string>
|
||||
<string name="old_quick_settings_panel">Vieux panneau de réglages rapide</string>
|
||||
<string name="old_qs_custom_switch">Lignes et colonnes personnalisés</string>
|
||||
<string name="qs_custom_columns_unexpanded">Colonnes (Inexpansé)</string>
|
||||
<string name="qs_custom_rows">Lignes</string>
|
||||
<string name="qs_custom_columns">Colonnes</string>
|
||||
<string name="qs_custom_rows_horizontal">Lignes (horizontal)</string>
|
||||
<string name="status_bar_dual_row_network_speed">Vitesse du réseau à double ligne</string>
|
||||
<string name="status_bar_dual_row_network_speed_summary">Affichage de download et upload en vitesse de réseau</string>
|
||||
<string name="status_bar_network_speed">Vitesse du réseau en barre d\'état</string>
|
||||
<string name="status_bar_network_speed_dual_row_size">Taille de double ligne (0: ne pas changer)</string>
|
||||
<string name="status_bar_network_speed_dual_row_icon">Icône de double ligne</string>
|
||||
<string name="none">Aucune</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Alignement double ligne</string>
|
||||
<string name="left">Gauche</string>
|
||||
<string name="right">Droite</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-he/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
216
app/src/main/res/values-hu/strings.xml
Normal file
@@ -0,0 +1,216 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Teljesítmény</string>
|
||||
<string name="lock_max_fps">Az aktuális jkijelzőfrissítési sebesség felső határértékének rögzítése</string>
|
||||
<string name="ui">Kezelőfelület</string>
|
||||
<string name="delete_on_post_notification">Távolítsa el a kijelzőt az értesítés felett</string>
|
||||
<string name="delete_on_post_notification_summary">\"Ez az alkalmazás más alkalmazások felett jelenik meg\" értesítés eltávolítása</string>
|
||||
<string name="other">Egyéb</string>
|
||||
<string name="disable_flag_secure">Képernyőkép engedélyezése</string>
|
||||
<string name="disable_flag_secure_summary">Képernyőkép készítésének engedélyezése olyan szoftverben, amely nem teszi lehetővé\nTámogatás a Vezérlőközpontban a biztonság érdekében történő legördülő gyors beállítás hozzáadásához</string>
|
||||
<string name="home">Kezdőlap</string>
|
||||
<string name="home_time">Mindig megjeleníti a kezdőképernyő óráját</string>
|
||||
<string name="reboot_host">Újraindítás minden hatókörben</string>
|
||||
<string name="reboot">Rendszer-újraindítás</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Állapotsor ikonjai</string>
|
||||
<string name="hide_no_sim_icon">Hiányzó SIM ikon elrejtése</string>
|
||||
<string name="hide_sim_one_icon">SIM-kártya 1 ikon elrejtése</string>
|
||||
<string name="hide_sim_two_icon">SIM-kártya 2 ikon elrejtése</string>
|
||||
<string name="hide_vpn_icon">VPN ikon elrejtése</string>
|
||||
<string name="hide_airplane_icon">Repülőgép üzemmód ikon elrejtése</string>
|
||||
<string name="hide_wifi_icon">WIFI ikon elrejtése</string>
|
||||
<string name="hide_bluetooth_icon">Bluetooth ikon elrejtése</string>
|
||||
<string name="hide_volume_zen_icon">Hang és Ne zavarjon ikon elrejtése</string>
|
||||
<string name="hide_alarm_icon">Riasztás ikon elrejtése</string>
|
||||
<string name="hide_hotspot_icon">Hordozható hotspot ikon elrejtése</string>
|
||||
<string name="hide_headset_icon">Headset ikon elrejtése</string>
|
||||
<string name="hide_bluetooth_battery_icon">Bluetooth akkumulátor ikon elrejtése</string>
|
||||
<string name="hide_big_hd_icon">Nagy HD ikon elrejtése</string>
|
||||
<string name="hide_small_hd_icon">Kis HD ikon elrejtése</string>
|
||||
<string name="hide_hd_no_service_icon">HD nincs szolgáltatás ikon elrejtése</string>
|
||||
<string name="about">Névjegy</string>
|
||||
<string name="about_module">Névjegy Modul</string>
|
||||
<string name="verison">Verzió</string>
|
||||
<string name="dev_coolapk">Szerző Coolapk</string>
|
||||
<string name="opensource">Forráskód megnyitása</string>
|
||||
<string name="github_url">Szeretnénk, hogy több fejlesztő vegyen részt a fejlesztésben</string>
|
||||
<string name="issues">Visszajelzés/javaslat</string>
|
||||
<string name="issues_url">Kattintson a GitHub problémák megtekintéséhez</string>
|
||||
<string name="statusbar">Állapotsor</string>
|
||||
<string name="status_bar_time_seconds">Másodpercek kijelzése</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Hálózati sebesség frissítése másodpercekben</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Az értesítési ikonok maximális számának eltávolítása</string>
|
||||
<string name="main_switch">Modul főkapcsoló</string>
|
||||
<string name="hide_gps_icon">GPS ikon elrejtése</string>
|
||||
<string name="hide_status_bar_network_speed_second">Hálózati sebesség (/s) egységek elrejtése</string>
|
||||
<string name="menu">Menü</string>
|
||||
<string name="Tips">Tippek</string>
|
||||
<string name="skip_waiting_time">5/10 másodperces figyelmeztető idő kihagyása</string>
|
||||
<string name="unlock_unlimited_cropping">A képek/képernyőképek vágására vonatkozó korlátozás megszüntetése</string>
|
||||
<string name="hide_slave_wifi_icon">Másodlagos WIFI ikon elrejtése</string>
|
||||
<string name="HideLauncherIcon">Indító ikon elrejtése</string>
|
||||
<string name="hide_battery_percentage_icon">Akkumulátor (%) elrejtése</string>
|
||||
<string name="hide_battery_icon">Akkumulátor ikon elrejtése</string>
|
||||
<string name="status_bar_clock_format">Állapotsori óra formátuma</string>
|
||||
<string name="status_bar_time_year">Év megjelenítése</string>
|
||||
<string name="status_bar_time_month">Hónap megjelenítése</string>
|
||||
<string name="status_bar_time_day">Dátum megjelenítése</string>
|
||||
<string name="status_bar_time_week">Nap megjelenítése</string>
|
||||
<string name="status_bar_time_hide_space">Hely elrejtése</string>
|
||||
<string name="allow_screenshots">Képernyőkép engedélyezése</string>
|
||||
<string name="lock_max">Jelenlegi limit rögzítése</string>
|
||||
<string name="status_bar_time_double_hour">Kínai tizenkét órás kijelző</string>
|
||||
<string name="custom_clock_switch">Egyedi óra kapcsoló</string>
|
||||
<string name="status_bar_time_period">AM/PM kijelző</string>
|
||||
<string name="status_bar_time_double_line">Kétsoros</string>
|
||||
<string name="status_bar_clock_size">Óraméret (0: nem változtatható)</string>
|
||||
<string name="status_bar_clock_double_line_size">Kettős sorméret (0: nem változtatható)</string>
|
||||
<string name="matters_needing_attention">A funkció nem működik? </string>
|
||||
<string name="about_module_summary">Modulhoz kapcsolódó információk megtekintése</string>
|
||||
<string name="contributor_list">Nyílt forráskódú adattár közreműködőinek listája</string>
|
||||
<string name="developer">Fejlesztő</string>
|
||||
<string name="thank_list">Köszönettel</string>
|
||||
<string name="third_party_open_source_statement">Harmadik fél nyílt forráskódú nyilatkozat</string>
|
||||
<string name="corepacth">Korlátozások megszüntetése</string>
|
||||
<string name="corepacth_summary">Támogatás leminősítés/eltérő aláírás/aláírás nélküli telepítés</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Az akkumulátor-optimalizálás fehér lista helyreállításának megakadályozása</string>
|
||||
<string name="failed_after_restart">A rendszer újraindítása után helyreáll</string>
|
||||
<string name="battery_optimization">Akkumulátor optimalizálása</string>
|
||||
<string name="battery_optimization_summary">MIUI által rejtett akkumulátor-optimalizálás menü megnyitása</string>
|
||||
<string name="remove_small_window_restrictions">Kis ablakok kényszerítése</string>
|
||||
<string name="app_coolapk_url">Adjon nekünk ötcsillagos értékelést</string>
|
||||
<string name="app_coolapk_url_summary">Segíthetsz abban, hogy többen ránk találjanak</string>
|
||||
<string name="qq_channel">Csatlakozzon a hivatalos QQ-csatornához</string>
|
||||
<string name="tg_channel">Csatlakozz a hivatalos TG csatornához</string>
|
||||
<string name="tg_channel_summary">A csevegőcsoportba a csatorna oldalán léphetsz be</string>
|
||||
<string name="discussions">Beszélgetések</string>
|
||||
<string name="remove_small_window_restrictions_summary">A rendszer feketelistájának és a kis ablakok szoftvertilalmának figyelmen kívül hagyása</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Távolítsa el a zárolási képernyő oldalsó paneljét</string>
|
||||
<string name="remove_lock_screen_camera">A képernyőzárolási kamera funkció eltávolítása</string>
|
||||
<string name="only_official_default_themes_are_supported">Csak a hivatalos alapértelmezett témák támogatottak</string>
|
||||
<string name="lock_one_hundred">Állítson be 100 pontot a biztonsági alkalmazáson</string>
|
||||
<string name="scope">Hatáskör</string>
|
||||
<string name="scope_android">Keretrendszer</string>
|
||||
<string name="scope_systemui">Rendszer Ui</string>
|
||||
<string name="scope_miuihome">Kezdőképernyő</string>
|
||||
<string name="scope_other">Egyebek</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Az állapotsor hálózati sebesség összetevőjének frissítési gyakoriságát 1s-re módosíthatja</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Az akkumulátor százalékos kijelzésének funkciót saját magának kell bekapcsolnia</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Az állapotsor hálózati sebességkomponensének (/s) egységeinek elrejtése</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">A 3 értesítésre vonatkozó korlát megszüntetése az állapotsoron</string>
|
||||
<string name="scope_systemui_summary">Rendszerfelület, állapotsor, zárolási képernyő stb. testreszabása.</string>
|
||||
<string name="scope_android_summary">A modul első engedélyezése vagy a modul frissítése után a funkció a rendszer újraindítása után lép hatályba</string>
|
||||
<string name="scope_other_summary">Biztonsági alkalmazás, Galéria szerkesztő, akkumulátor és teljesítmény stb.</string>
|
||||
<string name="scope_powerkeeper">Akkumulátor és teljesítmény</string>
|
||||
<string name="scope_securitycenter">Biztonsági alkalmazás</string>
|
||||
<string name="scope_mediaeditor">Galéria szerkesztő</string>
|
||||
<string name="home_time_summary">Ha be van kapcsolva, az óra nem lesz elrejtve az állapotsoron, még akkor sem, ha van egy óra widget</string>
|
||||
<string name="skip_waiting_time_summary">A MIUI várakozási idő figyelmen kívül hagyása az USB hibakeresés, az ismeretlen források és a hozzáférhetőség engedélyezésekor</string>
|
||||
<string name="lock_one_hundred_summary">Állítsa be a biztonsági alkalmazás pontszámát 100 pontra, és blokkolja az Optimalizálás gombot</string>
|
||||
<string name="unlock_unlimited_cropping_summary">A MIUI által a képkivágás minimális korlátjának figyelmen kívül hagyása</string>
|
||||
<string name="hide_wifi_activity_icon">WIFI aktivitás ikon elrejtése</string>
|
||||
<string name="hide_mobile_activity_icon">Mobil tevékenység ikon elrejtése</string>
|
||||
<string name="hide_mobile_type_icon">Mobil típus ikon elrejtése</string>
|
||||
<string name="show_weather_main_switch">Időjárás megjelenítése - Főkapcsoló</string>
|
||||
<string name="lock_screen">Zárolási képernyő</string>
|
||||
<string name="notification_center">Értesítési központ</string>
|
||||
<string name="show_city">Város nevének mutatása</string>
|
||||
<string name="lock_max_fps_summary">Támogatás a legördülő vezérlőközpont gyorsbeállításának hozzáadásához a valós idejű váltáshoz</string>
|
||||
<string name="control_center">Irányító központ</string>
|
||||
<string name="control_center_weather_summary">A Mi Smart Hub verziója jelenleg nem támogatott</string>
|
||||
<string name="not_support">Úgy tűnik, hogy az LSPosed egy elavult verzióját használja, vagy az LSPosed nem aktív, kérjük, frissítse az LSPosed-et vagy aktiválja, és próbálja újra.</string>
|
||||
<string name="matters_needing_attention_context">Az első aktiválás vagy frissítés után ajánlott újraindítani a telefont\nA legtöbb változtatás hatálybalépéséhez a jobb felső sarokban található újraindítás szükséges</string>
|
||||
<string name="are_you_sure_reboot">Biztosan újraindítod a telefont?</string>
|
||||
<string name="cancel">Mégse</string>
|
||||
<string name="are_you_sure_reboot_scope">Biztos, hogy újraindítod az összes hatókört?</string>
|
||||
<string name="hide_battery_charging_icon">Töltés ikon elrejtése</string>
|
||||
<string name="hide_wifi_standard_icon">WIFI ikon elrejtése</string>
|
||||
<string name="status_bar_time_center">Állapotsor időközpont</string>
|
||||
<string name="status_bar_layout_summary">Több állapotsor elrendezés van fejlesztés alatt</string>
|
||||
<string name="status_bar_layout">Állapotsor elrendezése</string>
|
||||
<string name="layout_compatibility_mode">Kompatibilitási mód</string>
|
||||
<string name="left_margin">Bal margó (0: Automatikus)</string>
|
||||
<string name="right_margin">Jobb margó (0: Automatikus)</string>
|
||||
<string name="remove_macro_blacklist">Játék makró feketelista eltávolítása</string>
|
||||
<string name="hide_network_speed_splitter">Hálózati sebességosztó elrejtése</string>
|
||||
<string name="updater">Frissítés</string>
|
||||
<string name="remove_ota_validate">*Távolítsa el az OTA érvényesítését [LAB]</string>
|
||||
<string name="remove_ota_validate_summary">- Csak a VAB sorozat használatát támogatja, kérjük, ne nyisson meg más sorozatokat.\n- Nincs szükség a belső tesztelési képesítésre a teljes belső tesztelési csomagba való flasheléshez.\n- Azok, akik belső tesztelési engedéllyel rendelkeznek, nem kaphatnak belső tesztelési frissítéseket, és a rendszerfrissítések blokkolására használhatók.\n- A keresztverziós típusú frissítés után ajánlott az adatok törlése.\n- A nem hivatalos ROM használata nem támogatott.</string>
|
||||
<string name="settings">Beállítások</string>
|
||||
<string name="show_notification_importance">Értesítés fontosságának megjelenítése</string>
|
||||
<string name="show_notification_importance_summary">A MIUI 12 és későbbi verziókban elrejtett fontossági beállítások megjelenítése az értesítésben</string>
|
||||
<string name="remove_ad">Reklámok eltávolítása</string>
|
||||
<string name="remove_thememanager_ads">Hirdetések eltávolítása a téma menedzser számára</string>
|
||||
<string name="battery_life_function">Az akkumulátor oldal mutatja az aktuális hőmérsékletet</string>
|
||||
<string name="enable_wave_charge_animation">Hullámtöltés animáció engedélyezése</string>
|
||||
<string name="max_wallpaper_scale">Maximális háttérkép méretarány</string>
|
||||
<string name="def">"Alapértelmezett: "</string>
|
||||
<string name="current">Jelenlegi:</string>
|
||||
<string name="participate_in_translation">Részvétel a fordításban</string>
|
||||
<string name="participate_in_translation_summary">Segítsen nekünk lefordítani az alkalmazást az Ön nyelvére</string>
|
||||
<string name="lock_screen_charging_current">Jelenlegi információk megjelenítése töltés közben</string>
|
||||
<string name="current_current">Jelenlegi</string>
|
||||
<string name="remove_open_app_confirmation_popup">Megnyitott alkalmazás felugró ablakának eltávolítása</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">\"Engedélyezed XXX számára, hogy megnyissa ezt: XXX\" felugró ablak eltávolítása</string>
|
||||
<string name="hide_volume_icon">Hangerő ikon elrejtése</string>
|
||||
<string name="hide_zen_icon">ZEN ikon elrejtése</string>
|
||||
<string name="hide_icon">Ikon elrejtése</string>
|
||||
<string name="double_tap_to_sleep">Alvás dupla érintésre</string>
|
||||
<string name="home_double_tap_to_sleep_summary">Alváshoz duplán koppintson az üres területre</string>
|
||||
<string name="old_quick_settings_panel">Régi gyorsbeállítások panel</string>
|
||||
<string name="old_qs_custom_switch">Egyéni sorok és oszlopok</string>
|
||||
<string name="qs_custom_columns_unexpanded">Oszlopok (kibontatlan)</string>
|
||||
<string name="qs_custom_rows">Sorok</string>
|
||||
<string name="qs_custom_columns">Oszlopok</string>
|
||||
<string name="qs_custom_rows_horizontal">Sorok (vízszintesen)</string>
|
||||
<string name="status_bar_dual_row_network_speed">Kétsoros hálózati sebesség</string>
|
||||
<string name="status_bar_dual_row_network_speed_summary">Hálózati sebesség (fel és le) kijelzése</string>
|
||||
<string name="status_bar_network_speed">Állapotsor hálózati sebesség</string>
|
||||
<string name="status_bar_network_speed_dual_row_size">Kettős sorméret (0: nem változtatható)</string>
|
||||
<string name="status_bar_network_speed_dual_row_icon">Kétsoros ikon</string>
|
||||
<string name="none">Semmi</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Kétsoros igazítás</string>
|
||||
<string name="left">Balra</string>
|
||||
<string name="right">Jobbra</string>
|
||||
<string name="big_mobile_type_icon">Nagy mobil típus ikon</string>
|
||||
<string name="can_notification_slide">A legtöbb értesítés kis ablakba csúsztatható</string>
|
||||
<string name="battery_percentage_font_size">Akkumulátor százalékos betűmérete</string>
|
||||
<string name="zero_do_no_change">0: ne változtassa meg</string>
|
||||
<string name="big_mobile_type_icon_size">Nagy mobil típus ikon mérete</string>
|
||||
<string name="big_mobile_type_icon_bold">Nagy mobil típus ikon félkövér</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Nagy mobil típus ikon fel és le pozíció</string>
|
||||
<string name="input_error">Bemeneti hiba</string>
|
||||
<string name="range">Távolság: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Nagy mobil típus ikon bal és jobb margó</string>
|
||||
<string name="cast">Átvitel</string>
|
||||
<string name="force_support_send_app">Minden alkalmazás támogatásának kikényszerítése egy másik eszközön</string>
|
||||
<string name="status_bar_time_double_line_center_align">Kétsoros középre igazítás</string>
|
||||
<string name="default1">Alapértelmezett</string>
|
||||
<string name="clock_center">Óra központ</string>
|
||||
<string name="clock_right">Óra jobbra</string>
|
||||
<string name="status_bar_layout_mode">Állapotsor elrendezési mód</string>
|
||||
<string name="clock_center_and_icon_left">Óra középen és ikon balra</string>
|
||||
<string name="maximum_number_of_notification_icons">Az értesítési ikonok maximális száma</string>
|
||||
<string name="maximum_number_of_notification_dots">Az értesítési pontok maximális száma</string>
|
||||
<string name="custom_mobile_type_text">Egyedi mobil típusú szöveg</string>
|
||||
<string name="custom_mobile_type_text_switch">Egyedi mobil típusú szöveges kapcsoló</string>
|
||||
<string name="downgr">Engedélyezze a leminősítést</string>
|
||||
<string name="downgr_summary">Engedélyezze a leminősítésett alkalmazásokat.</string>
|
||||
<string name="authcreak">Digest ellenőrzés kikapcsolása</string>
|
||||
<string name="authcreak_summary">Lehetővé teszi az alkalmazások telepítését az apk fájl módosítása után (figyelmen kívül hagyja az érvénytelen digest hibát).</string>
|
||||
<string name="digestCreak">Aláírások összehasonlításának letiltása</string>
|
||||
<string name="digestCreak_summary">Engedélyezze az alkalmazás újratelepítését különböző aláírásokkal.</string>
|
||||
<string name="UsePreSig">Telepített aláírások használata</string>
|
||||
<string name="UsePreSig_summary">Telepítéskor mindig a már telepített alkalmazások aláírásait használja.\nEz rendkívül <b>veszélyes</b>.\nCsak akkor engedélyezze, ha tényleg szükséges!</string>
|
||||
<string name="enhancedMode">Továbbfejlesztett mód</string>
|
||||
<string name="enhancedMode_summary">Néhány érvényesítés átadása az alkalmazásban</string>
|
||||
<string name="rear_display">Hátsó kijelző (11Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Óra kijelző másodpercek</string>
|
||||
<string name="sound">Hang</string>
|
||||
<string name="media_volume_steps_switch">Média hangerőfokozatok</string>
|
||||
<string name="allow_untrusted_touches">Nem megbízható érintések engedélyezése</string>
|
||||
<string name="take_effect_after_reboot">Újraindítás után lép hatályba</string>
|
||||
<string name="media_volume_steps_summary">A bekapcsolás hatására a hangerő sáv görgetése lefagyhat, vagy a Bluetooth hangerő rendellenes lehet</string>
|
||||
<string name="can_notification_slide_summary">Előfordulhat, hogy egyes, a Mi Push-on keresztül érkező értesítések nem támogatottak.</string>
|
||||
</resources>
|
||||
157
app/src/main/res/values-id/strings.xml
Normal file
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="lock_max_fps">Kunci batas atas kecepatan refresh layar saat ini</string>
|
||||
<string name="ui">Tampilan</string>
|
||||
<string name="delete_on_post_notification">Hapus tampilan di atas notifikasi</string>
|
||||
<string name="delete_on_post_notification_summary">Hapus pemberitahuan \"Aplikasi ini sedang ditampilkan di atas aplikasi lain\"</string>
|
||||
<string name="other">Lainnya</string>
|
||||
<string name="disable_flag_secure">Izinkan tangkapan layar</string>
|
||||
<string name="disable_flag_secure_summary">Izinkan tangkapan layar dalam perangkat lunak yang tidak mengizinkan\nMendukung penambahan setelan jalan pintas di Pusat kendali demi keamanan</string>
|
||||
<string name="home">Halaman Utama</string>
|
||||
<string name="home_time">Selalu tampilkan jam layar Utama</string>
|
||||
<string name="reboot_host">Mulai ulang semua cakupan</string>
|
||||
<string name="reboot">Mulai Ulang Sistem</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Ikon status bar</string>
|
||||
<string name="hide_no_sim_icon">Sembunyikan ikon Tanpa SIM</string>
|
||||
<string name="hide_sim_one_icon">Sembunyikan ikon Kartu SIM 1</string>
|
||||
<string name="hide_sim_two_icon">Sembunyikan ikon Kartu SIM 2</string>
|
||||
<string name="hide_vpn_icon">Sembunyikan ikon VPN</string>
|
||||
<string name="hide_airplane_icon">Sembunyikan ikon mode Pesawat</string>
|
||||
<string name="hide_wifi_icon">Sembunyikan ikon WIFI</string>
|
||||
<string name="hide_bluetooth_icon">Sembunyikan ikon Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Sembunyikan ikon Suara dan Jangan Ganggu</string>
|
||||
<string name="hide_alarm_icon">Sembunyikan ikon Alarm</string>
|
||||
<string name="hide_hotspot_icon">Sembunyikan ikon hotspot portabel</string>
|
||||
<string name="hide_headset_icon">Sembunyikan ikon Headset</string>
|
||||
<string name="hide_bluetooth_battery_icon">Sembunyikan ikon baterai pada Bluetooth</string>
|
||||
<string name="hide_big_hd_icon">Sembunyikan ikon HD besar (MIUI China)</string>
|
||||
<string name="hide_small_hd_icon">Sembunyikan ikon HD kecil (MIUI China)</string>
|
||||
<string name="hide_hd_no_service_icon">Sembunyikan ikon HD Tanpa Layanan (MIUI China)</string>
|
||||
<string name="about">Tentang</string>
|
||||
<string name="about_module">Tentang Module</string>
|
||||
<string name="verison">Versi</string>
|
||||
<string name="opensource">Repositori Sumber Terbuka</string>
|
||||
<string name="github_url">Selamat datang lebih banyak developer untuk berpartisipasi dalam pengembangan</string>
|
||||
<string name="issues">Umpan Balik/Usulan</string>
|
||||
<string name="issues_url">Klik untuk melihat Masalah GitHub</string>
|
||||
<string name="status_bar_time_seconds">Tampilkan detik</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Perubahan kecepatan jaringan dalam detik</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Hapus jumlah maksimum ikon notifikasi</string>
|
||||
<string name="main_switch">Tombol modul</string>
|
||||
<string name="hide_gps_icon">Sembunyikan ikon GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Sembunyikan unit kecepatan jaringan (/d)</string>
|
||||
<string name="unlock_unlimited_cropping">Hilangkan pembatasan untuk memotong gambar/cuplikan layar</string>
|
||||
<string name="hide_slave_wifi_icon">Sembunyikan ikon WIFI tambahan</string>
|
||||
<string name="HideLauncherIcon">Sembunyikan ikon launcher</string>
|
||||
<string name="hide_battery_percentage_icon">Sembunyikan battery (%)</string>
|
||||
<string name="hide_battery_icon">Sembunyikan ikon baterai</string>
|
||||
<string name="status_bar_clock_format">Format jam pada status</string>
|
||||
<string name="status_bar_time_year">Tampilkan tahun</string>
|
||||
<string name="status_bar_time_month">Tampilkan bulan</string>
|
||||
<string name="status_bar_time_day">Tampiulkan tanggal</string>
|
||||
<string name="status_bar_time_week">Tampilkan hari</string>
|
||||
<string name="status_bar_time_hide_space">Sembunyikan spasi</string>
|
||||
<string name="allow_screenshots">Izinkan cuplikan layar</string>
|
||||
<string name="lock_max">Kunci batas saat ini</string>
|
||||
<string name="status_bar_time_double_hour">Tampilkan waktu sistem 12-jam</string>
|
||||
<string name="custom_clock_switch">Sesuaikan Perubahan Jam</string>
|
||||
<string name="status_bar_time_period">Tampilkan AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Baris ganda</string>
|
||||
<string name="status_bar_clock_size">Ukuran jam (0: jangan di ganti)</string>
|
||||
<string name="status_bar_clock_double_line_size">Baris ganda (0: jangan di ganti)</string>
|
||||
<string name="matters_needing_attention">Fitur tidak berjalan? </string>
|
||||
<string name="about_module_summary">Lihat informasi terkait modul</string>
|
||||
<string name="contributor_list">Daftar kontributor repositori sumber terbuka</string>
|
||||
<string name="thank_list">Daftar ucapan terimakasih</string>
|
||||
<string name="third_party_open_source_statement">Pernyataan Sumber Terbuka Pihak Ketiga</string>
|
||||
<string name="corepacth">Hapus pembatasan</string>
|
||||
<string name="corepacth_summary">Dukungan untuk menurunkan versi/berbeda lisensi/tidak terdaftar terhadap instalasi aplikasi</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Cegah pemulihan daftar pembolehan pengoptimalan baterai</string>
|
||||
<string name="failed_after_restart">Fitur ini akan dipulihkan setelah merestart sistem</string>
|
||||
<string name="battery_optimization">Pengoptimalan baterai</string>
|
||||
<string name="battery_optimization_summary">Buka menu pengoptimalan baterai dengan cepat yang disembunyikan oleh MIUI</string>
|
||||
<string name="remove_small_window_restrictions">Paksa jendela kecil</string>
|
||||
<string name="app_coolapk_url">Ayo datang dan beri kami ulasan bintang lima</string>
|
||||
<string name="app_coolapk_url_summary">Ini membuat kita lebih mudah ditemukan</string>
|
||||
<string name="qq_channel">Bergabunglah dengan saluran QQ resmi</string>
|
||||
<string name="tg_channel">Bergabunglah dengan saluran TG resmi</string>
|
||||
<string name="tg_channel_summary">Anda dapat masuk ke grup obrolan di halaman saluran</string>
|
||||
<string name="discussions">Diskusi</string>
|
||||
<string name="remove_small_window_restrictions_summary">Abaikan pengecualian sistem dan larangan perangkat lunak dari jendela kecil</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Lepaskan panel samping pada kunci layar</string>
|
||||
<string name="remove_lock_screen_camera">Hapus fitur kamera pada kunci layar</string>
|
||||
<string name="only_official_default_themes_are_supported">Hanya tema default resmi yang didukung</string>
|
||||
<string name="lock_one_hundred">Tetapkan 100 poin di aplikasi Keamanan Miui</string>
|
||||
<string name="scope">Jangkauan</string>
|
||||
<string name="scope_android">Kerangka Sistem</string>
|
||||
<string name="scope_systemui">Tampilan Sistem</string>
|
||||
<string name="scope_miuihome">Layar Utama</string>
|
||||
<string name="scope_other">Lainnya</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Ubah frekuensi perubahan keterangan kecepatan pada status jaringan menjadi 1 detik</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Fitur tampilan persentase baterai harus diaktifkan sendiri</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Sembunyikan unit (/d) dari keterangan status kecepatan jaringan</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Hapus batas 3 notifikasi di status bar</string>
|
||||
<string name="scope_systemui_summary">Perubahan antarmuka sistem, bilah status, layar kunci, dll.</string>
|
||||
<string name="scope_android_summary">Setelah mengaktifkan modul untuk pertama kalinya atau modul diperbarui, fitur di sini akan berlaku setelah memulai ulang sistem</string>
|
||||
<string name="scope_other_summary">Aplikasi keamanan, Galeri editor, Baterai dan perfoma, dll.</string>
|
||||
<string name="scope_powerkeeper">Baterai dan perfoma</string>
|
||||
<string name="scope_securitycenter">Aplikasi keamanan</string>
|
||||
<string name="scope_mediaeditor">Galeri Editor</string>
|
||||
<string name="home_time_summary">Saat dihidupkan, jam tidak akan disembunyikan di status meskipun ada widget jam</string>
|
||||
<string name="skip_waiting_time_summary">Abaikan waktu tunggu MIUI saat mengaktifkan debugging USB, sumber tidak dikenal, dan aksesibilitas</string>
|
||||
<string name="lock_one_hundred_summary">Atur skor pada aplikasi Keamanan menjadi 100 poin dan blokir tombol Optimalkan</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Abaikan batas minimum pemotongan gambar oleh MIUI</string>
|
||||
<string name="hide_wifi_activity_icon">Sembunyikan ikon aktivitas WIFI</string>
|
||||
<string name="hide_mobile_activity_icon">Sembunyikan ikon aktivitas seluler</string>
|
||||
<string name="hide_mobile_type_icon">Sembunyikan ikon jenis seluler</string>
|
||||
<string name="show_weather_main_switch">Tampilkan Cuaca - Tombol Utama</string>
|
||||
<string name="lock_screen">Layar kunci</string>
|
||||
<string name="notification_center">Pusat Notifikasi</string>
|
||||
<string name="show_city">Tampilkan kota</string>
|
||||
<string name="lock_max_fps_summary">Dukungan menambahkan pengaturan cepat pusat kendali, taruh-dibawah untuk peralihan waktu nyata</string>
|
||||
<string name="control_center">Pusat kendali</string>
|
||||
<string name="control_center_weather_summary">Mi Smart Hub pada versi saat ini tidak didukung</string>
|
||||
<string name="not_support">Anda sepertinya menggunakan LSPosed versi lama atau LSPosed tidak aktif, harap perbarui LSPosed atau aktifkan dan coba lagi.</string>
|
||||
<string name="matters_needing_attention_context">Disarankan untuk me-restart perangkat setelah aktivasi atau pembaruan pertama \nSebagian besar perubahan memerlukan restart di sudut kanan atas untuk diterapkan</string>
|
||||
<string name="are_you_sure_reboot">Apakah Anda yakin untuk mulai ulang?</string>
|
||||
<string name="cancel">Batal</string>
|
||||
<string name="are_you_sure_reboot_scope">Apakah Anda yakin untuk mulai ulang semua cakupan?</string>
|
||||
<string name="hide_battery_charging_icon">Sembunyikan ikon pengisian daya</string>
|
||||
<string name="hide_wifi_standard_icon">Sembunyikan ikon standar WIFI</string>
|
||||
<string name="status_bar_time_center">Pusat status waktu</string>
|
||||
<string name="status_bar_layout_summary">Lebih banyak tata letak status sedang dalam pengembangan</string>
|
||||
<string name="status_bar_layout">Tata letak status</string>
|
||||
<string name="layout_compatibility_mode">Mode kompatibel</string>
|
||||
<string name="left_margin">Batas kiri (0: Otomatis)</string>
|
||||
<string name="right_margin">Batas kanan (0: Otomatis)</string>
|
||||
<string name="remove_macro_blacklist">Hapus pengecualian makro game</string>
|
||||
<string name="hide_network_speed_splitter">Sembunyikan pembagi kecepatan jaringan</string>
|
||||
<string name="updater">Pembaruan</string>
|
||||
<string name="remove_ota_validate">*Hapus validasi OTA [UJICOBA]</string>
|
||||
<string name="remove_ota_validate_summary">- Hanya mendukung penggunaan seri VAB, jangan buka seri lain.\n- Tidak perlu kualifikasi pengujian internal untuk mem-flash ke dalam paket pengujian internal lengkap.\n- Mereka yang memiliki izin pengujian internal tidak akan dapat menerima pembaruan pengujian internal, dan dapat digunakan untuk memblokir pembaruan sistem.\n- Setelah peningkatan versi lintas versi, disarankan untuk menghapus data.\n- Penggunaan ROM tidak resmi tidak didukung.</string>
|
||||
<string name="settings">Pengaturan</string>
|
||||
<string name="show_notification_importance">Tampilkan notifikasi penting</string>
|
||||
<string name="show_notification_importance_summary">Tampilkan pengaturan pemberitahuan penting yang disembunyikan di MIUI 12 dan versi yang lebih baru</string>
|
||||
<string name="remove_ad">Hapus iklan</string>
|
||||
<string name="remove_thememanager_ads">Hapus iklan untuk pengelola tema</string>
|
||||
<string name="battery_life_function">Halaman baterai menunjukkan suhu saat ini</string>
|
||||
<string name="enable_wave_charge_animation">Tampilkan animasi gelombang saat pengisian daya</string>
|
||||
<string name="max_wallpaper_scale">Maksimal skala Wallpaper</string>
|
||||
<string name="current">Saat ini:</string>
|
||||
<string name="participate_in_translation">Partisipasi dalam penejermahan</string>
|
||||
<string name="participate_in_translation_summary">Bantu kami menerjemahkan aplikasi ke dalam bahasa Anda</string>
|
||||
<string name="lock_screen_charging_current">Tampilkan informasi pengisian saat mengecas</string>
|
||||
<string name="current_current">Pengisian</string>
|
||||
<string name="hide_volume_icon">Sembunyikan ikon suara</string>
|
||||
<string name="hide_zen_icon">Sembunyikan ikon ZEN (MIUI China)</string>
|
||||
<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>
|
||||
5
app/src/main/res/values-it/strings.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Alte prestazioni</string>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
250
app/src/main/res/values-ja/strings.xml
Normal file
@@ -0,0 +1,250 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">パフォーマンス</string>
|
||||
<string name="lock_max_fps">現在のリフレッシュレート上限をロック</string>
|
||||
<string name="ui">インターフェース</string>
|
||||
<string name="delete_on_post_notification">「他のアプリの上に表示」通知を削除</string>
|
||||
<string name="delete_on_post_notification_summary">「このアプリは他のアプリの上に表示されています」通知を削除します</string>
|
||||
<string name="other">その他</string>
|
||||
<string name="disable_flag_secure">スクリーンショットを許可</string>
|
||||
<string name="disable_flag_secure_summary">許可されていないアプリのスクリーンショットを許可します\nセキュリティのため、クイック設定に「許可/禁止」を切り替えるトグルを追加します</string>
|
||||
<string name="home">ホーム</string>
|
||||
<string name="home_time">ホーム画面の時計を常に表示する</string>
|
||||
<string name="reboot_host">すべてのスコープを再起動する</string>
|
||||
<string name="reboot">システムを再起動する</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">ステータスバーのアイコン</string>
|
||||
<string name="hide_no_sim_icon">SIM未挿入アイコンを隠す</string>
|
||||
<string name="hide_sim_one_icon">SIMカード1のアイコンを隠す</string>
|
||||
<string name="hide_sim_two_icon">SIMカード2のアイコンを隠す</string>
|
||||
<string name="hide_vpn_icon">VPN アイコンを隠す</string>
|
||||
<string name="hide_airplane_icon">機内モードのアイコンを隠す</string>
|
||||
<string name="hide_wifi_icon">Wi-Fi アイコンを隠す</string>
|
||||
<string name="hide_bluetooth_icon">Bluetooth アイコンを隠す</string>
|
||||
<string name="hide_volume_zen_icon">サウンドとマナーモードのアイコンを隠す</string>
|
||||
<string name="hide_alarm_icon">アラームアイコンを隠す</string>
|
||||
<string name="hide_hotspot_icon">ポータブルホットスポットアイコンを隠す</string>
|
||||
<string name="hide_headset_icon">ヘッドセットアイコンを隠す</string>
|
||||
<string name="hide_bluetooth_battery_icon">Bluetooth機器のバッテリーアイコンを非表示</string>
|
||||
<string name="hide_nfc_icon">NFC アイコンを隠す</string>
|
||||
<string name="hide_big_hd_icon">大きな HD アイコンを隠す</string>
|
||||
<string name="hide_small_hd_icon">小さな HD アイコンを隠す</string>
|
||||
<string name="hide_new_hd_icon">新しい HD 通話アイコンを隠す</string>
|
||||
<string name="hide_hd_no_service_icon">HD サービスなしアイコンを隠す</string>
|
||||
<string name="about">概要</string>
|
||||
<string name="about_module">モジュールについて</string>
|
||||
<string name="verison">バージョン</string>
|
||||
<string name="dev_coolapk">開発者の Coolapk</string>
|
||||
<string name="opensource">オープンソースリポジトリ</string>
|
||||
<string name="github_url">開発に参加できる開発者を歓迎します</string>
|
||||
<string name="issues">ご意見・ご提案</string>
|
||||
<string name="issues_url">クリックして GitHub Issues を表示する</string>
|
||||
<string name="xposeddescription">MIUI13 (Android 12) 以降向けカスタマイズツール</string>
|
||||
<string name="statusbar">ステータスバー</string>
|
||||
<string name="status_bar_time_seconds">秒を表示する</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">通知アイコン数の上限を削除する</string>
|
||||
<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>
|
||||
<string name="skip_waiting_time">5/10秒間の警告時間をスキップ</string>
|
||||
<string name="unlock_unlimited_cropping">写真・スクリーンショットをトリミングする際の制限を解除する</string>
|
||||
<string name="hide_slave_wifi_icon">Wi-Fiセカンダリアイコンを隠す</string>
|
||||
<string name="HideLauncherIcon">ランチャーアイコンを隠す</string>
|
||||
<string name="hide_battery_percentage_icon">バッテリー (%) を隠す</string>
|
||||
<string name="hide_battery_icon">バッテリーアイコンを隠す</string>
|
||||
<string name="status_bar_clock_format">ステータスバーの時計の形式</string>
|
||||
<string name="status_bar_time_year">年を表示</string>
|
||||
<string name="status_bar_time_month">月を表示</string>
|
||||
<string name="status_bar_time_day">日付を表示</string>
|
||||
<string name="status_bar_time_week">曜日を表示</string>
|
||||
<string name="status_bar_time_hide_space">スペースを隠す</string>
|
||||
<string name="allow_screenshots">スクリーンショットを許可</string>
|
||||
<string name="lock_max">現在の制限をロック</string>
|
||||
<string name="status_bar_time_double_hour">中国語を12時間表示する</string>
|
||||
<string name="custom_clock_switch">カスタム時計スイッチ</string>
|
||||
<string name="status_bar_time_period">午前/午後を表示</string>
|
||||
<string name="status_bar_time_double_line">2行で表示</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>
|
||||
<string name="Done">OK</string>
|
||||
<string name="about_module_summary">モジュール関連情報を表示</string>
|
||||
<string name="contributor_list">オープンソースリポジトリの貢献者一覧</string>
|
||||
<string name="developer">開発者</string>
|
||||
<string name="thank_list">感謝リスト</string>
|
||||
<string name="third_party_open_source_statement">サードパーティーのオープンソースに関する声明</string>
|
||||
<string name="corepacth">インストール制限を削除</string>
|
||||
<string name="corepacth_summary">ダウングレード、異なる署名、署名なしでのインストールを許可</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">バッテリー最適化ホワイトリストのリカバリを防止する</string>
|
||||
<string name="failed_after_restart">システム再起動後に復元されます</string>
|
||||
<string name="battery_optimization">電池の最適化</string>
|
||||
<string name="battery_optimization_summary">MIUI で非表示になったバッテリー最適化メニューをすばやく開く</string>
|
||||
<string name="remove_small_window_restrictions">小さなウィンドウを強制的に表示</string>
|
||||
<string name="app_coolapk_url">5つ星のレビューをお願いします。</string>
|
||||
<string name="app_coolapk_url_summary">多くの人に見つけてもらいやすくなります</string>
|
||||
<string name="qq_channel">公式QQチャンネルに参加する</string>
|
||||
<string name="tg_channel">公式 Telegram チャンネルに参加する</string>
|
||||
<string name="tg_channel_summary">チャンネルページにチャットグループを入力することができます</string>
|
||||
<string name="discussions">討論</string>
|
||||
<string name="remove_small_window_restrictions_summary">小さなウィンドウへのシステムのブラックリストとソフトウェア制限を無視します</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">ロック画面のサイドパネルを削除</string>
|
||||
<string name="remove_lock_screen_camera">ロック画面のカメラ機能を削除</string>
|
||||
<string name="only_official_default_themes_are_supported">公式のデフォルトテーマのみサポートされています</string>
|
||||
<string name="lock_one_hundred">セキュリティアプリで 100 ポイントを設定</string>
|
||||
<string name="scope">範囲</string>
|
||||
<string name="scope_android">システムフレームワーク</string>
|
||||
<string name="scope_systemui">システム UI</string>
|
||||
<string name="scope_miuihome">ホーム画面</string>
|
||||
<string name="scope_other">その他</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">ステータスバーのネットワーク速度コンポーネントの更新頻度を1秒に変更します</string>
|
||||
<string name="hide_battery_percentage_icon_summary">バッテリー残量表示機能は自分でオンにする必要があります</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">ステータスバーのネットワーク速度表示の (/s) 単位を隠す</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">ステータスバーの通知数の3つまでの上限を削除します</string>
|
||||
<string name="scope_systemui_summary">システムインターフェース、ステータスバー、ロック画面などをカスタマイズします</string>
|
||||
<string name="scope_android_summary">初めてモジュールを有効にした後、またはモジュールが更新された後、システムを再起動した後にここの機能が有効になります</string>
|
||||
<string name="scope_other_summary">セキュリティアプリ、ギャラリーエディタ、バッテリー、パフォーマンスなど。</string>
|
||||
<string name="scope_powerkeeper">バッテリーとパフォーマンス</string>
|
||||
<string name="scope_securitycenter">セキュリティアプリ</string>
|
||||
<string name="scope_mediaeditor">ギャラリーエディター</string>
|
||||
<string name="home_time_summary">オンにすると、時計ウィジェットがある場合でも、ステータスバーに時計が表示されます</string>
|
||||
<string name="skip_waiting_time_summary">USBデバッグ、不明なソース、ユーザー補助を利用する際のMIUIによる待機時間を無視します</string>
|
||||
<string name="lock_one_hundred_summary">セキュリティアプリのスコアを100ポイントに設定し、最適化ボタンをブロックします</string>
|
||||
<string name="unlock_unlimited_cropping_summary">MIUI による画像トリミングの最小制限を無視します</string>
|
||||
<string name="hide_wifi_activity_icon">Wi-Fiアクティビティアイコンを隠す</string>
|
||||
<string name="hide_mobile_activity_icon">モバイルアクティビティのアイコンを隠す</string>
|
||||
<string name="hide_mobile_type_icon">モバイルタイプのアイコンを隠す</string>
|
||||
<string name="show_weather_main_switch">天気の表示 - メインスイッチ</string>
|
||||
<string name="lock_screen">ロック画面</string>
|
||||
<string name="notification_center">通知センター</string>
|
||||
<string name="show_city">市区町村を表示</string>
|
||||
<string name="lock_max_fps_summary">リアルタイム切り替えのためのドロップダウンコントロールセンタークイック設定の追加をサポート</string>
|
||||
<string name="control_center">コントロールセンター</string>
|
||||
<string name="control_center_weather_summary">Mi Smart Hub バージョンは現在サポートされていません</string>
|
||||
<string name="not_support">古いバージョンの LSPosed を使用しているか、または、LSPosed がアクティブではないようです。LSPosed を更新するか、それを有効にしてもう一度やり直してください。</string>
|
||||
<string name="matters_needing_attention_context">最初のインストールまたは更新後は端末を再起動することをお勧めします\n多くの変更は右上隅から再起動することで適用されます</string>
|
||||
<string name="are_you_sure_reboot">再起動しますか?</string>
|
||||
<string name="cancel">キャンセル</string>
|
||||
<string name="are_you_sure_reboot_scope">全てのスコープを再起動しますか?</string>
|
||||
<string name="hide_battery_charging_icon">充電アイコンを隠す</string>
|
||||
<string name="hide_wifi_standard_icon">Wi-Fi標準アイコンを隠す</string>
|
||||
<string name="status_bar_time_center">ステータスバーのタイムセンター</string>
|
||||
<string name="status_bar_layout_summary">より多くのステータスバーのレイアウトが開発中です</string>
|
||||
<string name="status_bar_layout">ステータスバーのレイアウト</string>
|
||||
<string name="layout_compatibility_mode">互換モード</string>
|
||||
<string name="left_margin">左マージン(0:自動)</string>
|
||||
<string name="right_margin">右マージン(0:自動)</string>
|
||||
<string name="layout_compatibility_mode_summary">全画面レイアウトを強制(すべての特殊な形状の画面に対応)</string>
|
||||
<string name="remove_macro_blacklist">ゲームのマクロブラックリストを削除</string>
|
||||
<string name="hide_network_speed_splitter">ネットワーク速度分割器を非表示</string>
|
||||
<string name="updater">更新</string>
|
||||
<string name="remove_ota_validate">*OTA 検証を無効化 [実験的]</string>
|
||||
<string name="remove_ota_validate_summary">- 仮想AB対応端末のみ対応しています。\ n -内部テストの資格を必要とせず、内部テストパッケージをインストールできるようにします。\ n -内部テスト許可を持っている方は、内部のテストの更新を受け取れなくなるため、システムアップデートをブロックするために使用できます。\ n -OSバージョンが変わる場合は工場出荷状態に戻すことをお勧めします。\ n -非公式のROMでの使用には非対応です。</string>
|
||||
<string name="settings">設定</string>
|
||||
<string name="show_notification_importance">通知の重要性を表示</string>
|
||||
<string name="show_notification_importance_summary">MIUI 12 以降のバージョンで非表示になっている通知の重要性設定を表示します</string>
|
||||
<string name="remove_ad">広告を除去する</string>
|
||||
<string name="remove_thememanager_ads">テーママネージャーの広告を削除</string>
|
||||
<string name="battery_life_function">バッテリーページに現在の温度を表示します</string>
|
||||
<string name="enable_wave_charge_animation">Wave のチャージアニメーションを有効化</string>
|
||||
<string name="max_wallpaper_scale">壁紙の最大スケール</string>
|
||||
<string name="def">"既定:"</string>
|
||||
<string name="current">現在:</string>
|
||||
<string name="participate_in_translation">翻訳に参加する</string>
|
||||
<string name="participate_in_translation_summary">翻訳を手伝ってください!</string>
|
||||
<string name="lock_screen_charging_current">充電中に電流の情報を表示</string>
|
||||
<string name="current_current">電流</string>
|
||||
<string name="remove_open_app_confirmation_popup">外部アプリを開くときのポップアップを削除</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">「アプリAがアプリBを開くことを許可」のチェーンのポップアップを削除します</string>
|
||||
<string name="hide_volume_icon">音量アイコンを非表示</string>
|
||||
<string name="hide_zen_icon">ZENアイコンを隠す</string>
|
||||
<string name="hide_icon">アイコンを隠す</string>
|
||||
<string name="double_tap_to_sleep">2回タップでスリープ</string>
|
||||
<string name="home_double_tap_to_sleep_summary">ホーム画面の空白を2回タップしてスリープする</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">2行アイコン</string>
|
||||
<string name="none">なし</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">2行の配置</string>
|
||||
<string name="left">左</string>
|
||||
<string name="right">右</string>
|
||||
<string name="big_mobile_type_icon">大きなモバイルタイプアイコン</string>
|
||||
<string name="show_wifi_standard">Wi-Fi 規格を表示</string>
|
||||
<string name="can_notification_slide">ポップアップ通知を下スライドしてフローティングウィンドウにするやつをほとんどのアプリで有効にする</string>
|
||||
<string name="battery_percentage_font_size">バッテリー残量のフォントサイズ</string>
|
||||
<string name="zero_do_no_change">0:変更しない</string>
|
||||
<string name="big_mobile_type_icon_size">大きな電波アイコンのサイズ</string>
|
||||
<string name="big_mobile_type_icon_bold">大きな電波アイコンの太さ</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">大きな電波アイコンの上下の位置</string>
|
||||
<string name="input_error">入力エラー</string>
|
||||
<string name="range">範囲: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">大きな電波アイコンの左右の余白</string>
|
||||
<string name="cast">キャスト</string>
|
||||
<string name="force_support_send_app">すべてのアプリを別のデバイスで開くようにする</string>
|
||||
<string name="status_bar_time_double_line_center_align">2行中央揃え</string>
|
||||
<string name="default1">デフォルト</string>
|
||||
<string name="clock_center">時計を中央に配置</string>
|
||||
<string name="clock_right">時計を右に配置</string>
|
||||
<string name="status_bar_layout_mode">ステータスバーのレイアウトモード</string>
|
||||
<string name="clock_center_and_icon_left">時計を中央、アイコンを左</string>
|
||||
<string name="maximum_number_of_notification_icons">通知アイコンの最大数</string>
|
||||
<string name="maximum_number_of_notification_dots">通知ドットの最大数</string>
|
||||
<string name="custom_mobile_type_text">モバイルタイプのカスタムテキスト</string>
|
||||
<string name="custom_mobile_type_text_switch">モバイルタイプのカスタムテキストスイッチ</string>
|
||||
<string name="downgr">ダウングレードを許可</string>
|
||||
<string name="downgr_summary">アプリのダウングレードを許可します。</string>
|
||||
<string name="authcreak">ダイジェスト認証を無効にする</string>
|
||||
<string name="authcreak_summary">改変されたAPKパッケージのインストールを許可します(無効なダイジェストエラーを無視します)。</string>
|
||||
<string name="digestCreak">比較署名を無効にする</string>
|
||||
<string name="digestCreak_summary">異なる署名を持つアプリの再インストールを許可します。</string>
|
||||
<string name="UsePreSig">インストール済みの署名を使用</string>
|
||||
<string name="UsePreSig_summary">アプリのインストール時に、常に既存アプリの署名を使用します。\nこのオプションは<b>大変危険</b>です。\n本当に必要なときだけ有効にしてください!!</string>
|
||||
<string name="enhancedMode">強化モード</string>
|
||||
<string name="enhancedMode_summary">アプリケーションでいくつかの検証に合格する</string>
|
||||
<string name="rear_display">背面ディスプレイ (11 Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">時計の秒数表示</string>
|
||||
<string name="sound">サウンド</string>
|
||||
<string name="media_volume_steps_switch">メデイア音量の段階数</string>
|
||||
<string name="allow_untrusted_touches">信頼されていないタッチを許可</string>
|
||||
<string name="take_effect_after_reboot">機能は再起動後に有効になります</string>
|
||||
<string name="media_volume_steps_summary">オンにすると、ボリュームバーのスクロールがフリーズしたり、Bluetoothの音量が異常になる場合があります</string>
|
||||
<string name="can_notification_slide_summary">一部のMi Pushによる通知では機能しない場合があります。</string>
|
||||
<string name="screen_hole_location">画面穴の場所</string>
|
||||
<string name="custom_clock_mode">カスタム時計モード</string>
|
||||
<string name="custom_clock_format_geek">時刻の表示方法</string>
|
||||
<string name="off">オフ</string>
|
||||
<string name="center">中央</string>
|
||||
<string name="left_or_right">左または右</string>
|
||||
<string name="preset">プリセット</string>
|
||||
<string name="geek">オタク</string>
|
||||
<string name="do_not_clear_app">バックグラウンドアプリの終了を防止</string>
|
||||
<string name="do_not_clear_app_summary">消費電力が増える可能性があります。「よりアグレッシブにする」と併用することをおすすめします。Tombstone との併用はおすすめしません。</string>
|
||||
<string name="make_millet_more_aggressive">よりアグレッシブにする</string>
|
||||
<string name="make_millet_more_aggressive_summary">バックグラウンドアプリに通知、実行中のサービスやプロセスがあっても停止させることを許可します。\n停止させたくないアプリはバッテリーセーバーを制限なしに設定してください。\n有効にする前に Tombstone と NoANR 関連モジュールをアンインストールしてください。</string>
|
||||
<string name="make_millet_ignore_active">アクティブなアプリの停止を許可</string>
|
||||
<string name="make_millet_ignore_active_summary">非常にアグレッシブで、アプリの実行に影響する可能性があります</string>
|
||||
<string name="pkg_installer">パッケージインストーラー</string>
|
||||
<string name="pkg_installer_summary">アプリインストール時のカウントチェックを無効にします</string>
|
||||
<string name="big_mobile_type_only_show_network_card">ネットワークカードのみを表示する大きなモバイルタイプ</string>
|
||||
<string name="big_mobile_type_location">大きなモバイルタイプの位置</string>
|
||||
<string name="miuihome_recentview_remove_card_animation">カードマーキングアニメーションを変更する</string>
|
||||
<string name="miuihome_recentview_remove_card_animation_summary">アプリ履歴でカードを削除するときのアニメーション効果を変更します</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening">壁紙の調整を無効にする</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">アプリ履歴へ出入りするときに壁紙の明るさが徐々に変化する効果を無効します</string>
|
||||
<string name="miuihome_scroll_icon_name">アプリ名をスクロール</string>
|
||||
<string name="miuihome_scroll_icon_name_summary">アプリ名が長すぎるとき、改行させずスクロール表示させます</string>
|
||||
<string name="miuihome_shortcut_add_small_window">ショートカットメニューの追加ウィンドウ</string>
|
||||
<string name="miuihome_shortcut_add_small_window_summary">ホーム画面のアイコンを長押しすると、素早く開けるウィンドウを追加できます</string>
|
||||
<string name="miuihome_shortcut_add_small_window_title">小さいウィンドウ</string>
|
||||
<string name="click_to_view_use_cases">クリックして使用例を表示</string>
|
||||
</resources>
|
||||
107
app/src/main/res/values-ko/strings.xml
Normal file
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">성능</string>
|
||||
<string name="lock_max_fps">최대 프레임으로 고정</string>
|
||||
<string name="ui">UI</string>
|
||||
<string name="delete_on_post_notification">알림 위에 표시 끄기</string>
|
||||
<string name="delete_on_post_notification_summary">\"이 앱은 다른 앱 위에 표시됩니다\" 알림 끄기</string>
|
||||
<string name="other">다른</string>
|
||||
<string name="disable_flag_secure">스크린샷 허용</string>
|
||||
<string name="disable_flag_secure_summary">허용되지 않은 소프트웨어의 스크린샷 허용\n보안을 위해 제어 센터에 드롭다운 빠른 설정 추가 지원</string>
|
||||
<string name="home">홈</string>
|
||||
<string name="home_time">홈 화면 시계 항상 켜짐</string>
|
||||
<string name="reboot_host">모든 범위 다시 시작</string>
|
||||
<string name="reboot">시스템 재부팅</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">상태 표시줄 아이콘</string>
|
||||
<string name="hide_no_sim_icon">유심 없음 아이콘 숨기기</string>
|
||||
<string name="hide_sim_one_icon">1번 심 아이콘 숨기기</string>
|
||||
<string name="hide_sim_two_icon">2번 심 아이콘 숨기기</string>
|
||||
<string name="hide_vpn_icon">VPN 아이콘 숨기기</string>
|
||||
<string name="hide_airplane_icon">비행기 모드 아이콘 숨기기</string>
|
||||
<string name="hide_wifi_icon">와이파이 아이콘 숨기기</string>
|
||||
<string name="hide_bluetooth_icon">블루투스 아이콘 숨기기</string>
|
||||
<string name="hide_volume_zen_icon">무음 및 방해 금지 모드 아이콘 숨기기</string>
|
||||
<string name="hide_alarm_icon">알람 아이콘 숨기기</string>
|
||||
<string name="hide_hotspot_icon">모바일 핫스팟 아이콘 숨기기</string>
|
||||
<string name="hide_headset_icon">해드셋 아이콘 숨기기</string>
|
||||
<string name="hide_bluetooth_battery_icon">블루투스 기기 배터리 아이콘 숨기기</string>
|
||||
<string name="hide_nfc_icon">NFC 아이콘 숨기기</string>
|
||||
<string name="hide_big_hd_icon">큰 HD 아이콘 숨기기</string>
|
||||
<string name="hide_small_hd_icon">작은 HD 아이콘 숨기기</string>
|
||||
<string name="hide_hd_no_service_icon">HD 서비스 없음 아이콘 숨기기</string>
|
||||
<string name="about">에 대한</string>
|
||||
<string name="about_module">모듈에 대해</string>
|
||||
<string name="verison">버전</string>
|
||||
<string name="dev_coolapk">작성자 Coolapk</string>
|
||||
<string name="opensource">소스 저장소 열기</string>
|
||||
<string name="github_url">개발에 참여하는 더 많은 개발자를 환영합니다</string>
|
||||
<string name="issues">피드백 및 제안</string>
|
||||
<string name="issues_url">클릭해 GitHub 이슈 보기</string>
|
||||
<string name="statusbar">상태 바</string>
|
||||
<string name="status_bar_time_seconds">화면 표시 시간</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">몇 초에 네트워크 속도 새로 고침</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">알림 아이콘의 최대 숫자 끄기</string>
|
||||
<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>
|
||||
<string name="skip_waiting_time">5/10초 경고 시간 건너뛰기</string>
|
||||
<string name="unlock_unlimited_cropping">사진/스크린샷 자르기 제한 끄기</string>
|
||||
<string name="hide_slave_wifi_icon">WIFI 보조 아이콘 끄기</string>
|
||||
<string name="HideLauncherIcon">런처 아이콘 끄기</string>
|
||||
<string name="hide_battery_percentage_icon">배터리 퍼센트 표시(%) 끄기</string>
|
||||
<string name="hide_battery_icon">배터리 아이콘 숨기기</string>
|
||||
<string name="status_bar_clock_format">상태바 시계 형태</string>
|
||||
<string name="status_bar_time_year">연도 표시</string>
|
||||
<string name="status_bar_time_month">달 표시</string>
|
||||
<string name="status_bar_time_day">일 표시</string>
|
||||
<string name="status_bar_time_week">요일 표시</string>
|
||||
<string name="status_bar_time_hide_space">공간 숨기기</string>
|
||||
<string name="allow_screenshots">스크린샷 허용</string>
|
||||
<string name="lock_max">현재 제한 고정</string>
|
||||
<string name="status_bar_time_double_hour">중국식 12시간 표시</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_clock_size">시계 크기(0: 변경 안함)</string>
|
||||
<string name="status_bar_clock_double_line_size">이중 행 크기(0: 변경 안함)</string>
|
||||
<string name="matters_needing_attention">기능이 작동하지 않나요? </string>
|
||||
<string name="Done">확인</string>
|
||||
<string name="about_module_summary">모듈 관련 정보 보기</string>
|
||||
<string name="contributor_list">오픈소스 저장소 기여자 목록</string>
|
||||
<string name="developer">개발자</string>
|
||||
<string name="thank_list">기여자 목록</string>
|
||||
<string name="third_party_open_source_statement">서드파티 오픈소서 상태</string>
|
||||
<string name="corepacth">제한 끄기</string>
|
||||
<string name="corepacth_summary">다운그레이드/다른 서명/서명되지 않은 설치 지원</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">배터리 최적화 화이트리스트 복구 방지</string>
|
||||
<string name="failed_after_restart">시스템 다시시작 후 복원됩니다</string>
|
||||
<string name="battery_optimization">배터리 최적화</string>
|
||||
<string name="battery_optimization_summary">MIUI에서 숨겨진 배터리 최적화 메뉴 퀵 오픈</string>
|
||||
<string name="remove_small_window_restrictions">작은 창 강제하기</string>
|
||||
<string name="app_coolapk_url">5점 리뷰 해주세요!</string>
|
||||
<string name="app_coolapk_url_summary">이것은 우리를 더 쉽게 찾을 수 있게 해줍니다</string>
|
||||
<string name="qq_channel">공식 QQ 채널에 참여하세요</string>
|
||||
<string name="tg_channel">공식 TG 채널에 참여하세요</string>
|
||||
<string name="tg_channel_summary">채널 페이지에 있는 대화 그룹에 입장 할 수 있습니다</string>
|
||||
<string name="discussions">토론</string>
|
||||
<string name="remove_small_window_restrictions_summary">작은 창의 시스템 블랙리스트 및 소프트웨어 금지 무시</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">잠금화면 사이드 패널 끄기</string>
|
||||
<string name="remove_lock_screen_camera">잠금화면 카메라 끄기</string>
|
||||
<string name="only_official_default_themes_are_supported">공식 기본 테마만이 지원됩니다</string>
|
||||
<string name="lock_one_hundred">보안 앱에서 100포인트 설정</string>
|
||||
<string name="scope">스코프</string>
|
||||
<string name="scope_android">시스템 프레임워크</string>
|
||||
<string name="scope_systemui">시스템 Ui</string>
|
||||
<string name="scope_miuihome">홈 화면</string>
|
||||
<string name="scope_other">기타</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">상태 표시줄에 있는 네트워크 속도의 새로 고침 빈도를 1초로 변경</string>
|
||||
<string name="hide_battery_percentage_icon_summary">배터리 백분율 표시 기능은 직접 켜야 합니다</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">상태 표시줄에 있는 네트워크 속도의 (/s) 단위 숨기기</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">상태 표시줄의 알림 3개 제한 끄기</string>
|
||||
<string name="scope_systemui_summary">시스템 인터페이스, 상태 표시줄, 잠금 화면 등 커스텀하기</string>
|
||||
<string name="scope_android_summary">모듈을 처음 활성화하거나 모듈이 업데이트된 후, 여기의 기능은 시스템을 다시 시작한 후 적용됩니다.</string>
|
||||
<string name="scope_other_summary">보안 앱, 사진 편집기, 배터리, 성능 등</string>
|
||||
</resources>
|
||||
17
app/src/main/res/values-night/styles.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<resources>
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="android:Theme.Material.NoActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="android:colorPrimary">@color/black</item>
|
||||
<item name="android:colorPrimaryDark">@color/black</item>
|
||||
<item name="android:colorAccent">@color/colorAccent</item>
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="android:textAllCaps">false</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:windowLightStatusBar">false</item>
|
||||
<item name="android:forceDarkAllowed">true</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
54
app/src/main/res/values-nl/strings.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Prestatie</string>
|
||||
<string name="lock_max_fps">Vergrendel het huidige ververspercentage van het bovenlimiet</string>
|
||||
<string name="delete_on_post_notification">Verwijder weergave over notificatie</string>
|
||||
<string name="delete_on_post_notification_summary">Verwijder \"Deze app geeft weer over andere apps\" notificatie</string>
|
||||
<string name="other">Andere</string>
|
||||
<string name="disable_flag_secure">Sta schermafbeelding toe</string>
|
||||
<string name="disable_flag_secure_summary">Sta schermafbeelding toe in software die niet toestaan\nOndersteuning voor het toevoegen van drop-down snelle instelling op Controle center voor beveiliging</string>
|
||||
<string name="home">Startpagina</string>
|
||||
<string name="home_time">Geef altijd de klok op het startscherm weer</string>
|
||||
<string name="reboot_host">Herstart alle scope</string>
|
||||
<string name="reboot">Herstart Systeem</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Statusbalk iconen</string>
|
||||
<string name="hide_no_sim_icon">Verberg Geen SIM icoon</string>
|
||||
<string name="hide_sim_one_icon">Verberg SIM Kaart 1 icoon</string>
|
||||
<string name="hide_sim_two_icon">Verberg SIM Kaart 2 icoon</string>
|
||||
<string name="hide_vpn_icon">Verberg VPN icoon</string>
|
||||
<string name="hide_airplane_icon">Verberg Vliegtuigmodus icoon</string>
|
||||
<string name="hide_wifi_icon">Verberg WIFI icoon</string>
|
||||
<string name="hide_bluetooth_icon">Verberg Bluetooth icoon</string>
|
||||
<string name="hide_volume_zen_icon">Verberg Geluid en Niet Storen icoon</string>
|
||||
<string name="hide_alarm_icon">Verberg Alarm icoon</string>
|
||||
<string name="hide_hotspot_icon">Verberg Draagbare hotspot icoon</string>
|
||||
<string name="hide_headset_icon">Verberg Hoofdtelefoon icoon</string>
|
||||
<string name="hide_bluetooth_battery_icon">Verberg Bluetooth batterij icoon</string>
|
||||
<string name="hide_big_hd_icon">Verberg groot HD icoon</string>
|
||||
<string name="hide_small_hd_icon">Verberg klein HD icoon</string>
|
||||
<string name="hide_hd_no_service_icon">Verberg HD Geen Service icoon</string>
|
||||
<string name="about">Over</string>
|
||||
<string name="about_module">Over Module</string>
|
||||
<string name="verison">Versie</string>
|
||||
<string name="dev_coolapk">Auteur Coolapk</string>
|
||||
<string name="github_url">Welkom meer ontwikkelaars om deel te nemen in de ontwikkeling</string>
|
||||
<string name="issues">Feedback/Voorstel</string>
|
||||
<string name="issues_url">Klik om GitHub Problemen te bekijken</string>
|
||||
<string name="statusbar">Statusbalk</string>
|
||||
<string name="status_bar_time_seconds">Seconden weergeven</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Netwerksnelheid vernieuwen in seconden</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Verwijder de maximum nummers van notificatie iconen</string>
|
||||
<string name="main_switch">Module hoofdschakelaar</string>
|
||||
<string name="hide_gps_icon">Verberg GPS icoon</string>
|
||||
<string name="hide_status_bar_network_speed_second">Verberg netwerksnelheid (/s) eenheden</string>
|
||||
<string name="Tips">Hint</string>
|
||||
<string name="skip_waiting_time">Sla 5/10 seconden van waarschuwingstijd over</string>
|
||||
<string name="unlock_unlimited_cropping">Verwijder restrictie op bijsnijden van afbeeldingen/schermafbeelingen</string>
|
||||
<string name="hide_slave_wifi_icon">Verberg WIFI tweede icoon</string>
|
||||
<string name="HideLauncherIcon">Verberg Launcher icoon</string>
|
||||
<string name="scope_systemui_summary">Aanpassen van systeeminterface, statusbalk, vergrendelingsscherm etc.</string>
|
||||
<string name="scope_android_summary">Na het inschakelen van de module voor de eerste keer of de module is bijgewerkt, zal de functie hier van kracht worden na het herstarten van het systeem</string>
|
||||
<string name="scope_other_summary">Beveiligingsapp, Gallerij aanpasser, Batterij en prestatie, enz.</string>
|
||||
<string name="scope_powerkeeper">Batterij en prestatie</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-no/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
250
app/src/main/res/values-pl/strings.xml
Normal file
@@ -0,0 +1,250 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Wydajność</string>
|
||||
<string name="lock_max_fps">Zablokuj górny limit częstotliwości odświeżania</string>
|
||||
<string name="ui">Interfejs</string>
|
||||
<string name="delete_on_post_notification">Usuń powiadomienie dot. wyświetlania nad innymi aplikacjami</string>
|
||||
<string name="delete_on_post_notification_summary">Usuń powiadomienie \"Ta aplikacja wyświetla się nad innymi aplikacjami\"</string>
|
||||
<string name="other">Inne</string>
|
||||
<string name="disable_flag_secure">Zezwalaj na wykonywanie zrzutów ekranu</string>
|
||||
<string name="disable_flag_secure_summary">Zezwalaj na wykonywanie zrzutów ekranu w aplikacjach, które na to domyślnie nie pozwalają\nObsługuje dodawanie rozwijanych szybkich ustawień w Centrum kontroli dla bezpieczeństwa</string>
|
||||
<string name="home">Ekran główny</string>
|
||||
<string name="home_time">Zawsze wyświetlaj zegar Ekranu głównego</string>
|
||||
<string name="reboot_host">Zrestartuj hosta</string>
|
||||
<string name="reboot">Restart systemu</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Ikony paska statusu</string>
|
||||
<string name="hide_no_sim_icon">Ukryj ikonę braku karty SIM</string>
|
||||
<string name="hide_sim_one_icon">Ukryj ikonę karty SIM 1</string>
|
||||
<string name="hide_sim_two_icon">Ukryj ikonę karty SIM 2</string>
|
||||
<string name="hide_vpn_icon">Ukryj ikonę VPN</string>
|
||||
<string name="hide_airplane_icon">Ukryj ikonę trybu samolotowego</string>
|
||||
<string name="hide_wifi_icon">Ukryj ikonę Wi-Fi</string>
|
||||
<string name="hide_bluetooth_icon">Ukryj ikonę Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Ukryj ikonę dźwięku i Nie przeszkadzać</string>
|
||||
<string name="hide_alarm_icon">Ukryj ikonę alarmu</string>
|
||||
<string name="hide_hotspot_icon">Ukryj ikonę przenośnego hotspotu</string>
|
||||
<string name="hide_headset_icon">Ukryj ikonę słuchawek</string>
|
||||
<string name="hide_bluetooth_battery_icon">Ukryj ikonę poziomu baterii Bluetooth</string>
|
||||
<string name="hide_nfc_icon">Ukryj ikonę NFC</string>
|
||||
<string name="hide_big_hd_icon">Ukryj dużą ikonę HD</string>
|
||||
<string name="hide_small_hd_icon">Ukryj małą ikonę HD</string>
|
||||
<string name="hide_new_hd_icon">Ukryj nową ikonę HD</string>
|
||||
<string name="hide_hd_no_service_icon">Ukryj ikonę braku usługi HD</string>
|
||||
<string name="about">O module</string>
|
||||
<string name="about_module">O module</string>
|
||||
<string name="verison">Wersja</string>
|
||||
<string name="dev_coolapk">Autor Coolapk</string>
|
||||
<string name="opensource">Otwartoźródłowe repozytorium</string>
|
||||
<string name="github_url">Zachęcam do rozwijania projektu innych deweloperów</string>
|
||||
<string name="issues">Opinie/propozycje</string>
|
||||
<string name="issues_url">Kliknij, aby wyświetlić zgłoszenia na GitHubie</string>
|
||||
<string name="xposeddescription">Narzędzie do dostosowywania MIUI 13+ (Android 12+)</string>
|
||||
<string name="statusbar">Pasek statusu</string>
|
||||
<string name="status_bar_time_seconds">Wyświetlaj sekundy</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Odświeżenie prędkości sieci w sekundach</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Usuń limit maksymalnej liczby ikon powiadomień</string>
|
||||
<string name="main_switch">Główny przełącznik modułu</string>
|
||||
<string name="hide_gps_icon">Ukryj ikonę GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Ukryj jednostki prędkości sieci (/s)</string>
|
||||
<string name="menu">Menu</string>
|
||||
<string name="Tips">Porady</string>
|
||||
<string name="skip_waiting_time">Pomiń 5/10-sekundowe zakładki z ostrzeżeniem</string>
|
||||
<string name="unlock_unlimited_cropping">Usuń ograniczenie przycinania zdjęć/zrzutów ekranu</string>
|
||||
<string name="hide_slave_wifi_icon">Ukryj dodatkową ikonę Wi-Fi</string>
|
||||
<string name="HideLauncherIcon">Ukryj ikonę launchera</string>
|
||||
<string name="hide_battery_percentage_icon">Ukryj baterię (%)</string>
|
||||
<string name="hide_battery_icon">Ukryj ikonę baterii</string>
|
||||
<string name="status_bar_clock_format">Format zegara na pasku statusu</string>
|
||||
<string name="status_bar_time_year">Wyświetlaj rok</string>
|
||||
<string name="status_bar_time_month">Wyświetlaj miesiąc</string>
|
||||
<string name="status_bar_time_day">Wyświetlaj datę</string>
|
||||
<string name="status_bar_time_week">Wyświetlaj dzień</string>
|
||||
<string name="status_bar_time_hide_space">Ukryj spację</string>
|
||||
<string name="allow_screenshots">Zezwalaj na zrzut ekranu</string>
|
||||
<string name="lock_max">Zablokuj bieżący limit</string>
|
||||
<string name="status_bar_time_double_hour">Wyświetlaj czas chiński (12 godz.)</string>
|
||||
<string name="custom_clock_switch">Własny przełącznik zegara</string>
|
||||
<string name="status_bar_time_period">Wyświetlaj AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Dwa wiersze</string>
|
||||
<string name="status_bar_clock_size">Rozmiar zegara (0: brak zmian)</string>
|
||||
<string name="status_bar_clock_double_line_size">Rozmiar wiersza (0: brak zmian)</string>
|
||||
<string name="matters_needing_attention">Funkcja nie działa? </string>
|
||||
<string name="Done">OK</string>
|
||||
<string name="about_module_summary">Wyświetl informacje dotyczące modułu</string>
|
||||
<string name="contributor_list">Lista współtwórców repozytorium</string>
|
||||
<string name="developer">Deweloper</string>
|
||||
<string name="thank_list">Podziękowania</string>
|
||||
<string name="third_party_open_source_statement">Deklaracja Open Source dla stron trzecich</string>
|
||||
<string name="corepacth">Usuń ograniczenia</string>
|
||||
<string name="corepacth_summary">Wspieraj instalację starszej wersji/innej sygnatury/niepodpisanej aplikacji</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Zapobiegaj przywracaniu białej listy optymalizacji baterii</string>
|
||||
<string name="failed_after_restart">Zostanie przywrócone po ponownym uruchomieniu systemu</string>
|
||||
<string name="battery_optimization">Optymalizacja baterii</string>
|
||||
<string name="battery_optimization_summary">Szybkie otwieranie menu optymalizacji baterii ukrytego przez MIUI</string>
|
||||
<string name="remove_small_window_restrictions">Wymuś małe okna</string>
|
||||
<string name="app_coolapk_url">Przejdź i daj nam 5 gwiazdek</string>
|
||||
<string name="app_coolapk_url_summary">Być może dzięki temu będziemy bardziej rozpoznawalni</string>
|
||||
<string name="qq_channel">Dołącz do oficjalnego kanału QQ</string>
|
||||
<string name="tg_channel">Dołącz do oficjalnego kanału Telegram</string>
|
||||
<string name="tg_channel_summary">Możesz wejść na naszą grupę na stronie kanału</string>
|
||||
<string name="discussions">Dyskusje</string>
|
||||
<string name="remove_small_window_restrictions_summary">Ignoruj systemową czarną listę, a także ograniczenia oprogramowania dot. pływających okien</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Usuń panel boczny Ekranu blokady</string>
|
||||
<string name="remove_lock_screen_camera">Usuń funkcję aparatu z Ekranu blokady</string>
|
||||
<string name="only_official_default_themes_are_supported">Obsługiwane są tylko oficjalne domyślne motywy</string>
|
||||
<string name="lock_one_hundred">Ustaw 100 punktów w teście Panelu sterowania</string>
|
||||
<string name="scope">Obszar</string>
|
||||
<string name="scope_android">Framework systemu</string>
|
||||
<string name="scope_systemui">Interfejs</string>
|
||||
<string name="scope_miuihome">Ekran główny</string>
|
||||
<string name="scope_other">Inne</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Zmień częstotliwość odświeżania wskaźnika prędkości sieci na 1 sekundę</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Procentowe wyświetlanie poziomu baterii musi być włączone ręcznie</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Ukryj jednostki (/s) wskaźnika prędkości sieci na pasku statusu</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Usuń limit 3 powiadomień na pasku statusu</string>
|
||||
<string name="scope_systemui_summary">Dostosuj interfejs systemu, pasek statusu, ekran blokady itp.</string>
|
||||
<string name="scope_android_summary">Po pierwszym włączeniu modułu lub jego aktualizacji funkcja będzie działać po ponownym uruchomieniu systemu</string>
|
||||
<string name="scope_other_summary">Panel sterowania, Edytor Galerii, Bateria i wydajność itp.</string>
|
||||
<string name="scope_powerkeeper">Bateria i wydajność</string>
|
||||
<string name="scope_securitycenter">Panel sterowania</string>
|
||||
<string name="scope_mediaeditor">Edytor Galerii</string>
|
||||
<string name="home_time_summary">Po włączeniu zegar nie będzie ukryty na pasku stanu, nawet jeśli istnieje widżet zegara</string>
|
||||
<string name="skip_waiting_time_summary">Ignoruj czas oczekiwania, który wymusza MIUI podczas włączania debugowania USB, instalacji aplikacji z nieznanych źródeł czy ułatwień dostępu</string>
|
||||
<string name="lock_one_hundred_summary">Ustaw wynik testu wydajności w Panelu sterowania na 100 punktów i zablokuj przycisk Optymalizuj</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Ignoruj minimalny limit przycinania obrazów w MIUI</string>
|
||||
<string name="hide_wifi_activity_icon">Ukryj ikonę aktywności Wi-Fi</string>
|
||||
<string name="hide_mobile_activity_icon">Ukryj ikonę aktywności mobilnej</string>
|
||||
<string name="hide_mobile_type_icon">Ukryj ikonę typu sieci</string>
|
||||
<string name="show_weather_main_switch">Wyświetlaj pogodę</string>
|
||||
<string name="lock_screen">Ekran blokady</string>
|
||||
<string name="notification_center">Centrum powiadomień</string>
|
||||
<string name="show_city">Pokaż miasto</string>
|
||||
<string name="lock_max_fps_summary">Dodaj przełącznik w Centrum funkcji dot. przełączania się na ten tryb w czasie rzeczywistym</string>
|
||||
<string name="control_center">Centrum funkcji</string>
|
||||
<string name="control_center_weather_summary">Wersja zawierająca Mi Smart Hub nie jest obecnie obsługiwana</string>
|
||||
<string name="not_support">Wygląda na to, że używasz przestarzałej wersji LSPosed lub nie jest on aktywny. Zaktualizuj lub aktywuj go, a następnie spróbuj ponownie.</string>
|
||||
<string name="matters_needing_attention_context">Zalecane jest ponowne uruchomienie telefonu po pierwszej aktywacji lub aktualizacji\nWiększość zmian wymaga restartu w prawym górnym rogu, aby zacząć działać</string>
|
||||
<string name="are_you_sure_reboot">Na pewno chcesz ponownie uruchomić system?</string>
|
||||
<string name="cancel">Anuluj</string>
|
||||
<string name="are_you_sure_reboot_scope">Czy na pewno chcesz zrestartować wszystkie zakresy?</string>
|
||||
<string name="hide_battery_charging_icon">Ukryj ikonę ładowania</string>
|
||||
<string name="hide_wifi_standard_icon">Ukryj standardową ikonę Wi-Fi</string>
|
||||
<string name="status_bar_time_center">Wyśrodkowanie czasu w pasku statusu</string>
|
||||
<string name="status_bar_layout_summary">Inne układy paska statusu są w trakcie tworzenia</string>
|
||||
<string name="status_bar_layout">Układ paska statusu</string>
|
||||
<string name="layout_compatibility_mode">Tryb zgodności</string>
|
||||
<string name="left_margin">Lewy margines (0: autom.)</string>
|
||||
<string name="right_margin">Prawy margines (0: autom.)</string>
|
||||
<string name="layout_compatibility_mode_summary">Wymuś układ pełnoekranowy (obsługuje wszystkie ekrany o specjalnym kształcie)</string>
|
||||
<string name="remove_macro_blacklist">Usuń czarną listę gier, dla których wyłączono obsługę makr</string>
|
||||
<string name="hide_network_speed_splitter">Ukryj rozdzielacz prędkości sieci</string>
|
||||
<string name="updater">Aktualizacje</string>
|
||||
<string name="remove_ota_validate">*Usuwanie sprawdzania OTA [LAB]</string>
|
||||
<string name="remove_ota_validate_summary">- Wsparcie tylko dla urządzeń z partycjami VAB. Nie używać na telefonach nieposiadających tych partycji.\n- Nie musisz znajdować się w grupie wewnętrznych testów MIUI, aby móc wgrać testowy ROM.\n- Osoby posiadające takowe uprawnienia nie będą mogły już otrzymywać aktualizacji z testowymi paczkami.\n- Po przejściu między różnymi typami aktualizacji (np. beta -> stable) zalecane jest wyczyszczenie danych.\n- Używanie tej funkcji z nieoficjalnymi ROM-ami nie jest wspierane.</string>
|
||||
<string name="settings">Ustawienia</string>
|
||||
<string name="show_notification_importance">Pokazuj ważność powiadomień</string>
|
||||
<string name="show_notification_importance_summary">Pokaż ustawienia ważności powiadomień ukryte w MIUI 12 i nowszych</string>
|
||||
<string name="remove_ad">Usuń reklamy</string>
|
||||
<string name="remove_thememanager_ads">Usuń reklamy w aplikacji Motywy</string>
|
||||
<string name="battery_life_function">Wyświetlanie obecnej temperatury w menu Baterii</string>
|
||||
<string name="enable_wave_charge_animation">Włąćz animację ładowania Fala</string>
|
||||
<string name="max_wallpaper_scale">Maksymalna skala tapety</string>
|
||||
<string name="def">"Domyślnie: "</string>
|
||||
<string name="current">Obecnie:</string>
|
||||
<string name="participate_in_translation">Przetłumacz moduł</string>
|
||||
<string name="participate_in_translation_summary">Pomóż nam przetłumaczyć aplikację na swój język</string>
|
||||
<string name="lock_screen_charging_current">Wyświetlaj informacje dot. podawanego prądu podczas ładowania</string>
|
||||
<string name="current_current">Prąd</string>
|
||||
<string name="remove_open_app_confirmation_popup">Usuń okno pop-up dot. otwarcia aplikacji</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Usuń okno pop-up Uruchamiania łańcuchowego \"Zezwól aplikacji XXX na otwarcie XXX\"</string>
|
||||
<string name="hide_volume_icon">Ukryj ikonę głośności</string>
|
||||
<string name="hide_zen_icon">Ukryj ikonę ZEN</string>
|
||||
<string name="hide_icon">Ukrywanie ikon</string>
|
||||
<string name="double_tap_to_sleep">Dwukrotnie dotknij, aby uśpić</string>
|
||||
<string name="home_double_tap_to_sleep_summary">Dotknij dwukrotnie pustego miejsca, aby uśpić</string>
|
||||
<string name="old_quick_settings_panel">Stary panel szybkich ustawień</string>
|
||||
<string name="old_qs_custom_switch">Niestandardowe wiersze i kolumny</string>
|
||||
<string name="qs_custom_columns_unexpanded">Kolumny (nierozwinięte)</string>
|
||||
<string name="qs_custom_rows">Wiersze</string>
|
||||
<string name="qs_custom_columns">Kolumny</string>
|
||||
<string name="qs_custom_rows_horizontal">Wiersze (poziomo)</string>
|
||||
<string name="status_bar_dual_row_network_speed">Prędkość sieci w dwóch wierszach</string>
|
||||
<string name="status_bar_dual_row_network_speed_summary">Wyświetlaj prędkość wysyłania i pobierania</string>
|
||||
<string name="status_bar_network_speed">Prędkość sieci na pasku statusu</string>
|
||||
<string name="status_bar_network_speed_dual_row_size">Rozmiar wiersza (0: brak zmian)</string>
|
||||
<string name="status_bar_network_speed_dual_row_icon">Ikona drugiego wiersza</string>
|
||||
<string name="none">Brak</string>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Wyrównanie wierszy</string>
|
||||
<string name="left">Do lewej</string>
|
||||
<string name="right">Do prawej</string>
|
||||
<string name="big_mobile_type_icon">Duża ikona typu sieci</string>
|
||||
<string name="show_wifi_standard">Pokaż standard Wi-Fi</string>
|
||||
<string name="can_notification_slide">Zezwól większości powiadomień na otwieranie się w pływających oknach</string>
|
||||
<string name="battery_percentage_font_size">Procent rozmiaru czcionki baterii</string>
|
||||
<string name="zero_do_no_change">0: brak zmian</string>
|
||||
<string name="big_mobile_type_icon_size">Rozmiar dużej ikony typu sieci</string>
|
||||
<string name="big_mobile_type_icon_bold">Pogrubienie dużej ikony typu sieci</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Pozycja pobierania i wysyłania w dużej ikonie typu sieci</string>
|
||||
<string name="input_error">Błąd danych wejściowych</string>
|
||||
<string name="range">Zasięg: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Marginesy po lewej i prawej stronie dużej ikony typu sieci</string>
|
||||
<string name="cast">Projekcja</string>
|
||||
<string name="force_support_send_app">Wymuś wsparcie wszystkich aplikacji dla wyświetlania się na innym urządzeniu</string>
|
||||
<string name="status_bar_time_double_line_center_align">Wyrównanie do środka dla obu wierszy</string>
|
||||
<string name="default1">Domyślne</string>
|
||||
<string name="clock_center">Zegar pośrodku</string>
|
||||
<string name="clock_right">Zegar po prawej</string>
|
||||
<string name="status_bar_layout_mode">Tryb układu paska statusu</string>
|
||||
<string name="clock_center_and_icon_left">Zegar pośrodku, ikona po lewej</string>
|
||||
<string name="maximum_number_of_notification_icons">Maksymalna ilość ikon powiadomień</string>
|
||||
<string name="maximum_number_of_notification_dots">Maksymalna liczba kropek powiadomień</string>
|
||||
<string name="custom_mobile_type_text">Własny typ sieci</string>
|
||||
<string name="custom_mobile_type_text_switch">Przełącznik dla własnego tekstu typu sieci</string>
|
||||
<string name="downgr">Instalacja starszych wersji</string>
|
||||
<string name="downgr_summary">Zezwalaj na instalację starszych wersji aplikacji.</string>
|
||||
<string name="authcreak">Wyłącz weryfikację Digest</string>
|
||||
<string name="authcreak_summary">Pozwala instalować aplikacje po modyfikacji jakiegoś pliku w archiwum APK (ignoruje nieprawidłowy błąd digest).</string>
|
||||
<string name="digestCreak">Wyłącz porównywanie podpisów</string>
|
||||
<string name="digestCreak_summary">Zezwalaj na ponowną instalację aplikacji z różnymi podpisami.</string>
|
||||
<string name="UsePreSig">Użyj zainstalowanych podpisów</string>
|
||||
<string name="UsePreSig_summary">Zawsze używaj podpisów już zainstalowanych aplikacji podczas instalacji.\nJest to niezwykle <b>niebezpieczne</b>.\nWłączaj tylko, gdy jest to naprawdę potrzebne!</string>
|
||||
<string name="enhancedMode">Tryb ulepszony</string>
|
||||
<string name="enhancedMode_summary">Wymaga potwierdzenia w aplikacji</string>
|
||||
<string name="rear_display">Tylny wyświetlacz (Mi 11 Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Wyświetlanie sekund w zegarze</string>
|
||||
<string name="sound">Dźwięk</string>
|
||||
<string name="media_volume_steps_switch">Kroki głośności multimediów</string>
|
||||
<string name="allow_untrusted_touches">Zezwalaj na niezaufane dotknięcia</string>
|
||||
<string name="take_effect_after_reboot">Efekt po restarcie</string>
|
||||
<string name="media_volume_steps_summary">Włączenie może spowodować, że przewijanie paska głośności zamraża lub głośność Bluetooth jest nieprawidłowa</string>
|
||||
<string name="can_notification_slide_summary">Niektóre powiadomienia Mi Push mogą nie być obsługiwane.</string>
|
||||
<string name="screen_hole_location">Pozycja otworu ekranu</string>
|
||||
<string name="custom_clock_mode">Niestandardowy format zegara</string>
|
||||
<string name="custom_clock_format_geek">Format zegara</string>
|
||||
<string name="off">Wył</string>
|
||||
<string name="center">Środek</string>
|
||||
<string name="left_or_right">Lewo / Prawo</string>
|
||||
<string name="preset">Szablon</string>
|
||||
<string name="geek">Maniak</string>
|
||||
<string name="do_not_clear_app">Zapobiegaj zabijaniu aplikacji w tle</string>
|
||||
<string name="do_not_clear_app_summary">Może powodować zwiększone zużycie energii i jest zalecane do stosowania z opcją \"Spraw, by Millet był bardziej agresywny\", a nie z modułami takimi jak Tombstone</string>
|
||||
<string name="make_millet_more_aggressive">Spraw, by Millet był bardziej agresywny</string>
|
||||
<string name="make_millet_more_aggressive_summary">Zezwala Milletowi na zamrożenie aplikacji, gdy aplikacje w tle mają powiadomienia, uruchomione usługi i procesy.\nAplikacje, które nie chcą być zamrożone, mogą ustawić opcję oszczędzania baterii na \"Bez ograniczeń\"\nProsimy o odinstalowanie modułów związanych z Tombstone i NoAMR przed włączeniem.</string>
|
||||
<string name="make_millet_ignore_active">Zezwól Milletowi na zamrożenie aktywnych aplikacji</string>
|
||||
<string name="make_millet_ignore_active_summary">Bardzo agresywny, może wpływać na działanie aplikacji</string>
|
||||
<string name="pkg_installer">Instalator pakietów</string>
|
||||
<string name="pkg_installer_summary">Wyłącz sprawdzanie licznika instalacji aplikacji</string>
|
||||
<string name="big_mobile_type_only_show_network_card">Duża ikona typu sieci tylko dla aktywnej karty SIM</string>
|
||||
<string name="big_mobile_type_location">Pozycja dużej ikony typu sieci</string>
|
||||
<string name="miuihome_recentview_remove_card_animation">Zmodyfikuj animację oznaczania kart</string>
|
||||
<string name="miuihome_recentview_remove_card_animation_summary">Zmodyfikuj efekt animacji karty usunięcia ostatniego zadania</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening">Wyłącz przyciemnianie tapety</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Spowoduje to wyłączenie efektu polegającego na tym, że tapeta stopniowo rozjaśnia się od przyciemnienia podczas wchodzenia i wychodzenia z ostatnich zadań</string>
|
||||
<string name="miuihome_scroll_icon_name">Przewiń nazwę aplikacji</string>
|
||||
<string name="miuihome_scroll_icon_name_summary">Zbyt długa nazwa aplikacji zostanie przewinięta i wyświetlona bez nowego wiersza</string>
|
||||
<string name="miuihome_shortcut_add_small_window">Dodaj widżet \"Menu skrótów\"</string>
|
||||
<string name="miuihome_shortcut_add_small_window_summary">Naciśnij i przytrzymaj ikonę na ekranie głównym, aby dodać okno szybkiego otwierania</string>
|
||||
<string name="miuihome_shortcut_add_small_window_title">Małe okno</string>
|
||||
<string name="click_to_view_use_cases">Kliknij, aby wyświetlić przypadki użycia</string>
|
||||
</resources>
|
||||
11
app/src/main/res/values-pt/strings.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Desempenho</string>
|
||||
<string name="lock_max_fps">Bloqueie o limite superior da taxa de atualização atual</string>
|
||||
<string name="ui">‘Interface’</string>
|
||||
<string name="delete_on_post_notification">Remover exibição sobre notificação</string>
|
||||
<string name="delete_on_post_notification_summary">Remover a notificação \"este aplicativo é exibido sobre outros aplicativos\"</string>
|
||||
<string name="other">Outros</string>
|
||||
<string name="disable_flag_secure">Permitir captura de ecrã</string>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
226
app/src/main/res/values-ro/strings.xml
Normal file
@@ -0,0 +1,226 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Performanță</string>
|
||||
<string name="lock_max_fps">Blochează limita superioară a ratei de împrospătare curentă</string>
|
||||
<string name="ui">Interfață</string>
|
||||
<string name="delete_on_post_notification">Elimină notificarea Afișare peste</string>
|
||||
<string name="delete_on_post_notification_summary">Elimină notificarea \"Această aplicație se afișează peste alte aplicații\"</string>
|
||||
<string name="other">Altele</string>
|
||||
<string name="disable_flag_secure">Permite captură de ecran</string>
|
||||
<string name="disable_flag_secure_summary">Permite captură de ecran în aplicațiile care nu permit\nAcceptă adăugarea setărilor rapide în Centrul de control pentru securitate</string>
|
||||
<string name="home">Acasă</string>
|
||||
<string name="home_time">Afișează întotdeauna ceasul pe ecranul de pornire</string>
|
||||
<string name="reboot_host">Repornire interfață utilizator</string>
|
||||
<string name="reboot">Repornire sistem</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Pictograme bară de stare</string>
|
||||
<string name="hide_no_sim_icon">Ascundere pictogramă fără SIM</string>
|
||||
<string name="hide_sim_one_icon">Ascunde pictograma card SIM 1</string>
|
||||
<string name="hide_sim_two_icon">Ascunde pictograma card SIM 2</string>
|
||||
<string name="hide_vpn_icon">Ascunde pictograma VPN</string>
|
||||
<string name="hide_airplane_icon">Ascunde pictograma mod Avion</string>
|
||||
<string name="hide_wifi_icon">Ascunde pictograma WIFI</string>
|
||||
<string name="hide_bluetooth_icon">Ascunde pictograma Bluetooth</string>
|
||||
<string name="hide_volume_zen_icon">Ascunde pictograma Sonerie și Nu deranja</string>
|
||||
<string name="hide_alarm_icon">Ascunde pictograma Alarmă</string>
|
||||
<string name="hide_hotspot_icon">Ascunde pictograma Hotspot mobil</string>
|
||||
<string name="hide_headset_icon">Ascunde pictograma căștilor</string>
|
||||
<string name="hide_bluetooth_battery_icon">Ascunde pictograma Baterie Bluetooth</string>
|
||||
<string name="hide_nfc_icon">Ascunde pictograma NFC</string>
|
||||
<string name="hide_big_hd_icon">Ascunde pictograma HD mare</string>
|
||||
<string name="hide_small_hd_icon">Ascunde pictograma HD mic</string>
|
||||
<string name="hide_hd_no_service_icon">Ascunde pictograma Fără servicii HD</string>
|
||||
<string name="about">Despre</string>
|
||||
<string name="about_module">Despre modul</string>
|
||||
<string name="verison">Versiune</string>
|
||||
<string name="dev_coolapk">Autor Coolapk</string>
|
||||
<string name="opensource">Repozitoriu sursă deschisă</string>
|
||||
<string name="github_url">Sunt bineveniți mai mulți dezvoltatori să participe la dezvoltare</string>
|
||||
<string name="issues">Feedback/Propunere</string>
|
||||
<string name="issues_url">Clic pentru a vizualiza problemele pe GitHub</string>
|
||||
<string name="statusbar">Bară de stare</string>
|
||||
<string name="status_bar_time_seconds">Afișare secunde</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Reîmprospătare viteză rețea în secunde</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Elimină numărul maxim de pictograme de notificare</string>
|
||||
<string name="main_switch">Comutatorul principal al modulului</string>
|
||||
<string name="hide_gps_icon">Ascunde pictograma GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Ascunde unitățile de viteză a rețelei (/s)</string>
|
||||
<string name="menu">Meniu</string>
|
||||
<string name="Tips">Sfaturi</string>
|
||||
<string name="skip_waiting_time">Se omite timpul de avertizare de 5/10 secunde</string>
|
||||
<string name="unlock_unlimited_cropping">Elimină restricția la decuparea fotografiilor/capturilor de ecran</string>
|
||||
<string name="hide_slave_wifi_icon">Ascunde pictograma secundară WIFI</string>
|
||||
<string name="HideLauncherIcon">Ascunde pictograma în lansator</string>
|
||||
<string name="hide_battery_percentage_icon">Ascunde % baterie</string>
|
||||
<string name="hide_battery_icon">Ascunde pictograma bateriei</string>
|
||||
<string name="status_bar_clock_format">Formatul ceasului în bara de stare</string>
|
||||
<string name="status_bar_time_year">Afișare an</string>
|
||||
<string name="status_bar_time_month">Afișare lună</string>
|
||||
<string name="status_bar_time_day">Afișare dată</string>
|
||||
<string name="status_bar_time_week">Afișare zi</string>
|
||||
<string name="status_bar_time_hide_space">Ascunde spațiul</string>
|
||||
<string name="allow_screenshots">Permite captură ecran</string>
|
||||
<string name="lock_max">Blochează limita curentă</string>
|
||||
<string name="status_bar_time_double_hour">Format chinez</string>
|
||||
<string name="custom_clock_switch">Comutator personalizare ceas</string>
|
||||
<string name="status_bar_time_period">Afişare AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Rândul dublu</string>
|
||||
<string name="status_bar_clock_size">Dimensiune ceas (0: nu se modifică)</string>
|
||||
<string name="status_bar_clock_double_line_size">Dimensiune rând dublu (0: nu se modifică)</string>
|
||||
<string name="matters_needing_attention">Aplicația nu funcționează? </string>
|
||||
<string name="about_module_summary">Vizualizează informații legate de modul</string>
|
||||
<string name="contributor_list">Lista de contribuitori a depozitului sursă deschisă</string>
|
||||
<string name="developer">Dezvoltator</string>
|
||||
<string name="thank_list">Listă de mulțumiri</string>
|
||||
<string name="third_party_open_source_statement">Declarație Open Source terță parte</string>
|
||||
<string name="corepacth">Elimină restricțiile</string>
|
||||
<string name="corepacth_summary">Suportă downgrade/semnătură diferită/fără semnătură</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Previne recuperarea excluderii din lista albă a optimizării bateriei</string>
|
||||
<string name="failed_after_restart">Va fi restabilit după repornirea sistemului</string>
|
||||
<string name="battery_optimization">Optimizare baterie</string>
|
||||
<string name="battery_optimization_summary">Deschide meniul de optimizare a bateriei ascuns de MIUI</string>
|
||||
<string name="remove_small_window_restrictions">Forțează ferestrele mici</string>
|
||||
<string name="app_coolapk_url">Vino și dă-ne o evaluare de cinci stele</string>
|
||||
<string name="app_coolapk_url_summary">Aceasta ne va ajuta în dezvoltarea proiectului</string>
|
||||
<string name="qq_channel">Alătură-te canalului oficial QQ</string>
|
||||
<string name="tg_channel">Alătură-te canalului oficial TG</string>
|
||||
<string name="tg_channel_summary">Poți intra în grupul de discuții pe pagina canalului</string>
|
||||
<string name="discussions">Discuții</string>
|
||||
<string name="remove_small_window_restrictions_summary">Ignoră lista neagră a sistemului și interdicția pentru ferestrele mici</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Elimină panoul lateral al ecranului de blocare</string>
|
||||
<string name="remove_lock_screen_camera">Elimină camera de pe ecranul de blocare</string>
|
||||
<string name="only_official_default_themes_are_supported">Numai temele oficiale implicite sunt acceptate</string>
|
||||
<string name="lock_one_hundred">Setează 100 de puncte în aplicația Securitate</string>
|
||||
<string name="scope">Domeniu</string>
|
||||
<string name="scope_android">Framework sistem</string>
|
||||
<string name="scope_systemui">Interfață sistem</string>
|
||||
<string name="scope_miuihome">Ecran de pornire</string>
|
||||
<string name="scope_other">Altele</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Schimbă frecvența de reîmprospătare a componentei de viteză a barei de stare la 1 s</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Funcția afișare procentaj baterie trebuie activată</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Ascunde unitățile (/s) ale componentei de viteză a rețelei din bara de stare</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Elimină limita de 3 notificări din bara de stare</string>
|
||||
<string name="scope_systemui_summary">Personalizează interfața de sistem, bara de stare, ecranul de blocare etc.</string>
|
||||
<string name="scope_android_summary">După activarea modulului pentru prima dată sau după actualizare, opțiunile de aici vor intra în vigoare după repornirea sistemului</string>
|
||||
<string name="scope_other_summary">Aplicația Securitate, Editor galerie, performanță și baterie etc.</string>
|
||||
<string name="scope_powerkeeper">Baterie și performanță</string>
|
||||
<string name="scope_securitycenter">Aplicația Securitate</string>
|
||||
<string name="scope_mediaeditor">Editor Galerie</string>
|
||||
<string name="home_time_summary">Când este activat, ceasul nu va fi ascuns în bara de stare chiar dacă există un widget ceas</string>
|
||||
<string name="skip_waiting_time_summary">Ignoră timpul de așteptare al MIUI atunci când se activează depanarea USB, surse necunoscute și accesibilitatea</string>
|
||||
<string name="lock_one_hundred_summary">Setează punctajul aplicației Securitate la 100 de puncte și blochează butonul Optimizare</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Ignoră limita minimă pentru decuparea imaginii</string>
|
||||
<string name="hide_wifi_activity_icon">Ascunde pictograma activității WIFI</string>
|
||||
<string name="hide_mobile_activity_icon">Ascunde pictograma activității datelor mobile</string>
|
||||
<string name="hide_mobile_type_icon">Ascunde pictograma pentru tipul datelor mobile</string>
|
||||
<string name="show_weather_main_switch">Afișare date meteo - Comutator principal</string>
|
||||
<string name="lock_screen">Ecran blocare</string>
|
||||
<string name="notification_center">Panoul de notificări</string>
|
||||
<string name="show_city">Afișează orașul</string>
|
||||
<string name="lock_max_fps_summary">Acceptă adăugarea setării rapide în Centrul de control pentru comutare în timp real</string>
|
||||
<string name="control_center">Centru de Control</string>
|
||||
<string name="control_center_weather_summary">Versiunea Mi Smart Hub nu este acceptată în prezent</string>
|
||||
<string name="not_support">Se pare că utilizezi o versiune învechită a LSPosed sau LSPosed nu este activ. Actualizează LSPosed sau activează-l și încearcă din nou.</string>
|
||||
<string name="matters_needing_attention_context">Se recomandă repornirea telefonului după prima activare sau actualizare\nCele mai multe modificări necesită repornire pentru a avea efect - trei puncte din colțul din dreapta sus</string>
|
||||
<string name="are_you_sure_reboot">Sigur repornești?</string>
|
||||
<string name="cancel">Anulare</string>
|
||||
<string name="are_you_sure_reboot_scope">Sigur repornești interfața utilizatorului?</string>
|
||||
<string name="hide_battery_charging_icon">Ascunde pictograma Încărcare</string>
|
||||
<string name="hide_wifi_standard_icon">Ascunde pictograma standard WIFI</string>
|
||||
<string name="status_bar_time_center">Ceas la centru în bara de stare</string>
|
||||
<string name="status_bar_layout_summary">Mai multe aspecte ale barei de stare sunt în curs de dezvoltare</string>
|
||||
<string name="status_bar_layout">Aspect bară de stare</string>
|
||||
<string name="layout_compatibility_mode">Mod compatibilitate</string>
|
||||
<string name="left_margin">Marginea din stânga (0: Auto)</string>
|
||||
<string name="right_margin">Marginea din dreapta (0: auto)</string>
|
||||
<string name="remove_macro_blacklist">Elimină lista neagră a macrocomenzilor jocurilor</string>
|
||||
<string name="hide_network_speed_splitter">Ascunde separatorul vitezei rețelei</string>
|
||||
<string name="updater">Actualizator</string>
|
||||
<string name="remove_ota_validate">*Eliminare validare OTA [LAB]</string>
|
||||
<string name="remove_ota_validate_summary">- Acceptă numai utilizarea seriilor VAB, nu utiliza alte serii.\n- Nu este nevoie de o calificare de testare internă pentru a instala pachetul complet de testare.\n- Cei care au permisiunea de testare internă nu vor putea primi actualizări și pot fi folosiți pentru a bloca actualizările sistemului.\n- După actualizarea tipului de versiuni încrucișate, se recomandă ștergerea datelor.\n- Utilizarea ROM-urilor neoficiale nu este acceptată.</string>
|
||||
<string name="settings">Setări</string>
|
||||
<string name="show_notification_importance">Arată importanța notificării</string>
|
||||
<string name="show_notification_importance_summary">Arată setările importanței notificărilor care sunt ascunse în MIUI 12 și versiunile ulterioare</string>
|
||||
<string name="remove_ad">Eliminare anunțuri</string>
|
||||
<string name="remove_thememanager_ads">Elimină reclamele din managerul de teme</string>
|
||||
<string name="battery_life_function">Pagina bateriei afișează temperatura curentă</string>
|
||||
<string name="enable_wave_charge_animation">Activează animația de încărcare Val</string>
|
||||
<string name="max_wallpaper_scale">Scară maximă imagine de fundal</string>
|
||||
<string name="def">"Implicit: "</string>
|
||||
<string name="current">Actual:</string>
|
||||
<string name="participate_in_translation">Participă în traducere</string>
|
||||
<string name="participate_in_translation_summary">Ajută-ne să traducem aplicația</string>
|
||||
<string name="lock_screen_charging_current">Afișare informații despre curent în timpul încărcării</string>
|
||||
<string name="current_current">Curent</string>
|
||||
<string name="remove_open_app_confirmation_popup">Elimină fereastra pop-up a aplicației deschise</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Elimină mesajul \"Permite XXX să deschidă XXX\" în lanț</string>
|
||||
<string name="hide_volume_icon">Ascunde pictograma volum</string>
|
||||
<string name="hide_zen_icon">Ascunde pictograma ZEN</string>
|
||||
<string name="hide_icon">Ascundere pictograme</string>
|
||||
<string name="double_tap_to_sleep">Apăsare dublă pentru a opri ecranul</string>
|
||||
<string name="home_double_tap_to_sleep_summary">Atinge de două ori spațiul gol pentru a opri ecranul</string>
|
||||
<string name="old_quick_settings_panel">Panoul vechi al setărilor rapide</string>
|
||||
<string name="old_qs_custom_switch">Rânduri și coloane personalizate</string>
|
||||
<string name="qs_custom_columns_unexpanded">Coloane (Restrâns)</string>
|
||||
<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>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Aliniere rândul dublu</string>
|
||||
<string name="left">Stânga</string>
|
||||
<string name="right">Dreapta</string>
|
||||
<string name="big_mobile_type_icon">Pictogramă mare pentru tipul datelor mobile</string>
|
||||
<string name="show_wifi_standard">Afișare Standard Wifi</string>
|
||||
<string name="can_notification_slide">Cele mai multe notificări pot fi glisate în fereastră mică</string>
|
||||
<string name="battery_percentage_font_size">Dimensiune font procentaj baterie</string>
|
||||
<string name="zero_do_no_change">0: nu se modifică</string>
|
||||
<string name="big_mobile_type_icon_size">Dimensiune pictogramă tip mobil mare</string>
|
||||
<string name="big_mobile_type_icon_bold">Pictogramă tip mobil mare îngroșată</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Poziție pictogramă mare tip date mobile sus/jos</string>
|
||||
<string name="input_error">Eroare de intrare</string>
|
||||
<string name="range">Interval: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Pictogramă mare tip date mobil, marginile din stânga și din dreapta</string>
|
||||
<string name="cast">Proiectare</string>
|
||||
<string name="force_support_send_app">Forțează trimiterea tuturor aplicațiilor către alt dispozitiv</string>
|
||||
<string name="status_bar_time_double_line_center_align">Aliniere rândului dublu la centru</string>
|
||||
<string name="default1">Implicit</string>
|
||||
<string name="clock_center">Ceas la centru</string>
|
||||
<string name="clock_right">Ceas la dreapta</string>
|
||||
<string name="status_bar_layout_mode">Aspect bară de stare</string>
|
||||
<string name="clock_center_and_icon_left">Ceas la centru și pictograme în stânga</string>
|
||||
<string name="maximum_number_of_notification_icons">Numărul maxim de pictograme de notificare</string>
|
||||
<string name="maximum_number_of_notification_dots">Numărul maxim de puncte de notificare</string>
|
||||
<string name="custom_mobile_type_text">Text personalizat tip date mobile</string>
|
||||
<string name="custom_mobile_type_text_switch">Comutator text personalizat tip date mobile</string>
|
||||
<string name="downgr">Permite downgrade</string>
|
||||
<string name="downgr_summary">Permite retrogradarea aplicațiilor.</string>
|
||||
<string name="authcreak">Dezactivare verificare digest</string>
|
||||
<string name="authcreak_summary">Permite instalarea aplicațiilor după modificarea fișierului în apk (ignorați eroarea de rezumat nevalidă).</string>
|
||||
<string name="digestCreak">Dezactivează compararea semnăturilor</string>
|
||||
<string name="digestCreak_summary">Permite reinstalarea aplicației cu semnături diferite.</string>
|
||||
<string name="UsePreSig">Utilizează semnăturile instalate</string>
|
||||
<string name="UsePreSig_summary">Se folosesc întotdeauna semnături din aplicațiile deja instalate.\nAcest lucru este extrem de <b>periculos</b>.\nActiveză numai dacă este cu adevărat necesar!</string>
|
||||
<string name="enhancedMode">Mod îmbunătățit</string>
|
||||
<string name="enhancedMode_summary">Trece o anumită validare în aplicație</string>
|
||||
<string name="rear_display">Afișaj spate (11Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Afișare secunde ceas</string>
|
||||
<string name="sound">Sunet</string>
|
||||
<string name="media_volume_steps_switch">Trepte volum media</string>
|
||||
<string name="allow_untrusted_touches">Permite atingeri nesigure</string>
|
||||
<string name="take_effect_after_reboot">Intră în vigoare după repornire</string>
|
||||
<string name="media_volume_steps_summary">Activarea poate provoca înghețarea derulării barei de volum sau volumul Bluetooth să fie anormal</string>
|
||||
<string name="can_notification_slide_summary">Este posibil ca unele notificări prin Mi Push să nu fie acceptate.</string>
|
||||
<string name="screen_hole_location">Locație gaură ecran</string>
|
||||
<string name="custom_clock_mode">Mod ceas personalizat</string>
|
||||
<string name="custom_clock_format_geek">Format ceas</string>
|
||||
<string name="off">Oprit</string>
|
||||
<string name="center">La centru</string>
|
||||
<string name="left_or_right">Stânga sau dreapta</string>
|
||||
<string name="preset">Presetare</string>
|
||||
<string name="geek">Tocilar</string>
|
||||
</resources>
|
||||
252
app/src/main/res/values-ru/strings.xml
Normal file
@@ -0,0 +1,252 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Производительность</string>
|
||||
<string name="lock_max_fps">Зафиксировать текущую частоту обновления</string>
|
||||
<string name="ui">Интерфейс</string>
|
||||
<string name="delete_on_post_notification">Удалить уведомление наложения</string>
|
||||
<string name="delete_on_post_notification_summary">Удалить уведомление \"Это приложение отображается поверх других приложений\"</string>
|
||||
<string name="other">Другое</string>
|
||||
<string name="disable_flag_secure">Разрешить скриншот</string>
|
||||
<string name="disable_flag_secure_summary">Разрешить скриншот в приложениях, которые имеют ограничение на снятие скриншота</string>
|
||||
<string name="home">Домашний экран</string>
|
||||
<string name="home_time">Всегда отображать часы в строке состояния</string>
|
||||
<string name="reboot_host">Перезагрузка SystemUI</string>
|
||||
<string name="reboot">Полная перезагрузка</string>
|
||||
<!--Status bar icons-->
|
||||
<string name="status_bar_icon">Иконки в строке состояния</string>
|
||||
<string name="hide_no_sim_icon">Скрыть нет сим</string>
|
||||
<string name="hide_sim_one_icon">Скрыть сим 1</string>
|
||||
<string name="hide_sim_two_icon">Скрыть сим 2</string>
|
||||
<string name="hide_vpn_icon">Скрыть vpn</string>
|
||||
<string name="hide_airplane_icon">Скрыть режим полета</string>
|
||||
<string name="hide_wifi_icon">Скрыть wifi</string>
|
||||
<string name="hide_bluetooth_icon">Скрыть блютуз</string>
|
||||
<string name="hide_volume_zen_icon">Скрыть без звука и не беспокоить</string>
|
||||
<string name="hide_alarm_icon">Скрыть будильник</string>
|
||||
<string name="hide_hotspot_icon">Скрыть точку доступа</string>
|
||||
<string name="hide_headset_icon">Скрыть гарнитуру</string>
|
||||
<string name="hide_bluetooth_battery_icon">Скрыть батарею блютуз устройства</string>
|
||||
<string name="hide_nfc_icon">Скрыть иконку NFC</string>
|
||||
<string name="hide_big_hd_icon">Скрыть большую иконку HD</string>
|
||||
<string name="hide_small_hd_icon">Скрыть маленькую иконку HD</string>
|
||||
<string name="hide_new_hd_icon">Скрыть новую иконку HD</string>
|
||||
<string name="hide_hd_no_service_icon">Скрыть HD No Service</string>
|
||||
<string name="about">Информация</string>
|
||||
<string name="about_module">О модуле</string>
|
||||
<string name="verison">Версия</string>
|
||||
<string name="dev_coolapk">Автор Coolapk</string>
|
||||
<string name="opensource">Исходный код</string>
|
||||
<string name="github_url">Приглашаем больше разработчиков принять участие в разработке</string>
|
||||
<string name="issues">Обратная связь</string>
|
||||
<string name="issues_url">Нажмите, чтобы просмотреть обсуждение на GitHub</string>
|
||||
<string name="statusbar">Строка состояния</string>
|
||||
<string name="status_bar_time_seconds">Секунды</string>
|
||||
<string name="status_bar_network_speed_refresh_speed">Обновление скорости сети в секундах</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons">Максимальное количество значков уведомлений</string>
|
||||
<string name="main_switch">Вкл/Выкл модуль</string>
|
||||
<string name="hide_gps_icon">Скрыть GPS</string>
|
||||
<string name="hide_status_bar_network_speed_second">Скрыть единицы измерения скорости сети</string>
|
||||
<string name="menu">Варианты перезагрузки</string>
|
||||
<string name="Tips">Подсказка</string>
|
||||
<string name="skip_waiting_time">Пропустить 5/10 секундное уведомление</string>
|
||||
<string name="unlock_unlimited_cropping">Снять ограничение на обрезку изображений/скриншотов</string>
|
||||
<string name="hide_slave_wifi_icon">Скрыть вторичный wifi</string>
|
||||
<string name="HideLauncherIcon">Скрыть иконку с рабочего стола</string>
|
||||
<string name="hide_battery_percentage_icon">Скрыть проценты батареи</string>
|
||||
<string name="hide_battery_icon">Скрыть батарею</string>
|
||||
<string name="status_bar_clock_format">Формат часов строки состояния</string>
|
||||
<string name="status_bar_time_year">Год</string>
|
||||
<string name="status_bar_time_month">Месяц</string>
|
||||
<string name="status_bar_time_day">Дата</string>
|
||||
<string name="status_bar_time_week">День</string>
|
||||
<string name="status_bar_time_hide_space">Скрыть пробел</string>
|
||||
<string name="allow_screenshots">Разрешить скриншот</string>
|
||||
<string name="lock_max">Заблокировать текущий предел</string>
|
||||
<string name="status_bar_time_double_hour">Китайский формат</string>
|
||||
<string name="custom_clock_switch">Пользовательские настройки часов</string>
|
||||
<string name="status_bar_time_period">AM/PM</string>
|
||||
<string name="status_bar_time_double_line">Время в 2 строки</string>
|
||||
<string name="status_bar_clock_size">Размер часов (0: не изменять)</string>
|
||||
<string name="status_bar_clock_double_line_size">Размер часов в 2 строки (0: не изменять)</string>
|
||||
<string name="matters_needing_attention">Функция не работает?</string>
|
||||
<string name="Done">ОК</string>
|
||||
<string name="about_module_summary">Просмотр информации</string>
|
||||
<string name="contributor_list">Список участников</string>
|
||||
<string name="developer">Разработчик</string>
|
||||
<string name="thank_list">Список благодарностей</string>
|
||||
<string name="third_party_open_source_statement">Официальный репозиторий</string>
|
||||
<string name="corepacth">Снять ограничения</string>
|
||||
<string name="corepacth_summary">Поддержка понижения версии/переподписи/неподписанной установки</string>
|
||||
<string name="prevent_recovery_of_battery_optimization_white_list">Предотвратить восстановление белого списка оптимизации батареи</string>
|
||||
<string name="failed_after_restart">Будет восстановленно после перезагрузки системы</string>
|
||||
<string name="battery_optimization">Оптимизация батареи</string>
|
||||
<string name="battery_optimization_summary">Открывает меню оптимизации заряда батареи</string>
|
||||
<string name="remove_small_window_restrictions">Принудительное создание плавающих окон</string>
|
||||
<string name="app_coolapk_url">Перейти и оставить отзыв</string>
|
||||
<string name="app_coolapk_url_summary">Это поможет в развитии проэкта</string>
|
||||
<string name="qq_channel">Присоединяйтесь к официальному каналу QQ</string>
|
||||
<string name="tg_channel">Присоединяйтесь к официальному каналу в Telegram</string>
|
||||
<string name="tg_channel_summary">Вы можете войти в чат на странице канала</string>
|
||||
<string name="discussions">Контакты</string>
|
||||
<string name="remove_small_window_restrictions_summary">Игнорировать системный запрет на создание плавающих окон</string>
|
||||
<string name="remove_the_left_side_of_the_lock_screen">Убирает боковую панель экрана блокировки</string>
|
||||
<string name="remove_lock_screen_camera">Удаляет функцию камеры с экрана блокировки</string>
|
||||
<string name="only_official_default_themes_are_supported">Поддерживаются только официальные темы</string>
|
||||
<string name="lock_one_hundred">Оптимизация безопасности</string>
|
||||
<string name="scope">Основное</string>
|
||||
<string name="scope_android">Системный фреймворк</string>
|
||||
<string name="scope_systemui">SystemUI</string>
|
||||
<string name="scope_miuihome">Начальный экран</string>
|
||||
<string name="scope_other">Другое</string>
|
||||
<string name="status_bar_network_speed_refresh_speed_summary">Изменяет частоту обновления скорости сети в строке состояния на 1 с</string>
|
||||
<string name="hide_battery_percentage_icon_summary">Функция отображения процента заряда батареи должна быть включена</string>
|
||||
<string name="hide_status_bar_network_speed_second_summary">Скрыть единицы измерения скорости сети в строке состояния</string>
|
||||
<string name="remove_the_maximum_number_of_notification_icons_summary">Убирает ограничение в 3 иконки уведомлений в строке состояния</string>
|
||||
<string name="scope_systemui_summary">Настройте системный интерфейс, строку состояния, экран блокировки и т.д.</string>
|
||||
<string name="scope_android_summary">После первой установки или обновления модуля, данные функции вступят в силу после перезагрузки</string>
|
||||
<string name="scope_other_summary">Безопасность, редактор галереи, батарея, производительность и т.д.</string>
|
||||
<string name="scope_powerkeeper">Батарея и производительность</string>
|
||||
<string name="scope_securitycenter">Безопасность</string>
|
||||
<string name="scope_mediaeditor">Редактор галереи</string>
|
||||
<string name="home_time_summary">При включении часы не будут скрыты в строке состояния, даже если есть виджет часов</string>
|
||||
<string name="skip_waiting_time_summary">Отключает время ожидания при отладке по USB, установке из неизвестных источников</string>
|
||||
<string name="lock_one_hundred_summary">Устанавливает оценку в приложении безопасности на 100 баллов и блокирует кнопку Оптимизации</string>
|
||||
<string name="unlock_unlimited_cropping_summary">Игнорирует минимальное ограничение на обрезку изображения</string>
|
||||
<string name="hide_wifi_activity_icon">Скрыть стрелки wifi</string>
|
||||
<string name="hide_mobile_activity_icon">Скрыть стрелки сети</string>
|
||||
<string name="hide_mobile_type_icon">Скрыть тип сети</string>
|
||||
<string name="show_weather_main_switch">Показывать погоду</string>
|
||||
<string name="lock_screen">Экран блокировки</string>
|
||||
<string name="notification_center">Панель уведомлений</string>
|
||||
<string name="show_city">Показывать город</string>
|
||||
<string name="lock_max_fps_summary">Поддержка добавления быстрой настройки выпадающего центра управления для переключения в режиме реального времени</string>
|
||||
<string name="control_center">Центр Управления</string>
|
||||
<string name="control_center_weather_summary">ЦУ в стиле MIUI 13 в настоящее время не поддерживается</string>
|
||||
<string name="not_support">Похоже, вы используете устаревшую версию LSPosed или LSPosed не активен. Пожалуйста, обновите LSPosed или активируйте его и повторите попытку.</string>
|
||||
<string name="matters_needing_attention_context">Рекомендуется перезагрузить телефон после первой активации или обновления.Большинство изменений требуют перезапуска. Используйте 3 точки в правом верхнем углу</string>
|
||||
<string name="are_you_sure_reboot">Перезагрузить устройство?</string>
|
||||
<string name="cancel">Отмена</string>
|
||||
<string name="are_you_sure_reboot_scope">Перезагрузить интерфейс?</string>
|
||||
<string name="hide_battery_charging_icon">Скрыть зарядку</string>
|
||||
<string name="hide_wifi_standard_icon">Скрыть стандарт wifi</string>
|
||||
<string name="status_bar_time_center">Часы по центру строки состояния</string>
|
||||
<string name="status_bar_layout_summary">В настоящее время разрабатываются дополнительные стили строки состояния</string>
|
||||
<string name="status_bar_layout">Стиль строки состояния</string>
|
||||
<string name="layout_compatibility_mode">Режим совместимости</string>
|
||||
<string name="left_margin">Отступ слева (0: Авто)</string>
|
||||
<string name="right_margin">Отступ справа (0: Автоматически)</string>
|
||||
<string name="remove_macro_blacklist">Удалить черный список игровых макросов</string>
|
||||
<string name="hide_network_speed_splitter">Скрыть разделитель скорости сети</string>
|
||||
<string name="updater">OTA</string>
|
||||
<string name="remove_ota_validate">*Удалить OTA-проверку [БЭТА]</string>
|
||||
<string name="remove_ota_validate_summary">- Поддерживайте только использование серии VAB, пожалуйста, не используйте другие серии.
|
||||
- Нет необходимости в статусе внутреннего тестирования для включения в программу внутреннего тестирования.
|
||||
- Те, у кого есть разрешение на внутреннее тестирование, не смогут получать обновления для внутреннего тестирования и могут использоваться для блокировки системных обновлений.
|
||||
- После обновления типа кросс-версии рекомендуется очистить данные.
|
||||
- Неофициальные прошивки не поддерживаются.</string>
|
||||
<string name="settings">Настройки</string>
|
||||
<string name="show_notification_importance">Показывать важные уведомления</string>
|
||||
<string name="show_notification_importance_summary">Показывать настройки важных уведомлений, которые скрыты в MIUI 12 и более поздних версиях</string>
|
||||
<string name="remove_ad">Удалить рекламу</string>
|
||||
<string name="remove_thememanager_ads">Удалить рекламу из менеджера тем</string>
|
||||
<string name="battery_life_function">Показывает текущую температуру АКБ</string>
|
||||
<string name="enable_wave_charge_animation">Анимация зарядки волна</string>
|
||||
<string name="max_wallpaper_scale">Максимальный масштаб обоев</string>
|
||||
<string name="def">"Ум: "</string>
|
||||
<string name="current">Тек:</string>
|
||||
<string name="participate_in_translation">Участвуйте в переводе</string>
|
||||
<string name="participate_in_translation_summary">Помогите нам перевести приложение на ваш язык</string>
|
||||
<string name="lock_screen_charging_current">Показывать ток при зарядке на экране блокировки</string>
|
||||
<string name="current_current">Текущее</string>
|
||||
<string name="remove_open_app_confirmation_popup">Удалить всплывающее окно открытия приложения</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Удалить уведомление цепного запуска</string>
|
||||
<string name="hide_volume_icon">Скрыть иконку без звука</string>
|
||||
<string name="hide_zen_icon">Скрыть иконку не беспокоить</string>
|
||||
<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>
|
||||
<string name="status_bar_network_speed_dual_row_gravity">Выравнивание скорости сети в 2 ряда</string>
|
||||
<string name="left">Влево</string>
|
||||
<string name="right">Вправо</string>
|
||||
<string name="big_mobile_type_icon">Большая иконка типа сети</string>
|
||||
<string name="show_wifi_standard">Показывать стандарт Wifi</string>
|
||||
<string name="can_notification_slide">Сделать так, чтобы все уведомления можно было сдвинуть в всплывающее окно</string>
|
||||
<string name="battery_percentage_font_size">Размер шрифта процентов заряда батареи</string>
|
||||
<string name="zero_do_no_change">0: не изменять</string>
|
||||
<string name="big_mobile_type_icon_size">Размер большого значка типа сети</string>
|
||||
<string name="big_mobile_type_icon_bold">Жирный шрифт большого значка типа сети</string>
|
||||
<string name="big_mobile_type_icon_up_and_down_position">Регулировка по высоте типа сети</string>
|
||||
<string name="input_error">Ошибка ввода</string>
|
||||
<string name="range">Диапазон: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Положение типа сети по горизонтали</string>
|
||||
<string name="cast">Трансляция</string>
|
||||
<string name="force_support_send_app">Принудительно открывать все приложения на другом устройстве</string>
|
||||
<string name="status_bar_time_double_line_center_align">Выравнивание по центру двойной строки</string>
|
||||
<string name="default1">Ум</string>
|
||||
<string name="clock_center">Часы по центру</string>
|
||||
<string name="clock_right">Часы справа</string>
|
||||
<string name="status_bar_layout_mode">Стиль строки состояния</string>
|
||||
<string name="clock_center_and_icon_left">Часы по центру и иконки слева</string>
|
||||
<string name="maximum_number_of_notification_icons">Максимальное количество значков уведомлений</string>
|
||||
<string name="maximum_number_of_notification_dots">Максимальное количество значков уведомлений</string>
|
||||
<string name="custom_mobile_type_text">Пользовательский текст типа сети</string>
|
||||
<string name="custom_mobile_type_text_switch">Переключатель текста типа сети</string>
|
||||
<string name="downgr">Разрешить понижение</string>
|
||||
<string name="downgr_summary">Разрешить понижение версий приложений.</string>
|
||||
<string name="authcreak">Отключить дайджест проверки</string>
|
||||
<string name="authcreak_summary">Позволяет устанавливать приложения после изменения apk. (игнорирует ошибку дайджеста).</string>
|
||||
<string name="digestCreak">Отключить сравнение подписи</string>
|
||||
<string name="digestCreak_summary">Разрешить повторную установку приложения с изменённой подписью.</string>
|
||||
<string name="UsePreSig">Использование установленных подписей</string>
|
||||
<string name="UsePreSig_summary">Всегда использовать подписи из уже установленных приложений при установке.\nЭто чрезвычайно <b>опасно</b>.\nВключайте только при необходимости!</string>
|
||||
<string name="enhancedMode">Улучшенный режим</string>
|
||||
<string name="enhancedMode_summary">Пройдите проверку в приложении</string>
|
||||
<string name="rear_display">Индикация задней части (11Ultra)</string>
|
||||
<string name="lock_screen_clock_display_seconds">Часы отображают секунды</string>
|
||||
<string name="sound">Звук</string>
|
||||
<string name="media_volume_steps_switch">Шаги громкости</string>
|
||||
<string name="allow_untrusted_touches">Разрешить нежелательные прикосновения</string>
|
||||
<string name="take_effect_after_reboot">Вступит в силу после перезагрузки</string>
|
||||
<string name="media_volume_steps_summary">Включение может привести к ненормальной прокрутке строки громкости</string>
|
||||
<string name="can_notification_slide_summary">Некоторые уведомления через Mi Push могут не поддерживаться.</string>
|
||||
<string name="screen_hole_location">Расположение выреза на экране</string>
|
||||
<string name="custom_clock_mode">Пользовательский режим часов</string>
|
||||
<string name="custom_clock_format_geek">Формат часов</string>
|
||||
<string name="off">Выкл.</string>
|
||||
<string name="center">Центр</string>
|
||||
<string name="left_or_right">Влево/Вправо</string>
|
||||
<string name="preset">Шаблон</string>
|
||||
<string name="geek">Продвинутый</string>
|
||||
<string name="do_not_clear_app">Предотвращение отключения фоновых приложений</string>
|
||||
<string name="do_not_clear_app_summary">Может привести к увеличению энергопотребления</string>
|
||||
<string name="make_millet_more_aggressive">Сделать Millet более агрессивным</string>
|
||||
<string name="make_millet_more_aggressive_summary">Позволяет Millet замораживать приложения, когда фоновые приложения имеют уведомления, запущенные службы и запущенные процессы.</string>
|
||||
<string name="make_millet_ignore_active">Разрешить Millet замораживать активные приложения</string>
|
||||
<string name="make_millet_ignore_active_summary">Очень агрессивно и может повлиять на работу приложений</string>
|
||||
<string name="pkg_installer">Установщик пакетов</string>
|
||||
<string name="pkg_installer_summary">Отключить проверку количества установок</string>
|
||||
<string name="big_mobile_type_only_show_network_card">Большая иконка типа сети только для активной сим</string>
|
||||
<string name="big_mobile_type_location">Положение большой иконки типа сети</string>
|
||||
<string name="miuihome_recentview_remove_card_animation">Изменение анимации обозначения карты</string>
|
||||
<string name="miuihome_recentview_remove_card_animation_summary">Изменить эффект анимации последней карты удаления задачи</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening">Отключить затемнение обоев</string>
|
||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Отключит эффект видимости обоев от затемнения при запуске и выходе из недавней задачи</string>
|
||||
<string name="miuihome_scroll_icon_name">Бегущая строка имени приложений</string>
|
||||
<string name="miuihome_scroll_icon_name_summary">Длинное имя приложения будет прокручено и отображено в одну строку</string>
|
||||
<string name="miuihome_shortcut_add_small_window">Меню добавления окна</string>
|
||||
<string name="miuihome_shortcut_add_small_window_summary">Нажмите и удерживайте иконку рабочего стола, чтобы добавить быстрое открытое окно</string>
|
||||
<string name="miuihome_shortcut_add_small_window_title">Маленькое окно</string>
|
||||
<string name="click_to_view_use_cases">Нажмите, чтобы просмотреть варианты использования</string>
|
||||
</resources>
|
||||
4
app/src/main/res/values-sr/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
4
app/src/main/res/values-sv/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||
8
app/src/main/res/values-th/strings.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">ประสิทธิภาพ</string>
|
||||
<string name="lock_max_fps">ล็อคค่า FPS สูงสุด</string>
|
||||
<string name="ui">การแสดงผล</string>
|
||||
<string name="delete_on_post_notification">ลบการแสดงผล บนแถบการแจ้งเตือน</string>
|
||||
<!--Status bar icons-->
|
||||
</resources>
|
||||