From 355987fddbd7e0e2ce86bf31a6037e71151d07ab Mon Sep 17 00:00:00 2001 From: Cherret Date: Mon, 7 Apr 2025 20:17:07 +0700 Subject: [PATCH] QS Button --- app/build.gradle.kts | 4 +- app/src/main/AndroidManifest.xml | 10 +++ .../java/com/cherret/zaprett/QSTileService.kt | 65 +++++++++++++++++++ .../cherret/zaprett/ui/screens/HomeScreen.kt | 1 - app/src/main/res/values-ru/strings.xml | 12 +++- app/src/main/res/values/strings.xml | 10 ++- 6 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/cherret/zaprett/QSTileService.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b84c3ff..45f5b84 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "com.cherret.zaprett" minSdk = 30 targetSdk = 35 - versionCode = 6 - versionName = "1.5" + versionCode = 7 + versionName = "1.6" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 75c4e15..67ea2fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,16 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/cherret/zaprett/QSTileService.kt b/app/src/main/java/com/cherret/zaprett/QSTileService.kt new file mode 100644 index 0000000..ac7a85a --- /dev/null +++ b/app/src/main/java/com/cherret/zaprett/QSTileService.kt @@ -0,0 +1,65 @@ +package com.cherret.zaprett + +import android.service.quicksettings.Tile +import android.service.quicksettings.TileService + +class QSTileService: TileService() { + override fun onTileAdded() { + super.onTileAdded() + updateStatus() + } + + override fun onStartListening() { + super.onStartListening() + updateStatus() + } + + override fun onStopListening() { + super.onStopListening() + } + + override fun onClick() { + super.onClick() + if (qsTile.state == Tile.STATE_INACTIVE) { + qsTile.subtitle = getString(R.string.qs_starting) + qsTile.state = Tile.STATE_UNAVAILABLE + qsTile.updateTile() + startService {} + } + else { + qsTile.subtitle = getString(R.string.qs_stopping) + qsTile.state = Tile.STATE_UNAVAILABLE + qsTile.updateTile() + stopService {} + } + updateStatus() + } + + override fun onTileRemoved() { + super.onTileRemoved() + } + + fun updateStatus() { + if (getSharedPreferences("settings", MODE_PRIVATE).getBoolean("use_module", false)) { + getStatus { + if (it) { + qsTile.label = getString(R.string.qs_name) + qsTile.subtitle = getString(R.string.qs_working) + qsTile.state = Tile.STATE_ACTIVE + qsTile.updateTile() + } else { + qsTile.label = getString(R.string.qs_name) + qsTile.subtitle = getString(R.string.qs_not_working) + qsTile.state = Tile.STATE_INACTIVE + qsTile.updateTile() + } + } + } + else { + qsTile.label = getString(R.string.qs_name) + qsTile.subtitle = getString(R.string.qs_not_available) + qsTile.state = Tile.STATE_UNAVAILABLE + qsTile.updateTile() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cherret/zaprett/ui/screens/HomeScreen.kt b/app/src/main/java/com/cherret/zaprett/ui/screens/HomeScreen.kt index 22263eb..d2abdb3 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/screens/HomeScreen.kt @@ -96,7 +96,6 @@ fun HomeScreen() { cardText.value = R.string.status_disabled } } - } } Scaffold( diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 458fd26..30f361c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -12,7 +12,7 @@ Не получилось получить root доступ. Дайте права root для использования модуля Magisk Модуль не установлен Magisk модуль zaprett не найден. Пожалуйста, установите его - Перезагружаем zaprett... + Перезагружаем zaprett… Модуль Magisk отключен! Не получилось выполнить действие Стратегия Состояние zaprett неизвестно. Нажми для обновления @@ -30,12 +30,18 @@ Версия Список изменений Сервис уже запущен. - Запускаем сервис... + Запускаем сервис… Сервис не запущен - Останавливаем сервис... + Останавливаем сервис… Нет разрешения Для правильной работы приложения необходимо разрешение на доступ к хранилищу Показывать полный путь к листу Перезагрузите устройство для вступления изменений в силу Перезапустите zaprett для вступления изменений в силу + Zaprett + Запуск… + Остановка… + Не доступно + Работает + Не работает \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f1938ff..ff62d13 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,7 +12,7 @@ Couldn\'t get root access. Give root access to use the Magisk module Module is not installed Magisk module zaprett wasn\'t found. Please install it - Reloading zaprett... + Reloading zaprett… Magisk module disabled! Cant\'t execute action Strategy Status of zaprett is unknown. Tap to update @@ -30,7 +30,7 @@ Version Changelog Service already started. - Starting service... + Starting service… Service is not launched Stopping service... No permission @@ -38,4 +38,10 @@ Show full list\'s path Reboot your device for the changes to take effect Restart zaprett service for the changes to take effects + Zaprett + Starting… + Stopping… + Not available + Working + Not working \ No newline at end of file