Compare commits

...

6 Commits

Author SHA1 Message Date
Zane Schepke d3d70ab2e7 build: change from debug signing 2025-04-17 05:04:29 -04:00
Zane Schepke 9b2d4a3fb5 build: fix release building 2025-04-17 05:02:43 -04:00
Zane Schepke d7741c37c5 chore: bump version, release notes 2025-04-17 04:43:31 -04:00
Zane Schepke 6046e4131f fix: android tv sleep restore
#606
2025-04-17 04:38:15 -04:00
Zane Schepke 4b2d2d20db fix: split tunnel search and select
closes #696
2025-04-17 04:28:20 -04:00
Zane Schepke a09501aaf5 feat(lang): weblate langauge updates (#701)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: solokot <solokot@gmail.com>
Co-authored-by: Kachelkaiser <kachelkaiser@htpst.de>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: mak7im01 <mak7im02@gmail.com>
Co-authored-by: nware-lab <nware.labs@gmail.com>
Co-authored-by: 翻譯得真好下次別翻了 <x86_64-pc-linux-gnu@proton.me>
Co-authored-by: Faisal Gull <mail.faisalrehman.345@gmail.com>
2025-04-17 04:08:19 -04:00
26 changed files with 182 additions and 49 deletions
+1 -1
View File
@@ -171,7 +171,7 @@
android:exported="false"
android:directBootAware="true">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
@@ -8,6 +8,7 @@ import com.zaneschepke.wireguardautotunnel.core.tunnel.TunnelManager
import com.zaneschepke.wireguardautotunnel.di.ApplicationScope
import com.zaneschepke.wireguardautotunnel.di.IoDispatcher
import com.zaneschepke.wireguardautotunnel.domain.repository.AppDataRepository
import com.zaneschepke.wireguardautotunnel.util.extensions.isRunningOnTv
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
@@ -29,6 +30,8 @@ class RestartReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Timber.d("RestartReceiver triggered with action: ${intent.action}")
// screen on for Android TV only to help with sleep shutdowns
if (intent.action == Intent.ACTION_SCREEN_ON && !context.isRunningOnTv()) return
serviceManager.updateTunnelTile()
serviceManager.updateAutoTunnelTile()
applicationScope.launch(ioDispatcher) {
@@ -35,7 +35,7 @@ class RepositoryModule {
AppDatabase::class.java,
context.getString(R.string.db_name),
)
.fallbackToDestructiveMigration()
.fallbackToDestructiveMigration(true)
.addCallback(DatabaseCallback())
.build()
}
@@ -4,12 +4,12 @@ import com.wireguard.android.backend.Tunnel
import com.wireguard.config.Config
import com.zaneschepke.wireguardautotunnel.util.Constants
import com.zaneschepke.wireguardautotunnel.util.extensions.*
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.io.InputStream
import java.net.InetAddress
import java.nio.charset.StandardCharsets
import kotlin.coroutines.CoroutineContext
import kotlinx.coroutines.withContext
import timber.log.Timber
data class TunnelConf(
val id: Int = 0,
@@ -92,9 +92,7 @@ data class TunnelConf(
isEthernetTunnel,
isIpv4Preferred,
)
.apply {
stateChangeCallback = this@TunnelConf.stateChangeCallback
}
.apply { stateChangeCallback = this@TunnelConf.stateChangeCallback }
}
fun toAmConfig(): org.amnezia.awg.config.Config {
@@ -50,6 +50,7 @@ constructor(
tunnelId?.let { loadInitialState(it) }
}
// TODO improve this loading experience
private fun loadInitialState(tunnelId: Int) =
viewModelScope.launch {
val tunnel = tunnelRepository.getById(tunnelId) ?: return@launch
@@ -108,6 +109,7 @@ constructor(
loading = false,
tunnelConf = tunnel,
tunneledApps = tunneledApps,
queriedApps = tunneledApps,
splitOption = splitOption,
)
}
@@ -116,14 +118,14 @@ constructor(
fun onSearchQuery(query: String) {
val filteredApps =
if (query.isBlank()) {
allTunneledApps
_uiState.value.tunneledApps
} else {
allTunneledApps.filter {
_uiState.value.tunneledApps.filter {
it.first.name.contains(query, ignoreCase = true) ||
it.first.`package`.contains(query, ignoreCase = true)
}
}
_uiState.update { it.copy(searchQuery = query, tunneledApps = filteredApps) }
_uiState.update { it.copy(searchQuery = query, queriedApps = filteredApps) }
}
fun updateSplitOption(newOption: SplitOption) {
@@ -136,7 +138,12 @@ constructor(
currentState.tunneledApps.map { (app, selected) ->
if (app.`package` == packageName) Pair(app, !selected) else Pair(app, selected)
}
_uiState.value = currentState.copy(tunneledApps = updatedApps)
val updatedQueryApps =
currentState.queriedApps.map { (app, selected) ->
if (app.`package` == packageName) Pair(app, !selected) else Pair(app, selected)
}
_uiState.value =
currentState.copy(tunneledApps = updatedApps, queriedApps = updatedQueryApps)
}
fun saveChanges() =
@@ -29,7 +29,7 @@ fun SplitTunnelContent(
)
if (uiState.splitOption != SplitOption.ALL) {
AppListSection(
apps = uiState.tunneledApps,
apps = uiState.queriedApps,
onAppSelectionToggle = onAppSelectionToggle,
onQueryChange = onQueryChange,
uiState.searchQuery,
@@ -6,6 +6,7 @@ data class SplitTunnelUiState(
val loading: Boolean = true,
val tunnelConf: TunnelConf? = null,
val tunneledApps: SplitTunnelApps = emptyList(),
val queriedApps: SplitTunnelApps = emptyList(),
val splitOption: SplitOption = SplitOption.ALL,
val searchQuery: String = "",
val success: Boolean? = null,
@@ -78,6 +78,7 @@ fun WireguardAutoTunnelTheme(theme: Theme = Theme.AUTOMATIC, content: @Composabl
val view = LocalView.current
if (!view.isInEditMode) {
@Suppress("DEPRECATION")
SideEffect {
val window = (view.context as Activity).window
WindowCompat.setDecorFitsSystemWindows(window, false)
+1
View File
@@ -226,4 +226,5 @@
<string name="camera_permission_required">Kameraberechtigung erforderlich</string>
<string name="wifi_name_template">Aktiv: %1$s</string>
<string name="delete">Löschen</string>
<string name="nothing_here_yet">Noch nix hier!</string>
</resources>
+21
View File
@@ -129,4 +129,25 @@
<string name="language">Taal</string>
<string name="automatic">Automatisch</string>
<string name="notifications">Meldingen</string>
<string name="quick_actions">Snelle acties</string>
<string name="ethernet_tunnel">Ethernet tunnel</string>
<string name="set_ethernet_tunnel">Instellen als ethernet tunnel</string>
<string name="allow_lan_traffic">LAN trafiek toestaan</string>
<string name="vpn_channel_description">Een kanaal voor VPN status notificaties</string>
<string name="stop">stop</string>
<string name="splt_tunneling">Gesplitste tunneling</string>
<string name="tunnel_specific_settings">Tunnel specifieke instellingen</string>
<string name="advanced_settings">Geavanceerde instellingen</string>
<string name="hide_amnezia_properties">Amnezia eigenschappen verbergen</string>
<string name="hide_scripts">Scripts verbergen</string>
<string name="remove_amnezia_compatibility">Amnezia compatibiliteit verwijderen</string>
<string name="add_from_clipboard">Toevoegen van klembord</string>
<string name="show_scripts">Toon scripts</string>
<string name="auto_tunnel_channel_name">Auto-tunnel Notificatie Kanaal</string>
<string name="enable_local_logging">lokale logging inschakelen</string>
<string name="auto_tunnel_channel_description">Een kanaal voor auto-tunnel status notificaties</string>
<string name="enable_amnezia_compatibility">Amnezia compatibiliteit inschakelen</string>
<string name="add_from_url">Toevoegen met link</string>
<string name="stop_on_no_internet">Stoppen wanneer geen internet</string>
<string name="stop_on_internet_loss">Stop tunnel bij verlies van internet</string>
</resources>
+3 -2
View File
@@ -194,7 +194,7 @@
<string name="add_from_url">Dodaj z adresu URL</string>
<string name="export_failed">Eksport nie powiódł się</string>
<string name="inactive">Nieaktywny</string>
<string name="wifi_name_template">Aktywna: %1$s</string>
<string name="wifi_name_template">Aktywny: %1$s</string>
<string name="delete_logs">Usuń i wyczyść dzienniki</string>
<string name="join_telegram">Dołącz do społeczności Telegramu</string>
<string name="error_download_failed">Nie udało się pobrać konfiguracji</string>
@@ -211,7 +211,7 @@
<string name="export_tunnels_wireguard">Eksportuj tunele jako WireGuard</string>
<string name="delete">Usuń</string>
<string name="camera_permission_required">Wymagane pozwolenie na dostęp do aparatu</string>
<string name="tunnel_error_template">Tunel nie powiódł się z powodu: %1$s</string>
<string name="tunnel_error_template">Tunel nie powiódł się z powodu: %1$s</string>
<string name="remote_key_template">Klucz: %1$s</string>
<string name="config_error">błąd konfiguracji</string>
<string name="dropdown">Rozwijane</string>
@@ -227,4 +227,5 @@
<string name="export_tunnels_amnezia">Eksportuj tunele jako Amnezia</string>
<string name="invalid_config_error">błąd nieprawidłowej konfiguracji</string>
<string name="dns_resolve_error">błąd rozwiązywania DNS</string>
<string name="nothing_here_yet">Jeszcze nic tu nie ma!</string>
</resources>
+1
View File
@@ -226,4 +226,5 @@
<string name="export_tunnels_wireguard">Экспорт туннелей как WireGuard</string>
<string name="enable_remote_app_control">Удалённое управление приложением</string>
<string name="error_download_failed">Невозможно скачать конфигурацию</string>
<string name="nothing_here_yet">Здесь пока ничего нет!</string>
</resources>
+42
View File
@@ -185,4 +185,46 @@
<string name="vpn_channel_description">VPN ریاستی اطلاعات کے لیے ایک چینل</string>
<string name="hide_scripts">اسکرپٹ چھپائیں۔</string>
<string name="add_from_clipboard">کلپ بورڈ سے شامل کریں۔</string>
<string name="remote_key_template">کلید: %1$s</string>
<string name="enable_remote_app_control">ریموٹ ایپ کنٹرول کو فعال کریں۔</string>
<string name="kernel_name_error">کرنل ماڈیول نام کی خرابی۔</string>
<string name="app_permission_title">ڈبلیو جی ٹنل کنٹرول برج</string>
<string name="app_permission_description">سرنگوں اور خودکار سرنگ کی خصوصیات کو کنٹرول کریں۔</string>
<string name="add_from_url">یو آر ایل سے شامل کریں۔</string>
<string name="enter_config_url">ترتیب یو آر ایل درج کریں۔</string>
<string name="error_download_failed">کنفیگریشن ڈاؤن لوڈ کرنے میں ناکام</string>
<string name="save">محفوظ کریں۔</string>
<string name="search">تلاش کریں۔</string>
<string name="select">منتخب کریں۔</string>
<string name="join_telegram">ٹیلیگرام کمیونٹی میں شامل ہوں۔</string>
<string name="matrix_url">https://matrix.to/#/#wg-tunnel-space:matrix.org</string>
<string name="dropdown">ڈراپ ڈاؤن</string>
<string name="add_tunnel">سرنگ شامل کریں۔</string>
<string name="export_logs">ذخیرہ شدہ نوشتہ جات برآمد کریں۔</string>
<string name="copy">نقل</string>
<string name="info">معلومات</string>
<string name="export_tunnels_wireguard">وائر گارڈ کے بطور سرنگیں برآمد کریں۔</string>
<string name="delete">حذف کریں۔</string>
<string name="camera_permission_required">کیمرے کی اجازت درکار ہے۔</string>
<string name="export_failed">ایکسپورٹ ناکام ہو گیا۔</string>
<string name="tunnel_error_template">سرنگ اس کے ساتھ ناکام ہوگئی: %1$s</string>
<string name="wifi_name_template">فعال: %1$s</string>
<string name="config_error">کنفگریشن کی خرابی</string>
<string name="dns_resolve_error">ڈی این ایس ریزولوشن کی خرابی۔</string>
<string name="invalid_config_error">غلط_تشکیل_کی_خرابی۔</string>
<string name="auth_error">غیر مجاز غلطی</string>
<string name="service_running_error">سروس نہیں چل رہی خرابی۔</string>
<string name="inactive">غیر فعال</string>
<string name="active">فعال</string>
<string name="status">حیثیت</string>
<string name="bio_not_supported">بایومیٹرکس تعاون یافتہ نہیں ہیں۔</string>
<string name="bio_not_created">بائیو میٹرکس نہیں بنائے گئے۔</string>
<string name="bio_update_required">بائیو میٹرک سیکیورٹی اپ ڈیٹ درکار ہے۔</string>
<string name="tunnel_starting">سرنگ شروع ہو رہی ہے۔</string>
<string name="nothing_here_yet">ابھی تک یہاں کچھ نہیں!</string>
<string name="join_matrix">میٹرکس کمیونٹی میں شامل ہوں۔</string>
<string name="delete_logs">نوشتہ جات کو حذف اور صاف کریں۔</string>
<string name="export_tunnels_amnezia">ایمنیزیا کے طور پر سرنگیں برآمد کریں۔</string>
<string name="bio_subtitle">اپنی بائیو میٹرک اسناد کا استعمال کرتے ہوئے لاگ ان کریں۔</string>
<string name="bio_auth_title">بائیو میٹرک تصدیق</string>
</resources>
@@ -226,4 +226,5 @@
<string name="bio_subtitle">使用你的生物特征凭据登录</string>
<string name="export_logs">导出已保存的日志</string>
<string name="bio_not_supported">生物特征不受支持</string>
<string name="nothing_here_yet">此处还什么都没有!</string>
</resources>
+28 -3
View File
@@ -73,7 +73,7 @@
<string name="automatic">自動</string>
<string name="add_wifi_name">新增WiFi SSID</string>
<string name="allow_lan_traffic">允許 LAN 流量</string>
<string name="stop_on_no_internet">沒有連上網路時停</string>
<string name="stop_on_no_internet">沒有連上網路時停</string>
<string name="stop_on_internet_loss">網路連線斷開時停止隧道</string>
<string name="add_from_clipboard">從剪貼簿新增</string>
<string name="stop">停止</string>
@@ -84,10 +84,10 @@
<string name="error_file_format">無效的隧道組態檔案格式</string>
<string name="endpoint">端點</string>
<string name="location_services_not_detected">未啟用定位服務</string>
<string name="junk_packet_maximum_size">最大無效封包</string>
<string name="junk_packet_maximum_size">無效封包最大大小</string>
<string name="no_tunnels">還沒有新增任何隧道!</string>
<string name="allowed_ips">允許的 IP</string>
<string name="junk_packet_minimum_size">最小無效封包</string>
<string name="junk_packet_minimum_size">無效封包最小大小</string>
<string name="error_no_file_explorer">未安裝任何檔案管理器</string>
<string name="unsure_how">如果您不確定如何進行</string>
<string name="see_the">請參閱</string>
@@ -100,4 +100,29 @@
<string name="vpn_off">VPN 已關閉</string>
<string name="error_root_denied">無法取得 root 權限</string>
<string name="root_accepted">已取得 root 權限</string>
<string name="enable_remote_app_control">啟用遠端應用程式控制</string>
<string name="join_telegram">加入 Telegram 社群</string>
<string name="add_from_url">從 URL 新增</string>
<string name="join_matrix">加入 Matrix 社群</string>
<string name="copy">複製</string>
<string name="base64_key">base64 格式</string>
<string name="persistent_keepalive">保持連線</string>
<string name="email_subject">WG Tunnel 支援</string>
<string name="all">全部</string>
<string name="server_ipv4">IPv4 主機名稱解析</string>
<string name="search">搜尋</string>
<string name="save">儲存</string>
<string name="prefer_ipv4">偏好 IPv4 連線</string>
<string name="select">選擇</string>
<string name="info">資訊</string>
<string name="delete">刪除</string>
<string name="export_failed">匯出失敗</string>
<string name="add_tunnel">新增隧道</string>
<string name="camera_permission_required">需要相機權限</string>
<string name="status">狀態</string>
<string name="dns_resolve_error">dns 解析錯誤</string>
<string name="kernel_name_error">核心模組名稱錯誤</string>
<string name="nothing_here_yet">這裡目前還沒有任何東西!</string>
<string name="remove_amnezia_compatibility">移除 Amnezia 相容性</string>
<string name="enable_amnezia_compatibility">啟用 Amnezia 相容性</string>
</resources>
+8 -8
View File
@@ -4,12 +4,15 @@
<string name="app_permission_description">Control tunnels and auto-tunnel features.</string>
<string name="vpn_channel_id" translatable="false">VPN Channel</string>
<string name="vpn_channel_name">VPN Notification Channel</string>
<string name="github_url" translatable="false">https://github.com/zaneschepke/wgtunnel/issues</string>
<string name="docs_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/overview.html</string>
<string name="privacy_policy_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/privacypolicy.html</string>
<string name="docs_wildcards" translatable="false" >https://zaneschepke.com/wgtunnel-docs/features.html#wildcard-wi-fi-name-support</string>
<string name="github_url" translatable="false">https://github.com/wgtunnel/wgtunnel/issues</string>
<string name="docs_url" translatable="false">https://wgtunnel.com/docs/</string>
<string name="getting_started_url" translatable="false">https://wgtunnel.com/docs/getting-started</string>
<string name="privacy_policy_url" translatable="false">https://wgtunnel.com/docs/privacy-policy/</string>
<string name="docs_wildcards" translatable="false" >https://wgtunnel.com/docs/auto-tunneling/#use-name-wildcards</string>
<string name="donate_url" translatable="false">https://zaneschepke.com/donate/</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="matrix_url" translatable="false">https://matrix.to/#/#wg-tunnel-space:matrix.org</string>
<string name="telegram_url" translatable="false">https://t.me/wgtunnel</string>
<string name="error_file_extension">File is not a .conf or .zip</string>
<string name="turn_off_tunnel">Action requires tunnel off</string>
<string name="no_tunnels">No tunnels added yet!</string>
<string name="tunnels">Tunnels</string>
@@ -107,10 +110,8 @@
<string name="response_packet_magic_header">Response packet magic header</string>
<string name="transport_packet_magic_header">Transport packet magic header</string>
<string name="underload_packet_magic_header">Underload packet magic header</string>
<string name="telegram_url" translatable="false">https://t.me/wgtunnel</string>
<string name="unsure_how">if you are unsure how to proceed</string>
<string name="see_the">See the</string>
<string name="getting_started_url" translatable="false">https://zaneschepke.com/wgtunnel-docs/getting-started.html</string>
<string name="getting_started_guide">getting started guide</string>
<string name="error_file_format">Invalid tunnel config format</string>
<string name="restart_at_boot">Restart on boot</string>
@@ -205,7 +206,6 @@
<string name="select">Select</string>
<string name="join_telegram">Join Telegram community</string>
<string name="join_matrix">Join Matrix community</string>
<string name="matrix_url">https://matrix.to/#/#wg-tunnel-space:matrix.org</string>
<string name="dropdown">Dropdown</string>
<string name="add_tunnel">Add tunnel</string>
<string name="export_logs">Export stored logs</string>
+2 -2
View File
@@ -1,7 +1,7 @@
object Constants {
const val VERSION_NAME = "3.8.2"
const val VERSION_NAME = "3.8.3"
const val JVM_TARGET = "17"
const val VERSION_CODE = 38200
const val VERSION_CODE = 38300
const val TARGET_SDK = 35
const val MIN_SDK = 26
const val APP_ID = "com.zaneschepke.wireguardautotunnel"
@@ -0,0 +1,6 @@
What's new:
- Fix DNS resolution issues
- Improve Android TV restore on sleep
- Fix split tunnel search bug
- Localization updates
- Update docs links for new app website
@@ -0,0 +1,6 @@
نیا کیا ہے:
- کرنل موڈ کے لیے متعدد ٹنل سپورٹ
- WG ڈیفالٹ DNS Ipv4 ترجیح کے لیے اوور رائیڈ
- قابل اعتماد سپورٹ پر کِل سوئچ کو روکیں۔
- آٹو ٹنل کے ذریعہ مقام کے استفسار کو محدود کریں۔
- مختلف بگ کی اصلاحات اور بہتری
@@ -0,0 +1,5 @@
نیا کیا ہے:
- جامد IPv6 پیر اینڈ پوائنٹ بگ فکس
- متحرک شارٹ کٹ بگ فکس
- لوکلائزیشن
- پیئر بگ فکس شامل کریں۔
@@ -0,0 +1,5 @@
نیا کیا ہے:
- آٹو ٹنل ریگریشن فکس
- ٹائل کی مطابقت پذیری میں بہتری
- وائی فائی نام کے استفسار کو بہتر بنائیں
- نیٹ ورک کی نگرانی کی اجازت کی جانچ کو بہتر بنائیں۔
@@ -0,0 +1,8 @@
نیا کیا ہے:
- UI اپ ڈیٹ
- URL کے ذریعے سرنگ شامل کریں۔
- VPN کِل سوئچ بگ فکسز
- ٹنل سروس کریش فکسز
- پنگ اور تشکیل کی تبدیلی دوبارہ شروع کرنے کی اصلاحات
- UI میں نیٹ ورک کی معلومات
- مختلف دیگر اصلاحات اور بہتری
@@ -0,0 +1,6 @@
نیا کیا ہے:
- نیا ریموٹ ایپ انٹیگریشن
- فعال وائی فائی کا نام کلپ بورڈ میں کاپی کریں۔
- ٹنل شٹ ڈاؤن بگ کو درست کریں۔
- فون DNS کو ترجیح دیتے ہوئے ڈی این ایس ڈیفالٹ سرور بگ کو درست کریں۔
- Ipv6 جامد ہم مرتبہ میزبان کنفیگرس کے لیے درست کریں۔
@@ -1,14 +1,14 @@
Features
خصوصیات
- Add tunnels via .conf file, zip, manual entry, or QR code
- Auto connect to VPN based on Wi-Fi SSID, ethernet, or mobile data
- Split tunneling by application with search
- WireGuard support for kernel and userspace modes
- Amnezia support for userspace mode for DPI/censorship protection
- Always-On VPN support
- Export Amnezia and WireGuard tunnels to zip
- Quick tile support for VPN toggling
- Static shortcuts support for primary tunnel for automation integration
- Intent automation support for all tunnels
- Automatic service restart after reboot
- Battery preservation measures
- .conf فائل، زپ، دستی اندراج، یا QR کوڈ کے ذریعے سرنگیں شامل کریں
- Wi-Fi SSID، ایتھرنیٹ، یا موبائل ڈیٹا کی بنیاد پر VPN سے خودکار جڑیں۔
- تلاش کے ساتھ ایپلی کیشن کے ذریعہ سرنگ کو تقسیم کریں۔
- کرنل اور یوزر اسپیس موڈز کے لیے وائر گارڈ سپورٹ
- ڈی پی آئی/سینسرشپ کے تحفظ کے لیے یوزر اسپیس موڈ کے لیے ایمنیزیا سپورٹ
- ہمیشہ آن VPN سپورٹ
- ایمنیزیا اور وائر گارڈ سرنگوں کو زپ میں ایکسپورٹ کریں۔
- VPN ٹوگلنگ کے لیے فوری ٹائل سپورٹ
- آٹومیشن انضمام کے لیے بنیادی سرنگ کے لیے جامد شارٹ کٹ سپورٹ
- تمام سرنگوں کے لئے ارادہ آٹومیشن سپورٹ
- ریبوٹ کے بعد خودکار سروس دوبارہ شروع
- بیٹری کے تحفظ کے اقدامات
@@ -57,6 +57,7 @@ class LogcatManager(pid: Int, logDir: String, maxFileSize: Long, maxFolderSize:
isStarted = true
}
@OptIn(ExperimentalCoroutinesApi::class)
override fun stop() {
if (!isStarted) return
logJob?.cancel()
@@ -53,10 +53,9 @@ class AndroidNetworkMonitor(
data class TransportState(val connected: Boolean = false)
private val wifiFlow: Flow<WifiState> = callbackFlow {
@Suppress("DEPRECATION")
suspend fun getWifiSsid(): String? {
return withContext(ioDispatcher) {
return withContext(ioDispatcher) {
if (useRootShellCallback()) {
rootShell.getCurrentWifiName()
} else {
@@ -69,7 +68,6 @@ class AndroidNetworkMonitor(
}
}
}
}
suspend fun handleUnknownWifi() {
@@ -95,9 +93,7 @@ class AndroidNetworkMonitor(
Timber.d(
"Received update: Precise and all-the-time location permissions are enabled"
)
launch {
handleUnknownWifi()
}
launch { handleUnknownWifi() }
}
}
}
@@ -114,9 +110,7 @@ class AndroidNetworkMonitor(
Timber.d(
"Location Services state changed. Enabled: $isLocationServicesEnabled, GPS: $isGpsEnabled, Network: $isNetworkEnabled"
)
if (isLocationServicesEnabled) launch {
handleUnknownWifi()
}
if (isLocationServicesEnabled) launch { handleUnknownWifi() }
}
}
}