mirror of
https://github.com/amnezia-vpn/amneziawg-android.git
synced 2026-07-03 14:05:13 +02:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e33d9e56b | |||
| 9fae327315 | |||
| a6f5eb0dd2 | |||
| c3c4cd05b1 | |||
| 58c19385a3 | |||
| 354e1c0ed9 | |||
| 02b9677a9c | |||
| 82d26e61da | |||
| a113770868 | |||
| b734f44200 |
@@ -5,6 +5,7 @@
|
||||
cmake_minimum_required(VERSION 3.4.1)
|
||||
project("WireGuard")
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
|
||||
add_link_options(LINKER:--build-id=none)
|
||||
|
||||
add_executable(libwg-quick.so wireguard-tools/src/wg-quick/android.c ndk-compat/compat.c)
|
||||
target_compile_options(libwg-quick.so PUBLIC -O3 -std=gnu11 -Wall -include ${CMAKE_CURRENT_SOURCE_DIR}/ndk-compat/compat.h -DWG_PACKAGE_NAME=\"${ANDROID_PACKAGE_NAME}\")
|
||||
|
||||
@@ -12,9 +12,10 @@ NDK_GO_ARCH_MAP_arm64 := arm64
|
||||
NDK_GO_ARCH_MAP_mips := mipsx
|
||||
NDK_GO_ARCH_MAP_mips64 := mips64x
|
||||
|
||||
comma := ,
|
||||
CLANG_FLAGS := --target=$(TARGET) --sysroot=$(SYSROOT)
|
||||
export CGO_CFLAGS := $(CLANG_FLAGS) $(subst -mthumb,-marm,$(CFLAGS))
|
||||
export CGO_LDFLAGS := $(CLANG_FLAGS) $(LDFLAGS) -Wl,-soname=libwg-go.so
|
||||
export CGO_LDFLAGS := $(CLANG_FLAGS) $(patsubst -Wl$(comma)--build-id=%,-Wl$(comma)--build-id=none,$(LDFLAGS)) -Wl,-soname=libwg-go.so
|
||||
export GOARCH := $(NDK_GO_ARCH_MAP_$(ANDROID_ARCH_NAME))
|
||||
export GOOS := android
|
||||
export CGO_ENABLED := 1
|
||||
@@ -46,6 +47,6 @@ $(BUILDDIR)/go-$(GO_VERSION)/.prepared: $(GRADLE_USER_HOME)/caches/golang/$(GO_T
|
||||
|
||||
$(DESTDIR)/libwg-go.so: export PATH := $(BUILDDIR)/go-$(GO_VERSION)/bin/:$(PATH)
|
||||
$(DESTDIR)/libwg-go.so: $(BUILDDIR)/go-$(GO_VERSION)/.prepared go.mod
|
||||
go build -tags linux -ldflags="-X golang.zx2c4.com/wireguard/ipc.socketDirectory=/data/data/$(ANDROID_PACKAGE_NAME)/cache/wireguard" -v -trimpath -o "$@" -buildmode c-shared
|
||||
go build -tags linux -ldflags="-X golang.zx2c4.com/wireguard/ipc.socketDirectory=/data/data/$(ANDROID_PACKAGE_NAME)/cache/wireguard -buildid=" -v -trimpath -o "$@" -buildmode c-shared
|
||||
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
@@ -55,6 +55,10 @@ android {
|
||||
if (keystorePropertiesFile.exists()) signingConfig signingConfigs.release
|
||||
minifyEnabled true
|
||||
proguardFiles "proguard-android-optimize.txt", "proguard-rules.pro"
|
||||
packagingOptions {
|
||||
exclude "DebugProbesKt.bin"
|
||||
exclude "kotlin-tooling-metadata.json"
|
||||
}
|
||||
}
|
||||
debug {
|
||||
applicationIdSuffix ".debug"
|
||||
|
||||
@@ -17,6 +17,8 @@ import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.preferencesDataStoreFile
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import com.google.android.material.color.DynamicColorsOptions
|
||||
import com.wireguard.android.activity.TvMainActivity
|
||||
import com.wireguard.android.backend.Backend
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
@@ -87,7 +89,9 @@ class Application : android.app.Application() {
|
||||
override fun onCreate() {
|
||||
Log.i(TAG, USER_AGENT)
|
||||
super.onCreate()
|
||||
DynamicColors.applyToActivitiesIfAvailable(this)
|
||||
DynamicColors.applyToActivitiesIfAvailable(this,
|
||||
// TODO: Remove this second argument once the TV theme has a proper M3 color palette.
|
||||
DynamicColorsOptions.Builder().setPrecondition { activity, _ -> activity !is TvMainActivity }.build())
|
||||
rootShell = RootShell(applicationContext)
|
||||
toolsInstaller = ToolsInstaller(applicationContext, rootShell)
|
||||
preferencesDataStore = PreferenceDataStoreFactory.create { applicationContext.preferencesDataStoreFile("settings") }
|
||||
@@ -121,27 +125,20 @@ class Application : android.app.Application() {
|
||||
private const val TAG = "WireGuard/Application"
|
||||
private lateinit var weakSelf: WeakReference<Application>
|
||||
|
||||
@JvmStatic
|
||||
fun get(): Application {
|
||||
return weakSelf.get()!!
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
suspend fun getBackend() = get().futureBackend.await()
|
||||
|
||||
@JvmStatic
|
||||
fun getRootShell() = get().rootShell
|
||||
|
||||
@JvmStatic
|
||||
fun getPreferencesDataStore() = get().preferencesDataStore
|
||||
|
||||
@JvmStatic
|
||||
fun getToolsInstaller() = get().toolsInstaller
|
||||
|
||||
@JvmStatic
|
||||
fun getTunnelManager() = get().tunnelManager
|
||||
|
||||
@JvmStatic
|
||||
fun getCoroutineScope() = get().coroutineScope
|
||||
}
|
||||
|
||||
|
||||
@@ -154,6 +154,7 @@ class AppListDialogFragment : DialogFragment() {
|
||||
const val KEY_SELECTED_APPS = "selected_apps"
|
||||
const val KEY_IS_EXCLUDED = "is_excluded"
|
||||
const val REQUEST_SELECTION = "request_selection"
|
||||
|
||||
fun newInstance(selectedApps: ArrayList<String?>?, isExcluded: Boolean): AppListDialogFragment {
|
||||
val extras = Bundle()
|
||||
extras.putStringArrayList(KEY_SELECTED_APPS, selectedApps)
|
||||
|
||||
@@ -70,7 +70,6 @@ class ConfigNamingDialogFragment : DialogFragment() {
|
||||
companion object {
|
||||
private const val KEY_CONFIG_TEXT = "config_text"
|
||||
|
||||
@JvmStatic
|
||||
fun newInstance(configText: String?): ConfigNamingDialogFragment {
|
||||
val extras = Bundle()
|
||||
extras.putString(KEY_CONFIG_TEXT, configText)
|
||||
|
||||
@@ -62,7 +62,7 @@ class TunnelListFragment : BaseFragment() {
|
||||
TunnelImporter.importTunnel(parentFragmentManager, result.text) { showSnackbar(it) }
|
||||
} catch (e: Exception) {
|
||||
val error = ErrorMessages[e]
|
||||
val message = requireContext().getString(R.string.import_error, error)
|
||||
val message = Application.get().resources.getString(R.string.import_error, error)
|
||||
Log.e(TAG, message, e)
|
||||
showSnackbar(message)
|
||||
}
|
||||
@@ -97,6 +97,8 @@ class TunnelListFragment : BaseFragment() {
|
||||
val bottomSheet = AddTunnelsSheet()
|
||||
binding?.apply {
|
||||
createFab.setOnClickListener {
|
||||
if (childFragmentManager.findFragmentByTag("BOTTOM_SHEET") != null)
|
||||
return@setOnClickListener
|
||||
childFragmentManager.setFragmentResultListener(AddTunnelsSheet.REQUEST_KEY_NEW_TUNNEL, viewLifecycleOwner) { _, bundle ->
|
||||
when (bundle.getString(AddTunnelsSheet.REQUEST_METHOD)) {
|
||||
AddTunnelsSheet.REQUEST_CREATE -> {
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
app:state_multiselected="true">
|
||||
<color android:color="?attr/colorMultiselectActiveBackground" />
|
||||
</item>
|
||||
<item
|
||||
android:state_activated="true">
|
||||
<color android:color="?attr/colorControlHighlight" />
|
||||
</item>
|
||||
</selector>
|
||||
</item>
|
||||
<item android:drawable="?attr/selectableItemBackground" />
|
||||
|
||||
@@ -215,7 +215,6 @@
|
||||
<string name="tunnel_create_success">تم إنشاء نفق \"%s\" بنجاح</string>
|
||||
<string name="tunnel_error_already_exists">النفق \"%s\" موجود بالفعل</string>
|
||||
<string name="tunnel_error_invalid_name">إسم غير صالح</string>
|
||||
<string name="tunnel_list_placeholder">إضافة نفق باستخدام الزر الأزرق</string>
|
||||
<string name="tunnel_name">إسم النفق</string>
|
||||
<string name="tunnel_on_error">غير قادر على تشغيل النفق (wgTurnOn أعاد %d)</string>
|
||||
<string name="tunnel_dns_failure">غير قادر على حل اسم مضيف نظام أسماء النطاقات (DNS hostname): \"%s\"</string>
|
||||
|
||||
@@ -204,7 +204,6 @@
|
||||
<string name="tunnel_create_success">El túnel \"%s\" s\'ha creat correctament</string>
|
||||
<string name="tunnel_error_already_exists">El túnel \"%s\" ja existeix</string>
|
||||
<string name="tunnel_error_invalid_name">Nom no vàlid</string>
|
||||
<string name="tunnel_list_placeholder">Afegiu un túnel usant el botó blau</string>
|
||||
<string name="tunnel_name">Nom del túnel</string>
|
||||
<string name="tunnel_on_error">No s\'ha estat capaç d\'activar el túnel (wgTurnOn ha retornat %d)</string>
|
||||
<string name="tunnel_dns_failure">Impossible resoldre el nom del domini \"%s\"</string>
|
||||
|
||||
@@ -216,7 +216,6 @@
|
||||
<string name="tunnel_create_success">Tunnel „%s “ erfolgreich erstellt</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel „%s“ existiert bereits</string>
|
||||
<string name="tunnel_error_invalid_name">Ungültiger Name</string>
|
||||
<string name="tunnel_list_placeholder">Füge einen Tunnel mit der blauen Taste hinzu</string>
|
||||
<string name="tunnel_name">Tunnelname</string>
|
||||
<string name="tunnel_on_error">Tunnel kann nicht eingeschaltet werden (wgTurnOn gab %d zurück)</string>
|
||||
<string name="tunnel_dns_failure">DNS-Hostname kann nicht aufgelöst werden: „%s“</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Túnel creado con éxito “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Túnel “%s” ya existe</string>
|
||||
<string name="tunnel_error_invalid_name">Nombre inválido</string>
|
||||
<string name="tunnel_list_placeholder">Añadir un túnel usando el botón azul</string>
|
||||
<string name="tunnel_name">Nombre del túnel</string>
|
||||
<string name="tunnel_on_error">No se puede activar el túnel (wgTurnOn devolvió %d)</string>
|
||||
<string name="tunnel_dns_failure">No se puede resolver el nombre de host DNS: “%s”</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Tunnel \"%s\" lisatud</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel \"%s\" on juba olemas</string>
|
||||
<string name="tunnel_error_invalid_name">Sobimatu nimi</string>
|
||||
<string name="tunnel_list_placeholder">Lisa tunnel sinise nupu kaudu</string>
|
||||
<string name="tunnel_name">Tunneli nimi</string>
|
||||
<string name="tunnel_on_error">Tunneli sisselülitamine ebaõnnestus (wgTurnOn tagastas %d)</string>
|
||||
<string name="tunnel_dns_failure">Ei saa lahendada DNS hostinime: \"%s\"</string>
|
||||
|
||||
@@ -215,7 +215,6 @@
|
||||
<string name="tunnel_create_success">تونل “%s” با موفقیت ساخته شد</string>
|
||||
<string name="tunnel_error_already_exists">تونل “%s” از قبل وجود دارد</string>
|
||||
<string name="tunnel_error_invalid_name">نام نامعتبر</string>
|
||||
<string name="tunnel_list_placeholder">بهوسیله دکمه آبی یک تونل بیفزایید</string>
|
||||
<string name="tunnel_name">نام تونل</string>
|
||||
<string name="tunnel_on_error">روشن کردن تونل امکان پذیر نیست (wgTurnOn برگشت %d )</string>
|
||||
<string name="tunnel_dns_failure">ناتوان در یافتن DNS نام میزبان: \"%s\"</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Tunnel «%s » créé avec succès</string>
|
||||
<string name="tunnel_error_already_exists">Le tunnel « %s » existe déjà</string>
|
||||
<string name="tunnel_error_invalid_name">Nom invalide</string>
|
||||
<string name="tunnel_list_placeholder">Ajouter un tunnel en utilisant le bouton bleu</string>
|
||||
<string name="tunnel_name">Nom du tunnel</string>
|
||||
<string name="tunnel_on_error">Impossible d\'activer le tunnel (wgTurnOn a retourné %d)</string>
|
||||
<string name="tunnel_dns_failure">Impossible de résoudre le nom d\'hôte DNS: “%s”</string>
|
||||
|
||||
@@ -195,7 +195,6 @@
|
||||
<string name="tunnel_create_success">सफलतापूर्वक बनाया गया टनल “%s”</string>
|
||||
<string name="tunnel_error_already_exists">टनल “%s” पहले से मौजूद है</string>
|
||||
<string name="tunnel_error_invalid_name">गलत नाम</string>
|
||||
<string name="tunnel_list_placeholder">नीले बटन का उपयोग करके एक टनल को जोड़ें</string>
|
||||
<string name="tunnel_name">टनल का नाम</string>
|
||||
<string name="tunnel_on_error">टनल चालू करने में असमर्थ (wgTurnOn लौटा %d)</string>
|
||||
<string name="tunnel_rename_error">टनल का नाम बदलने में असमर्थ: %s</string>
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<string name="tunnel_create_success">सफलतापूर्वक बनाया गया टनल “%s”</string>
|
||||
<string name="tunnel_error_already_exists">टनल “%s” पहले से मौजूद है</string>
|
||||
<string name="tunnel_error_invalid_name">गलत नाम</string>
|
||||
<string name="tunnel_list_placeholder">नीले बटन का उपयोग करके एक टनल को जोड़ें</string>
|
||||
<string name="tunnel_name">टनल का नाम</string>
|
||||
<string name="tunnel_on_error">टनल चालू करने में असमर्थ (wgTurnOn लौटा %d)</string>
|
||||
<string name="tunnel_rename_error">टनल का नाम बदलने में असमर्थ: %s</string>
|
||||
|
||||
@@ -200,7 +200,6 @@
|
||||
<string name="tunnel_create_success">Tunel “%s” Berhasil dibuat</string>
|
||||
<string name="tunnel_error_already_exists">Tunel “%s” sudah ada</string>
|
||||
<string name="tunnel_error_invalid_name">Nama tidak valid</string>
|
||||
<string name="tunnel_list_placeholder">Tambahkan tunel menggunakan tombol +</string>
|
||||
<string name="tunnel_name">Nama tunel</string>
|
||||
<string name="tunnel_on_error">Tidak dapat mengaktifkan tunel (wgTurnOn %d dikembalikan)</string>
|
||||
<string name="tunnel_dns_failure">Tidak bisa mencari nama host DNS \"%s\"</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Tunnel “%s” creato correttamente</string>
|
||||
<string name="tunnel_error_already_exists">Il tunnel “%s” esiste già</string>
|
||||
<string name="tunnel_error_invalid_name">Nome non valido</string>
|
||||
<string name="tunnel_list_placeholder">Aggiungi un tunnel usando il pulsante blu</string>
|
||||
<string name="tunnel_name">Nome tunnel</string>
|
||||
<string name="tunnel_on_error">Impossibile attivare il tunnel (wgTurnOn ha risposto %d)</string>
|
||||
<string name="tunnel_dns_failure">Impossibile risolve il nome di domino: \"%s\"</string>
|
||||
|
||||
@@ -198,7 +198,6 @@
|
||||
<string name="tunnel_create_success">トンネル \"%s\" を作成しました</string>
|
||||
<string name="tunnel_error_already_exists">トンネル “%s” はすでに存在します</string>
|
||||
<string name="tunnel_error_invalid_name">不正な名前</string>
|
||||
<string name="tunnel_list_placeholder">青ボタンでトンネルを追加</string>
|
||||
<string name="tunnel_name">トンネル名</string>
|
||||
<string name="tunnel_on_error">トンネルを有効にできません (wgTurnOn が %d を返却)</string>
|
||||
<string name="tunnel_dns_failure">DNSホスト名を解決できませんでした: “%s”</string>
|
||||
|
||||
@@ -200,7 +200,6 @@
|
||||
<string name="tunnel_create_success">터널 \"%s\"을 성공적으로 생성함</string>
|
||||
<string name="tunnel_error_already_exists">터널 \"%s\"가 이미 존재함</string>
|
||||
<string name="tunnel_error_invalid_name">잘못된 이름</string>
|
||||
<string name="tunnel_list_placeholder">파란 단추를 눌러 터널을 추가하시오</string>
|
||||
<string name="tunnel_name">터널 이름</string>
|
||||
<string name="tunnel_on_error">터널을 켤 수 없음 (wgTurnOn이 %d를 반환함)</string>
|
||||
<string name="tunnel_rename_error">터널 이름을 바꿀 수 없음: %s</string>
|
||||
|
||||
@@ -210,7 +210,6 @@
|
||||
<string name="tunnel_create_success">Opprettet tunnelen «%s»</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel «%s» finnes allerede</string>
|
||||
<string name="tunnel_error_invalid_name">Ugyldig navn</string>
|
||||
<string name="tunnel_list_placeholder">Opprett ny tunnel med den blå knappen</string>
|
||||
<string name="tunnel_name">Tunnelnavn</string>
|
||||
<string name="tunnel_on_error">Kan ikke slå på tunnel (wgTurnOn returnerte %d)</string>
|
||||
<string name="tunnel_rename_error">Kan ikke endre navn på tunnel: %s</string>
|
||||
|
||||
@@ -210,7 +210,6 @@
|
||||
<string name="tunnel_create_success">“%s” ਟਨਲ ਕਾਮਯਾਬੀ ਨਾਲ ਬਣਾਈ</string>
|
||||
<string name="tunnel_error_already_exists">ਟਨਲ “%s” ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ</string>
|
||||
<string name="tunnel_error_invalid_name">ਅਯੋਗ ਨਾਂ</string>
|
||||
<string name="tunnel_list_placeholder">ਨੀਲੇ ਬਟਨ ਨੂੰ ਵਰਤ ਕੇ ਟਨਲ ਬਣਾਓ</string>
|
||||
<string name="tunnel_name">ਟਨਲ ਦਾ ਨਾਂ</string>
|
||||
<string name="tunnel_on_error">ਟਨਲ ਚਾਲੂ ਕਰਨ ਲਈ ਅਸਮਰੱਥ (wgTurnOn ਨੇ %d ਵਾਪਸ ਕੀਤਾ)</string>
|
||||
<string name="tunnel_rename_error">ਟਨਲ ਨਾਂ-ਬਦਲਣ ਲਈ ਅਸਮਰੱਥ: %s</string>
|
||||
|
||||
@@ -239,7 +239,6 @@
|
||||
<string name="tunnel_create_success">Pomyślnie utworzono tunel „%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunel \"%s\" już istnieje</string>
|
||||
<string name="tunnel_error_invalid_name">Nieprawidłowa nazwa</string>
|
||||
<string name="tunnel_list_placeholder">Dodaj tunel za pomocą niebieskiego przycisku</string>
|
||||
<string name="tunnel_name">Nazwa tunelu</string>
|
||||
<string name="tunnel_on_error">Nie można włączyć tunelu (wgTurnOn zwróciło %d)</string>
|
||||
<string name="tunnel_dns_failure">Nie można odnaleźć nazwy hosta DNS: “%s”</string>
|
||||
|
||||
@@ -210,7 +210,6 @@
|
||||
<string name="tunnel_create_success">Túnel criado com sucesso “%s”</string>
|
||||
<string name="tunnel_error_already_exists">O túnel “%s” já existe</string>
|
||||
<string name="tunnel_error_invalid_name">Nome inválido</string>
|
||||
<string name="tunnel_list_placeholder">Adicionar um túnel com o botão azul</string>
|
||||
<string name="tunnel_name">Nome do túnel</string>
|
||||
<string name="tunnel_on_error">Não foi possível ligar o túnel (wgTurnOn retornou %d)</string>
|
||||
<string name="tunnel_rename_error">Não foi possível renomear o túnel: %s</string>
|
||||
|
||||
@@ -226,7 +226,6 @@
|
||||
<string name="tunnel_create_success">Tunelul „%s” a fost creat</string>
|
||||
<string name="tunnel_error_already_exists">Tunelul „%s” există deja</string>
|
||||
<string name="tunnel_error_invalid_name">Nume invalid</string>
|
||||
<string name="tunnel_list_placeholder">Adaugă un tunel folosind butonul albastru</string>
|
||||
<string name="tunnel_name">Numele tunelului</string>
|
||||
<string name="tunnel_on_error">Tunelul nu poate fi pornit (wgTurnOn a returnat %d)</string>
|
||||
<string name="tunnel_dns_failure">Nu se poate rezolva numele gazdei DNS: „%s”</string>
|
||||
|
||||
@@ -239,7 +239,6 @@
|
||||
<string name="tunnel_create_success">Успешно создан туннель “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Туннель “%s” уже существует</string>
|
||||
<string name="tunnel_error_invalid_name">Неправильное имя</string>
|
||||
<string name="tunnel_list_placeholder">Добавьте туннель с помощью синей кнопки</string>
|
||||
<string name="tunnel_name">Название туннеля</string>
|
||||
<string name="tunnel_on_error">Не удалось включить туннель (wgTurnOn вернул %d)</string>
|
||||
<string name="tunnel_dns_failure">Не удалось определить DNS имя: “%s”</string>
|
||||
|
||||
@@ -179,7 +179,6 @@
|
||||
<string name="tunnel_create_success">උමග \"%s\" සාර්ථකව නිර්මාණය කරන ලදී</string>
|
||||
<string name="tunnel_error_already_exists">උමං \"%s\" දැනටමත් පවතී</string>
|
||||
<string name="tunnel_error_invalid_name">වලංගු නොවන නමකි</string>
|
||||
<string name="tunnel_list_placeholder">නිල් බොත්තම භාවිතයෙන් උමගක් එක් කරන්න</string>
|
||||
<string name="tunnel_name">උමං නම</string>
|
||||
<string name="tunnel_on_error">උමග ක්රියාත්මක කළ නොහැක (wgTurnOn %dආපසු ලබා දෙන ලදී)</string>
|
||||
<string name="tunnel_dns_failure">DNS සත්කාරක නාමය විසඳිය නොහැක: \"%s\"</string>
|
||||
|
||||
@@ -138,7 +138,6 @@
|
||||
<string name="tunnel_create_success">Úspešne vytvorený tunel “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunel “%s” už existuje</string>
|
||||
<string name="tunnel_error_invalid_name">Neplatný názov</string>
|
||||
<string name="tunnel_list_placeholder">Pridajte tunel pomocou modrého tlačidla</string>
|
||||
<string name="tunnel_name">Meno tunelu</string>
|
||||
<string name="tunnel_rename_error">Nepodarilo sa premenovať tunel: %s</string>
|
||||
<string name="tunnel_rename_success">Úspešne premenovaný tunel na “%s”</string>
|
||||
|
||||
@@ -237,7 +237,6 @@
|
||||
<string name="tunnel_create_success">Tunel „%s“ uspešno ustvarjen</string>
|
||||
<string name="tunnel_error_already_exists">Tunel „%s“ že obstaja</string>
|
||||
<string name="tunnel_error_invalid_name">Neveljavno ime</string>
|
||||
<string name="tunnel_list_placeholder">Dodaj tunel s klikom na modri gumb</string>
|
||||
<string name="tunnel_name">Ime tunela</string>
|
||||
<string name="tunnel_on_error">Tunela ni bilo mogoče vključiti (wgTurnOn je vrnil %d)</string>
|
||||
<string name="tunnel_dns_failure">Imena DNS gostitelja ni bilo mogoče razrešiti: \"%s\"</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Lyckades skapa tunnel “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel ”%s” finns redan</string>
|
||||
<string name="tunnel_error_invalid_name">Ogiltigt namn</string>
|
||||
<string name="tunnel_list_placeholder">Lägg till en tunnel via blåa knappen</string>
|
||||
<string name="tunnel_name">Tunnelns namn</string>
|
||||
<string name="tunnel_on_error">Kunde inte aktivera tunneln (wgTurnOn returnerade %d)</string>
|
||||
<string name="tunnel_dns_failure">Det går inte att lösa DNS-värdnamn: ”%s”</string>
|
||||
|
||||
@@ -213,7 +213,6 @@
|
||||
<string name="tunnel_create_success">Tünel başarıyla oluşturuldu “%s”</string>
|
||||
<string name="tunnel_error_already_exists">“%s” tüneli zaten mevcut</string>
|
||||
<string name="tunnel_error_invalid_name">Geçersiz isim</string>
|
||||
<string name="tunnel_list_placeholder">Mavi düğmeyi kullanarak bir tünel ekleyin</string>
|
||||
<string name="tunnel_name">Tünel İsmi</string>
|
||||
<string name="tunnel_on_error">Tünel aktif edilemiyor (wgTornOn döndürdü: %d)</string>
|
||||
<string name="tunnel_dns_failure">DNS adı çözülemedi: \"%s\"</string>
|
||||
|
||||
@@ -239,7 +239,6 @@
|
||||
<string name="tunnel_create_success">Тунель успішно створено “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Тунель \"%s\" вже існує</string>
|
||||
<string name="tunnel_error_invalid_name">Неприпустиме ім\'я</string>
|
||||
<string name="tunnel_list_placeholder">Додайте тунель за допомогою синьої кнопки</string>
|
||||
<string name="tunnel_name">Назва тунелю</string>
|
||||
<string name="tunnel_on_error">Неможливо ввімкнути тунель (wgTurnon returned %d)</string>
|
||||
<string name="tunnel_dns_failure">Не вдалося знайти DNS хост: “%s</string>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<style name="AppTheme" parent="AppThemeBase">
|
||||
<item name="android:statusBarColor">?android:colorBackground</item>
|
||||
<item name="android:windowLightStatusBar">@bool/light_status_bar</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<style name="AppTheme" parent="AppThemeBase">
|
||||
<item name="android:statusBarColor">?android:colorBackground</item>
|
||||
<item name="android:windowLightStatusBar">@bool/light_status_bar</item>
|
||||
<item name="android:navigationBarColor">?android:colorBackground</item>
|
||||
<item name="android:windowLightNavigationBar">@bool/light_navigation_bar</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -200,7 +200,6 @@
|
||||
<string name="tunnel_create_success">成功创建隧道 “%s”</string>
|
||||
<string name="tunnel_error_already_exists">名称 “%s” 已存在</string>
|
||||
<string name="tunnel_error_invalid_name">名称无效</string>
|
||||
<string name="tunnel_list_placeholder">点击下方按钮添加隧道</string>
|
||||
<string name="tunnel_name">隧道名称</string>
|
||||
<string name="tunnel_on_error">无法开启隧道(wgTurnOn returned %d)</string>
|
||||
<string name="tunnel_dns_failure">无法解析 DNS 主机名:“%s”</string>
|
||||
|
||||
@@ -200,7 +200,6 @@
|
||||
<string name="tunnel_create_success">成功建立通道 \"%s\"</string>
|
||||
<string name="tunnel_error_already_exists">通道 \"%s\" 已經存在</string>
|
||||
<string name="tunnel_error_invalid_name">無效的名稱</string>
|
||||
<string name="tunnel_list_placeholder">使用藍色按鈕添加通道</string>
|
||||
<string name="tunnel_name">通道名稱</string>
|
||||
<string name="tunnel_on_error">無法開啟通道 (wgTurnOn 回傳值: %d)</string>
|
||||
<string name="tunnel_dns_failure">無法解析 DNS 主機名稱: \"%s\"</string>
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
<string name="tunnel_create_success">Successfully created tunnel “%s”</string>
|
||||
<string name="tunnel_error_already_exists">Tunnel “%s” already exists</string>
|
||||
<string name="tunnel_error_invalid_name">Invalid name</string>
|
||||
<string name="tunnel_list_placeholder">Add a tunnel using the blue button</string>
|
||||
<string name="tunnel_list_placeholder">Add a tunnel using the button below</string>
|
||||
<string name="tunnel_name">Tunnel Name</string>
|
||||
<string name="tunnel_on_error">Unable to turn tunnel on (wgTurnOn returned %d)</string>
|
||||
<string name="tunnel_dns_failure">Unable to resolve DNS hostname: “%s”</string>
|
||||
|
||||
@@ -5,16 +5,15 @@
|
||||
<item name="android:background">?attr/colorSurface</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme" parent="WireGuardTheme">
|
||||
<item name="android:statusBarColor">?android:colorBackground</item>
|
||||
<item name="android:navigationBarColor">?android:colorBackground</item>
|
||||
<item name="android:windowLightNavigationBar">@bool/light_navigation_bar</item>
|
||||
<item name="android:windowLightStatusBar">@bool/light_status_bar</item>
|
||||
<style name="AppThemeBase" parent="WireGuardTheme">
|
||||
<item name="materialCardViewStyle">@style/WireGuardTheme.MaterialCardView</item>
|
||||
<item name="toolbarStyle">@style/WireGuardTheme.Toolbar</item>
|
||||
<item name="bottomSheetDialogTheme">@style/WireGuardTheme.BottomSheetDialog</item>
|
||||
</style>
|
||||
|
||||
<!-- Various additional API-specific features in values-v*/styles.xml -->
|
||||
<style name="AppTheme" parent="AppThemeBase"/>
|
||||
|
||||
<style name="WireGuardTheme.MaterialCardView" parent="Widget.Material3.CardView.Elevated">
|
||||
<item name="cornerRadius">4dp</item>
|
||||
<item name="contentPadding">8dp</item>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<style name="TvTheme" parent="Theme.MaterialComponents.NoActionBar">
|
||||
<style name="TvTheme" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<item name="colorPrimary">@color/tv_primary_color</item>
|
||||
<item name="colorOnPrimary">#fffafafa</item>
|
||||
<item name="colorPrimaryDark">@color/tv_primary_color</item>
|
||||
@@ -20,7 +20,7 @@
|
||||
<item name="materialCardViewStyle">@style/TvTheme.MaterialCardView</item>
|
||||
</style>
|
||||
|
||||
<style name="TvTheme.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog.Alert">
|
||||
<style name="TvTheme.Dialog" parent="Theme.Material3.DayNight.Dialog.Alert">
|
||||
<item name="android:windowBackground">?attr/colorSurface</item>
|
||||
</style>
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
buildscript {
|
||||
ext {
|
||||
wireguardVersionCode = 495
|
||||
wireguardVersionName = '1.0.20230328'
|
||||
wireguardVersionCode = 497
|
||||
wireguardVersionName = '1.0.20230330'
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user