- Rename package and all Java/Kotlin sources: com.wireguard.android -> page.onram.wirevpn - applicationId -> page.onram.wirevpn, version 1.0.20260910 (520) - New launcher icon: dark circle, white padlock with bold W - App name 'Wire VPN' in all locales; remove donate preference - Release signing from KEYSTORE_* env vars (CI) - F-Droid v2: scripts/fdroid_metadata.py - GitHub/Gitea Actions workflow: auto-build signed APK + F-Droid metadata/signature on every new release, attach to the release - README + NOTICE (license inventory)
@@ -7,6 +7,13 @@ plugins {
|
||||
alias(libs.plugins.legacy.kapt)
|
||||
}
|
||||
|
||||
val signingKeystoreFile: String? = providers.environmentVariable("KEYSTORE_FILE").orNull
|
||||
val releaseSigningEnabled =
|
||||
signingKeystoreFile != null &&
|
||||
providers.environmentVariable("KEYSTORE_PASSWORD").orNull != null &&
|
||||
providers.environmentVariable("KEY_ALIAS").orNull != null &&
|
||||
providers.environmentVariable("KEY_PASSWORD").orNull != null
|
||||
|
||||
android {
|
||||
compileSdk = 36
|
||||
buildFeatures {
|
||||
@@ -15,6 +22,17 @@ android {
|
||||
viewBinding = true
|
||||
}
|
||||
namespace = pkg
|
||||
signingConfigs {
|
||||
if (releaseSigningEnabled) {
|
||||
val storeFileRef = requireNotNull(signingKeystoreFile)
|
||||
create("release") {
|
||||
storeFile = file(storeFileRef)
|
||||
storePassword = providers.environmentVariable("KEYSTORE_PASSWORD").get()
|
||||
keyAlias = providers.environmentVariable("KEY_ALIAS").get()
|
||||
keyPassword = providers.environmentVariable("KEY_PASSWORD").get()
|
||||
}
|
||||
}
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId = pkg
|
||||
minSdk = 24
|
||||
@@ -32,6 +50,9 @@ android {
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
proguardFiles("proguard-android-optimize.txt")
|
||||
if (releaseSigningEnabled) {
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
}
|
||||
packaging {
|
||||
resources {
|
||||
excludes += "DebugProbesKt.bin"
|
||||
|
||||
@@ -130,9 +130,9 @@
|
||||
android:exported="true"
|
||||
android:permission="${applicationId}.permission.CONTROL_TUNNELS">
|
||||
<intent-filter>
|
||||
<action android:name="com.wireguard.android.action.REFRESH_TUNNEL_STATES" />
|
||||
<action android:name="com.wireguard.android.action.SET_TUNNEL_UP" />
|
||||
<action android:name="com.wireguard.android.action.SET_TUNNEL_DOWN" />
|
||||
<action android:name="page.onram.wirevpn.action.REFRESH_TUNNEL_STATES" />
|
||||
<action android:name="page.onram.wirevpn.action.SET_TUNNEL_UP" />
|
||||
<action android:name="page.onram.wirevpn.action.SET_TUNNEL_DOWN" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.util.AttributeSet
|
||||
import android.widget.Toast
|
||||
import androidx.preference.Preference
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.updater.Updater
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import androidx.core.net.toUri
|
||||
|
||||
class DonatePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
|
||||
override fun getSummary() = context.getString(R.string.donate_summary)
|
||||
|
||||
override fun getTitle() = context.getString(R.string.donate_title)
|
||||
|
||||
override fun onClick() {
|
||||
/* Google Play Store forbids links to our donation page. */
|
||||
if (Updater.installerIsGooglePlay(context)) {
|
||||
MaterialAlertDialogBuilder(context)
|
||||
.setTitle(R.string.donate_title)
|
||||
.setMessage(R.string.donate_google_play_disappointment)
|
||||
.show()
|
||||
return
|
||||
}
|
||||
|
||||
val intent = Intent(Intent.ACTION_VIEW)
|
||||
intent.data = "https://www.wireguard.com/donations/".toUri()
|
||||
try {
|
||||
context.startActivity(intent)
|
||||
} catch (e: Throwable) {
|
||||
Toast.makeText(context, ErrorMessages[e], Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android
|
||||
package page.onram.wirevpn
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -17,16 +17,16 @@ 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.wireguard.android.backend.Backend
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
import com.wireguard.android.configStore.FileConfigStore
|
||||
import com.wireguard.android.model.TunnelManager
|
||||
import com.wireguard.android.updater.Updater
|
||||
import com.wireguard.android.util.RootShell
|
||||
import com.wireguard.android.util.ToolsInstaller
|
||||
import com.wireguard.android.util.UserKnobs
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import page.onram.wirevpn.backend.Backend
|
||||
import page.onram.wirevpn.backend.GoBackend
|
||||
import page.onram.wirevpn.backend.WgQuickBackend
|
||||
import page.onram.wirevpn.configStore.FileConfigStore
|
||||
import page.onram.wirevpn.model.TunnelManager
|
||||
import page.onram.wirevpn.updater.Updater
|
||||
import page.onram.wirevpn.util.RootShell
|
||||
import page.onram.wirevpn.util.ToolsInstaller
|
||||
import page.onram.wirevpn.util.UserKnobs
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -2,14 +2,14 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android
|
||||
package page.onram.wirevpn
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import page.onram.wirevpn.backend.WgQuickBackend
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class BootShutdownReceiver : BroadcastReceiver() {
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android
|
||||
package page.onram.wirevpn
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.content.Intent
|
||||
@@ -19,12 +19,12 @@ import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.databinding.Observable
|
||||
import androidx.databinding.Observable.OnPropertyChangedCallback
|
||||
import com.wireguard.android.activity.MainActivity
|
||||
import com.wireguard.android.activity.TunnelToggleActivity
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import com.wireguard.android.widget.SlashDrawable
|
||||
import page.onram.wirevpn.activity.MainActivity
|
||||
import page.onram.wirevpn.activity.TunnelToggleActivity
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import page.onram.wirevpn.widget.SlashDrawable
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -2,15 +2,15 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.databinding.CallbackRegistry
|
||||
import androidx.databinding.CallbackRegistry.NotifierCallback
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.content.ClipDescription.compareMimeTypes
|
||||
import android.content.ContentProvider
|
||||
@@ -36,13 +36,13 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textview.MaterialTextView
|
||||
import com.wireguard.android.BuildConfig
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.databinding.LogViewerActivityBinding
|
||||
import com.wireguard.android.util.DownloadsFileSaver
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.resolveAttribute
|
||||
import com.wireguard.crypto.KeyPair
|
||||
import page.onram.wirevpn.BuildConfig
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.databinding.LogViewerActivityBinding
|
||||
import page.onram.wirevpn.util.DownloadsFileSaver
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.resolveAttribute
|
||||
import page.onram.wirevpn.crypto.KeyPair
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
@@ -15,10 +15,10 @@ import androidx.appcompat.app.ActionBar
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import androidx.fragment.app.commit
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.fragment.TunnelDetailFragment
|
||||
import com.wireguard.android.fragment.TunnelEditorFragment
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.fragment.TunnelDetailFragment
|
||||
import page.onram.wirevpn.fragment.TunnelEditorFragment
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
|
||||
/**
|
||||
* CRUD interface for WireGuard tunnels. This activity serves as the main entry point to the
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
@@ -16,12 +16,12 @@ import androidx.fragment.app.commit
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.QuickTileService
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
import com.wireguard.android.preference.PreferencesPreferenceDataStore
|
||||
import com.wireguard.android.util.AdminKnobs
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.QuickTileService
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.WgQuickBackend
|
||||
import page.onram.wirevpn.preference.PreferencesPreferenceDataStore
|
||||
import page.onram.wirevpn.util.AdminKnobs
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -2,11 +2,11 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.os.Bundle
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
|
||||
/**
|
||||
* Standalone activity for creating tunnels.
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.os.Build
|
||||
@@ -14,12 +14,12 @@ import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.QuickTileService
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.QuickTileService
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.GoBackend
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class TunnelToggleActivity : AppCompatActivity() {
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.activity
|
||||
package page.onram.wirevpn.activity
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ActivityNotFoundException
|
||||
@@ -34,22 +34,22 @@ import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.databinding.Keyed
|
||||
import com.wireguard.android.databinding.ObservableKeyedArrayList
|
||||
import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter
|
||||
import com.wireguard.android.databinding.TvActivityBinding
|
||||
import com.wireguard.android.databinding.TvFileListItemBinding
|
||||
import com.wireguard.android.databinding.TvTunnelListItemBinding
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.QuantityFormatter
|
||||
import com.wireguard.android.util.TunnelImporter
|
||||
import com.wireguard.android.util.UserKnobs
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.GoBackend
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.databinding.Keyed
|
||||
import page.onram.wirevpn.databinding.ObservableKeyedArrayList
|
||||
import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter
|
||||
import page.onram.wirevpn.databinding.TvActivityBinding
|
||||
import page.onram.wirevpn.databinding.TvFileListItemBinding
|
||||
import page.onram.wirevpn.databinding.TvTunnelListItemBinding
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.QuantityFormatter
|
||||
import page.onram.wirevpn.util.TunnelImporter
|
||||
import page.onram.wirevpn.util.UserKnobs
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -2,9 +2,9 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.configStore
|
||||
package page.onram.wirevpn.configStore
|
||||
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.config.Config
|
||||
|
||||
/**
|
||||
* Interface for persistent storage providers for WireGuard configurations.
|
||||
@@ -2,13 +2,13 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.configStore
|
||||
package page.onram.wirevpn.configStore
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.Config
|
||||
import java.io.File
|
||||
import java.io.FileInputStream
|
||||
import java.io.FileNotFoundException
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
import android.text.InputFilter
|
||||
import android.view.LayoutInflater
|
||||
@@ -18,14 +18,14 @@ import androidx.databinding.adapters.ListenerUtil
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler
|
||||
import com.wireguard.android.widget.ToggleSwitch
|
||||
import com.wireguard.android.widget.ToggleSwitch.OnBeforeCheckedChangeListener
|
||||
import com.wireguard.android.widget.TvCardView
|
||||
import com.wireguard.config.Attribute
|
||||
import com.wireguard.config.InetNetwork
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler
|
||||
import page.onram.wirevpn.widget.ToggleSwitch
|
||||
import page.onram.wirevpn.widget.ToggleSwitch.OnBeforeCheckedChangeListener
|
||||
import page.onram.wirevpn.widget.TvCardView
|
||||
import page.onram.wirevpn.config.Attribute
|
||||
import page.onram.wirevpn.config.InetNetwork
|
||||
import java.net.InetAddress
|
||||
import java.util.Optional
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -11,7 +11,7 @@ import androidx.databinding.DataBindingUtil
|
||||
import androidx.databinding.ObservableList
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.wireguard.android.BR
|
||||
import page.onram.wirevpn.BR
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
/**
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
/**
|
||||
* Interface for objects that have a identifying key of the given type.
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
import androidx.databinding.ObservableArrayList
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
@@ -11,7 +11,7 @@ import androidx.databinding.DataBindingUtil
|
||||
import androidx.databinding.ObservableList
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.wireguard.android.BR
|
||||
import page.onram.wirevpn.BR
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
/**
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.databinding
|
||||
package page.onram.wirevpn.databinding
|
||||
|
||||
import java.util.AbstractList
|
||||
import java.util.Collections
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.GradientDrawable
|
||||
@@ -16,8 +16,8 @@ import androidx.fragment.app.setFragmentResult
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.util.resolveAttribute
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.util.resolveAttribute
|
||||
|
||||
class AddTunnelsSheet : BottomSheetDialogFragment() {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Dialog
|
||||
@@ -20,12 +20,12 @@ import androidx.fragment.app.setFragmentResult
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.databinding.AppListDialogFragmentBinding
|
||||
import com.wireguard.android.databinding.ObservableKeyedArrayList
|
||||
import com.wireguard.android.model.ApplicationData
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.databinding.AppListDialogFragmentBinding
|
||||
import page.onram.wirevpn.databinding.ObservableKeyedArrayList
|
||||
import page.onram.wirevpn.model.ApplicationData
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
@@ -14,16 +14,16 @@ import androidx.databinding.ViewDataBinding
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.activity.BaseActivity
|
||||
import com.wireguard.android.activity.BaseActivity.OnSelectedTunnelChangedListener
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.databinding.TunnelDetailFragmentBinding
|
||||
import com.wireguard.android.databinding.TunnelListItemBinding
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.activity.BaseActivity
|
||||
import page.onram.wirevpn.activity.BaseActivity.OnSelectedTunnelChangedListener
|
||||
import page.onram.wirevpn.backend.GoBackend
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.databinding.TunnelDetailFragmentBinding
|
||||
import page.onram.wirevpn.databinding.TunnelListItemBinding
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
@@ -10,11 +10,11 @@ import android.view.WindowManager
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.databinding.ConfigNamingDialogFragmentBinding
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.databinding.ConfigNamingDialogFragmentBinding
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.Config
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.IOException
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
@@ -15,12 +15,12 @@ import androidx.core.view.MenuProvider
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.databinding.TunnelDetailFragmentBinding
|
||||
import com.wireguard.android.databinding.TunnelDetailPeerBinding
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.util.QuantityFormatter
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.databinding.TunnelDetailFragmentBinding
|
||||
import page.onram.wirevpn.databinding.TunnelDetailPeerBinding
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.util.QuantityFormatter
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
@@ -23,16 +23,16 @@ import androidx.core.view.MenuProvider
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.databinding.TunnelEditorFragmentBinding
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.util.AdminKnobs
|
||||
import com.wireguard.android.util.BiometricAuthenticator
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.viewmodel.ConfigProxy
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.databinding.TunnelEditorFragmentBinding
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.util.AdminKnobs
|
||||
import page.onram.wirevpn.util.BiometricAuthenticator
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.viewmodel.ConfigProxy
|
||||
import page.onram.wirevpn.config.Config
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.fragment
|
||||
package page.onram.wirevpn.fragment
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.res.Resources
|
||||
@@ -26,18 +26,18 @@ import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.zxing.qrcode.QRCodeReader
|
||||
import com.journeyapps.barcodescanner.ScanContract
|
||||
import com.journeyapps.barcodescanner.ScanOptions
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.activity.TunnelCreatorActivity
|
||||
import com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler
|
||||
import com.wireguard.android.databinding.TunnelListFragmentBinding
|
||||
import com.wireguard.android.databinding.TunnelListItemBinding
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.android.updater.SnackbarUpdateShower
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.QrCodeFromFileScanner
|
||||
import com.wireguard.android.util.TunnelImporter
|
||||
import com.wireguard.android.widget.MultiselectableRelativeLayout
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.activity.TunnelCreatorActivity
|
||||
import page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler
|
||||
import page.onram.wirevpn.databinding.TunnelListFragmentBinding
|
||||
import page.onram.wirevpn.databinding.TunnelListItemBinding
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.updater.SnackbarUpdateShower
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.QrCodeFromFileScanner
|
||||
import page.onram.wirevpn.util.TunnelImporter
|
||||
import page.onram.wirevpn.widget.MultiselectableRelativeLayout
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
@@ -2,13 +2,13 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.model
|
||||
package page.onram.wirevpn.model
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import androidx.databinding.BaseObservable
|
||||
import androidx.databinding.Bindable
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.android.databinding.Keyed
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.databinding.Keyed
|
||||
|
||||
class ApplicationData(val icon: Drawable, val name: String, val packageName: String, isSelected: Boolean) : BaseObservable(), Keyed<String> {
|
||||
override val key = name
|
||||
@@ -2,17 +2,17 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.model
|
||||
package page.onram.wirevpn.model
|
||||
|
||||
import android.util.Log
|
||||
import androidx.databinding.BaseObservable
|
||||
import androidx.databinding.Bindable
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.android.backend.Statistics
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.databinding.Keyed
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.backend.Statistics
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.databinding.Keyed
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import page.onram.wirevpn.config.Config
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.model
|
||||
package page.onram.wirevpn.model
|
||||
|
||||
object TunnelComparator : Comparator<String> {
|
||||
private class NaturalSortString(originalString: String) {
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.model
|
||||
package page.onram.wirevpn.model
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
@@ -12,19 +12,19 @@ import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.databinding.BaseObservable
|
||||
import androidx.databinding.Bindable
|
||||
import com.wireguard.android.Application.Companion.get
|
||||
import com.wireguard.android.Application.Companion.getBackend
|
||||
import com.wireguard.android.Application.Companion.getTunnelManager
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.Statistics
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.configStore.ConfigStore
|
||||
import com.wireguard.android.databinding.ObservableSortedKeyedArrayList
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.UserKnobs
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.Application.Companion.get
|
||||
import page.onram.wirevpn.Application.Companion.getBackend
|
||||
import page.onram.wirevpn.Application.Companion.getTunnelManager
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.Statistics
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.configStore.ConfigStore
|
||||
import page.onram.wirevpn.databinding.ObservableSortedKeyedArrayList
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.UserKnobs
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import page.onram.wirevpn.config.Config
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
@@ -217,15 +217,15 @@ class TunnelManager(private val configStore: ConfigStore) : BaseObservable() {
|
||||
val manager = getTunnelManager()
|
||||
if (intent == null) return@launch
|
||||
val action = intent.action ?: return@launch
|
||||
if ("com.wireguard.android.action.REFRESH_TUNNEL_STATES" == action) {
|
||||
if ("page.onram.wirevpn.action.REFRESH_TUNNEL_STATES" == action) {
|
||||
manager.refreshTunnelStates()
|
||||
return@launch
|
||||
}
|
||||
if (!UserKnobs.allowRemoteControlIntents.first())
|
||||
return@launch
|
||||
val state = when (action) {
|
||||
"com.wireguard.android.action.SET_TUNNEL_UP" -> Tunnel.State.UP
|
||||
"com.wireguard.android.action.SET_TUNNEL_DOWN" -> Tunnel.State.DOWN
|
||||
"page.onram.wirevpn.action.SET_TUNNEL_UP" -> Tunnel.State.UP
|
||||
"page.onram.wirevpn.action.SET_TUNNEL_DOWN" -> Tunnel.State.DOWN
|
||||
else -> return@launch
|
||||
}
|
||||
val tunnelName = intent.getStringExtra("tunnel") ?: return@launch
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -10,14 +10,14 @@ import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.Preference
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.activity.SettingsActivity
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
import com.wireguard.android.util.UserKnobs
|
||||
import com.wireguard.android.util.activity
|
||||
import com.wireguard.android.util.lifecycleScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.activity.SettingsActivity
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
import page.onram.wirevpn.backend.WgQuickBackend
|
||||
import page.onram.wirevpn.util.UserKnobs
|
||||
import page.onram.wirevpn.util.activity
|
||||
import page.onram.wirevpn.util.lifecycleScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.async
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import android.app.StatusBarManager
|
||||
import android.content.ComponentName
|
||||
@@ -14,8 +14,8 @@ import android.util.AttributeSet
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.preference.Preference
|
||||
import com.wireguard.android.QuickTileService
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.QuickTileService
|
||||
import page.onram.wirevpn.R
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
class QuickTilePreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) {
|
||||
@@ -2,15 +2,15 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.preference.Preference
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.util.ToolsInstaller
|
||||
import com.wireguard.android.util.lifecycleScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.util.ToolsInstaller
|
||||
import page.onram.wirevpn.util.lifecycleScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -10,14 +10,14 @@ import android.net.Uri
|
||||
import android.util.AttributeSet
|
||||
import android.widget.Toast
|
||||
import androidx.preference.Preference
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.BuildConfig
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.Backend
|
||||
import com.wireguard.android.backend.GoBackend
|
||||
import com.wireguard.android.backend.WgQuickBackend
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.lifecycleScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.BuildConfig
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.Backend
|
||||
import page.onram.wirevpn.backend.GoBackend
|
||||
import page.onram.wirevpn.backend.WgQuickBackend
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.lifecycleScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -31,7 +31,7 @@ class VersionPreference(context: Context, attrs: AttributeSet?) : Preference(con
|
||||
|
||||
override fun onClick() {
|
||||
val intent = Intent(Intent.ACTION_VIEW)
|
||||
intent.data = Uri.parse("https://www.wireguard.com/")
|
||||
intent.data = Uri.parse("https://git.obahan.xyz/frank/wirevpn")
|
||||
try {
|
||||
context.startActivity(intent)
|
||||
} catch (e: Throwable) {
|
||||
@@ -2,21 +2,21 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.preference
|
||||
package page.onram.wirevpn.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import androidx.preference.Preference
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.util.AdminKnobs
|
||||
import com.wireguard.android.util.BiometricAuthenticator
|
||||
import com.wireguard.android.util.DownloadsFileSaver
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.activity
|
||||
import com.wireguard.android.util.lifecycleScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.util.AdminKnobs
|
||||
import page.onram.wirevpn.util.BiometricAuthenticator
|
||||
import page.onram.wirevpn.util.DownloadsFileSaver
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.activity
|
||||
import page.onram.wirevpn.util.lifecycleScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.async
|
||||
@@ -4,7 +4,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.updater;
|
||||
package page.onram.wirevpn.updater;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.GeneralSecurityException;
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.updater
|
||||
package page.onram.wirevpn.updater
|
||||
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
@@ -15,9 +15,9 @@ import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.BaseTransientBottomBar
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.util.ErrorMessages
|
||||
import com.wireguard.android.util.QuantityFormatter
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.util.ErrorMessages
|
||||
import page.onram.wirevpn.util.QuantityFormatter
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.updater
|
||||
package page.onram.wirevpn.updater
|
||||
|
||||
import android.Manifest
|
||||
import android.app.PendingIntent
|
||||
@@ -17,11 +17,11 @@ import android.util.Base64
|
||||
import android.util.Log
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.IntentCompat
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.BuildConfig
|
||||
import com.wireguard.android.activity.MainActivity
|
||||
import com.wireguard.android.util.UserKnobs
|
||||
import com.wireguard.android.util.applicationScope
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.BuildConfig
|
||||
import page.onram.wirevpn.activity.MainActivity
|
||||
import page.onram.wirevpn.util.UserKnobs
|
||||
import page.onram.wirevpn.util.applicationScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
@@ -46,7 +46,7 @@ import kotlin.time.Duration.Companion.minutes
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
object Updater {
|
||||
private const val TAG = "WireGuard/Updater"
|
||||
private const val TAG = "WireVPN/Updater"
|
||||
private const val UPDATE_URL_FMT = "https://download.wireguard.com/android-client/%s"
|
||||
private const val APK_NAME_PREFIX = BuildConfig.APPLICATION_ID + "-"
|
||||
private const val APK_NAME_SUFFIX = ".apk"
|
||||
@@ -376,9 +376,14 @@ object Updater {
|
||||
/* Hello copy and paste artist! Before you go remove these next two lines,
|
||||
* I kindly ask that you actually think about what you're doing more globally,
|
||||
* and instead remove this entire file from your project. Thank you very much! */
|
||||
if (!context.packageName.startsWith("com.wireguard."))
|
||||
if (!context.packageName.startsWith("page.onram.wirevpn."))
|
||||
throw RuntimeException("Too much code got copy and pasted")
|
||||
|
||||
// Wire VPN is distributed via its own F-Droid repository; the upstream
|
||||
// auto-updater points at the official WireGuard app and its signature,
|
||||
// so it is disabled for this fork.
|
||||
return
|
||||
|
||||
if (installerIsGooglePlay(context))
|
||||
return
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.RestrictionsManager
|
||||
import androidx.core.content.getSystemService
|
||||
import com.wireguard.android.Application
|
||||
import page.onram.wirevpn.Application
|
||||
|
||||
object AdminKnobs {
|
||||
private val restrictions: RestrictionsManager? = Application.get().getSystemService()
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
@@ -13,7 +13,7 @@ import androidx.biometric.BiometricManager
|
||||
import androidx.biometric.BiometricManager.Authenticators
|
||||
import androidx.biometric.BiometricPrompt
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.R
|
||||
|
||||
|
||||
object BiometricAuthenticator {
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
@@ -12,7 +12,7 @@ import android.widget.TextView
|
||||
import androidx.core.content.getSystemService
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.R
|
||||
|
||||
/**
|
||||
* Standalone utilities for interacting with the system clipboard.
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ContentValues
|
||||
@@ -17,7 +17,7 @@ import androidx.activity.ComponentActivity
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.R
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -2,22 +2,22 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.os.RemoteException
|
||||
import com.google.zxing.ChecksumException
|
||||
import com.google.zxing.NotFoundException
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.backend.BackendException
|
||||
import com.wireguard.android.util.RootShell.RootShellException
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.InetEndpoint
|
||||
import com.wireguard.config.InetNetwork
|
||||
import com.wireguard.config.ParseException
|
||||
import com.wireguard.crypto.Key
|
||||
import com.wireguard.crypto.KeyFormatException
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.backend.BackendException
|
||||
import page.onram.wirevpn.util.RootShell.RootShellException
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.InetEndpoint
|
||||
import page.onram.wirevpn.config.InetNetwork
|
||||
import page.onram.wirevpn.config.ParseException
|
||||
import page.onram.wirevpn.crypto.Key
|
||||
import page.onram.wirevpn.crypto.KeyFormatException
|
||||
import java.net.InetAddress
|
||||
|
||||
object ErrorMessages {
|
||||
@@ -3,15 +3,15 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.Context
|
||||
import android.util.TypedValue
|
||||
import androidx.annotation.AttrRes
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.Preference
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.activity.SettingsActivity
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.activity.SettingsActivity
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
fun Context.resolveAttribute(@AttrRes attrRes: Int): Int {
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.graphics.Bitmap
|
||||
@@ -3,7 +3,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.icu.text.ListFormatter
|
||||
import android.icu.text.MeasureFormat
|
||||
@@ -11,8 +11,8 @@ import android.icu.text.RelativeDateTimeFormatter
|
||||
import android.icu.util.Measure
|
||||
import android.icu.util.MeasureUnit
|
||||
import android.os.Build
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import java.util.Locale
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.net.Uri
|
||||
import android.provider.OpenableColumns
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import com.wireguard.android.Application
|
||||
import com.wireguard.android.R
|
||||
import com.wireguard.android.fragment.ConfigNamingDialogFragment
|
||||
import com.wireguard.android.model.ObservableTunnel
|
||||
import com.wireguard.config.Config
|
||||
import page.onram.wirevpn.Application
|
||||
import page.onram.wirevpn.R
|
||||
import page.onram.wirevpn.fragment.ConfigNamingDialogFragment
|
||||
import page.onram.wirevpn.model.ObservableTunnel
|
||||
import page.onram.wirevpn.config.Config
|
||||
import kotlinx.coroutines.Deferred
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
@@ -3,13 +3,13 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.util
|
||||
package page.onram.wirevpn.util
|
||||
|
||||
import androidx.datastore.preferences.core.booleanPreferencesKey
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringSetPreferencesKey
|
||||
import com.wireguard.android.Application
|
||||
import page.onram.wirevpn.Application
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.viewmodel
|
||||
package page.onram.wirevpn.viewmodel
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Parcel
|
||||
@@ -10,9 +10,9 @@ import android.os.Parcelable
|
||||
import androidx.core.os.ParcelCompat
|
||||
import androidx.databinding.ObservableArrayList
|
||||
import androidx.databinding.ObservableList
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.Config
|
||||
import com.wireguard.config.Peer
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.Config
|
||||
import page.onram.wirevpn.config.Peer
|
||||
|
||||
class ConfigProxy : Parcelable {
|
||||
val `interface`: InterfaceProxy
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.viewmodel
|
||||
package page.onram.wirevpn.viewmodel
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
@@ -10,13 +10,13 @@ import androidx.databinding.BaseObservable
|
||||
import androidx.databinding.Bindable
|
||||
import androidx.databinding.ObservableArrayList
|
||||
import androidx.databinding.ObservableList
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.config.Attribute
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.Interface
|
||||
import com.wireguard.crypto.Key
|
||||
import com.wireguard.crypto.KeyFormatException
|
||||
import com.wireguard.crypto.KeyPair
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.config.Attribute
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.Interface
|
||||
import page.onram.wirevpn.crypto.Key
|
||||
import page.onram.wirevpn.crypto.KeyFormatException
|
||||
import page.onram.wirevpn.crypto.KeyPair
|
||||
|
||||
class InterfaceProxy : BaseObservable, Parcelable {
|
||||
@get:Bindable
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.viewmodel
|
||||
package page.onram.wirevpn.viewmodel
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
@@ -11,10 +11,10 @@ import androidx.databinding.Bindable
|
||||
import androidx.databinding.Observable
|
||||
import androidx.databinding.Observable.OnPropertyChangedCallback
|
||||
import androidx.databinding.ObservableList
|
||||
import com.wireguard.android.BR
|
||||
import com.wireguard.config.Attribute
|
||||
import com.wireguard.config.BadConfigException
|
||||
import com.wireguard.config.Peer
|
||||
import page.onram.wirevpn.BR
|
||||
import page.onram.wirevpn.config.Attribute
|
||||
import page.onram.wirevpn.config.BadConfigException
|
||||
import page.onram.wirevpn.config.Peer
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class PeerProxy : BaseObservable, Parcelable {
|
||||
@@ -2,12 +2,12 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.text.InputFilter
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import com.wireguard.crypto.Key
|
||||
import page.onram.wirevpn.crypto.Key
|
||||
|
||||
/**
|
||||
* InputFilter for entering WireGuard private/public keys encoded with base64.
|
||||
@@ -2,13 +2,13 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.R
|
||||
|
||||
class MultiselectableRelativeLayout @JvmOverloads constructor(
|
||||
context: Context? = null,
|
||||
@@ -2,12 +2,12 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.text.InputFilter
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import com.wireguard.android.backend.Tunnel
|
||||
import page.onram.wirevpn.backend.Tunnel
|
||||
|
||||
/**
|
||||
* InputFilter for entering WireGuard configuration names (Linux interface names).
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.content.res.ColorStateList
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Parcelable
|
||||
@@ -3,13 +3,13 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.wireguard.android.widget
|
||||
package page.onram.wirevpn.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import com.wireguard.android.R
|
||||
import page.onram.wirevpn.R
|
||||
|
||||
class TvCardView(context: Context?, attrs: AttributeSet?) : MaterialCardView(context, attrs) {
|
||||
var isUp: Boolean = false
|
||||
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright © 2017-2025 WireGuard LLC. All Rights Reserved.
|
||||
~ SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
@@ -7,32 +6,11 @@
|
||||
android:height="108dp"
|
||||
android:viewportWidth="2160"
|
||||
android:viewportHeight="2160">
|
||||
<group
|
||||
android:scaleX="1"
|
||||
android:scaleY="-1"
|
||||
android:translateX="630"
|
||||
android:translateY="1750">
|
||||
<group>
|
||||
<clip-path android:pathData="M0 1347.452l773.449 0L773.449 0 0 0Z" />
|
||||
<group
|
||||
android:translateX="349.0264"
|
||||
android:translateY="572.616">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M0 0c-12.169 -6.44 -21.541 -11.184 -30.71 -16.292 -37.523 -20.902 -69.603 -48.262 -95.162 -82.767 -8.264 -11.156 -13.945 -12.055 -26.528 -4.36 -163.692 100.101 -174.212 351.318 4.549 460.681 139.045 85.064 316.68 33.074 383.242 -94.85 12.614 -24.244 14.218 -61.567 6.228 -87 -27.582 -87.807 -92.71 -137.049 -182.1 -157.968 26.353 22.561 47.329 48.145 54.006 83.494 6.725 35.606 -0.388 67.807 -21.041 97.072 -31.371 44.451 -92.029 62.74 -142.721 43.492 -55.035 -20.896 -85.181 -71.123 -79.747 -132.863C-124.935 51.288 -81.419 14.12 0 0" />
|
||||
</group>
|
||||
<group android:translateY="285.9856">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M0 0C13.148 88.712 117.033 170.407 204.881 161.087 177.673 124.291 165.104 82.664 162.071 41.145 132.88 35.769 105.368 32.152 78.66 25.373 52.364 18.698 26.882 8.816 0 0" />
|
||||
</group>
|
||||
<group
|
||||
android:translateX="580.2814"
|
||||
android:translateY="1243.915">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M0 0C4.917 3.762 9.98 6.922 16.085 1.891 19.557 -0.97 22.93 -3.933 27.136 -7.523 21.915 -10.28 17.676 -12.599 13.355 -14.779 7.307 -17.83 2.785 -15.792 -0.877 -10.972 -3.847 -7.062 -4.384 -3.354 0 0m71.552 -730.934c-7.403 6.401 -12.094 6.399 -20.775 0.845 -29.454 -18.844 -59.602 -36.696 -90.239 -53.556 -17.562 -9.664 -36.584 -16.675 -58.61 -26.516 7.564 -1.952 11.203 -2.865 14.829 -3.83 82.337 -21.913 126.326 -94.196 106.841 -175.157 -17.329 -71.999 -90.422 -118.033 -161.255 -105.889 -59.053 10.125 -110.601 59.161 -119.21 117.917 -9.382 64.032 22.508 125.618 79.246 151.417 31.472 14.31 63.79 26.766 95.186 41.229 35.697 16.445 74.29 29.435 105.458 52.322 77.355 56.801 125.124 135.006 143.747 229.401 11.155 56.543 10.401 112.837 -15.467 166.524 -19.851 41.202 -52.429 71.133 -87.429 98.447 -36.018 28.108 -74.148 53.518 -110.002 81.821 -9.702 7.659 -16.252 20.865 -20.742 32.84 -1.903 5.075 4.287 18.838 8.426 19.581 21.985 3.946 44.45 5.978 66.818 6.823 25.82 0.974 51.713 0.148 77.571 -0.192 5.606 -0.073 13.217 0.653 16.439 -2.514 13.394 -13.167 23.897 -4.697 33.194 3.965 7.823 7.29 13.399 16.992 19.62 25.168 -3.775 0.555 -11.519 2.505 -19.304 2.689 -26.003 0.616 -52.035 0.221 -78.021 1.176 -4.63 0.17 -9.09 4.935 -13.629 7.579 4.776 1.898 9.537 5.399 14.33 5.444 44.849 0.421 89.703 0.25 134.594 0.25 0.052 23.336 -31.136 55.291 -58.846 63.95 -0.207 -3.158 -0.4 -6.097 -0.606 -9.233C106.184 0.913 79.16 1.426 54.61 14.481 48.141 17.921 43.912 25.57 38.647 31.279 32.019 38.467 26.58 47.709 18.5 52.399 1.934 62.014 -16.148 68.982 -33.431 77.4c-61.418 29.914 -126.278 28.862 -195.946 22.484 41.644 -9.693 79.255 -18.447 116.865 -27.202 -0.428 -2.286 -0.856 -4.573 -1.284 -6.86 -50.308 -6.74 -97.898 11.71 -147.101 18.545 17.831 -10.443 35.897 -20.152 54.561 -28.527 18.965 -8.51 38.52 -15.705 58.076 -23.58 -24.845 -21.229 -49.776 -25.887 -81.008 -18.751 -17.072 3.901 -35.132 5.972 -52.564 5.121 -18.006 -0.88 -36.141 -5.311 -52.491 -16.238 17.507 -8.875 33.643 -16.24 48.864 -25.165 6.277 -3.681 13.473 -9.93 15.223 -16.377 4.191 -15.44 5.402 -31.689 7.817 -47.623 -28.667 -3.247 -79.074 -32.4 -89.261 -51.373 44.059 -8.478 92.031 1.777 134.06 -26.617 -13.844 -10.477 -46.085 -23.507 -57.911 -32.457 14.621 -3.831 48.498 -1.955 61.751 -1.057 11.157 0.756 16.306 1.029 20.881 -2.735l129.701 -101.541c13.638 -10.994 68.719 -63.131 83.098 -95.903 12.241 -27.902 13.739 -51.638 13.736 -57.431 -0.01 -15.541 -1.917 -39.876 -12.605 -67.022 -4.488 -11.399 -17.658 -36.65 -44.826 -66.083 -42.107 -45.617 -96.27 -70.274 -155.501 -82.487 -137.722 -28.395 -252.153 -175.469 -219.85 -337.61 37.714 -189.296 246.646 -291.784 417.386 -201.739 110.359 58.201 168.871 171.751 153.193 295.356 -9.471 74.672 -43.252 135.578 -99.881 184.538" />
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M870.2 936.3A209.8 209.8 0 0 1 1289.8 936.3V1038.3H1217.0V936.3A137.0 137.0 0 0 0 943.0 936.3V1038.3H870.2Z" />
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M928.4 914.4H1231.6A139.9 139.9 0 0 1 1371.4 1054.3V1251.4A139.9 139.9 0 0 1 1231.6 1391.3H928.4A139.9 139.9 0 0 1 788.6 1251.4V1054.3A139.9 139.9 0 0 1 928.4 914.4ZM930.2 1311.2L1020.8 1082.4L1080.0 1226.2L1139.2 1082.4L1229.8 1311.2L1291.6 1280.6L1136.5 1013.5L1080.0 1157.3L1023.5 1013.5L868.4 1280.6Z" />
|
||||
</vector>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/list_fragment"
|
||||
android:name="com.wireguard.android.fragment.TunnelListFragment"
|
||||
android:name="page.onram.wirevpn.fragment.TunnelListFragment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="2"
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<import type="com.wireguard.android.model.ApplicationData" />
|
||||
<import type="page.onram.wirevpn.model.ApplicationData" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.AppListDialogFragment" />
|
||||
type="page.onram.wirevpn.fragment.AppListDialogFragment" />
|
||||
|
||||
<variable
|
||||
name="appData"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, ApplicationData>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ApplicationData>" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.model.ApplicationData" />
|
||||
<import type="page.onram.wirevpn.model.ApplicationData" />
|
||||
|
||||
<variable
|
||||
name="collection"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, com.wireguard.android.model.ApplicationData>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, page.onram.wirevpn.model.ApplicationData>" />
|
||||
|
||||
<variable
|
||||
name="key"
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="com.wireguard.android.model.ApplicationData" />
|
||||
type="page.onram.wirevpn.model.ApplicationData" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.widget.NameInputFilter" />
|
||||
<import type="page.onram.wirevpn.widget.NameInputFilter" />
|
||||
</data>
|
||||
|
||||
<FrameLayout
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/list_detail_container"
|
||||
android:name="com.wireguard.android.fragment.TunnelListFragment"
|
||||
android:name="page.onram.wirevpn.fragment.TunnelListFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:tag="LIST" />
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/editor_fragment"
|
||||
android:name="com.wireguard.android.fragment.TunnelEditorFragment"
|
||||
android:name="page.onram.wirevpn.fragment.TunnelEditorFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
@@ -8,21 +8,21 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.backend.Tunnel.State" />
|
||||
<import type="page.onram.wirevpn.backend.Tunnel.State" />
|
||||
|
||||
<import type="com.wireguard.android.util.ClipboardUtils" />
|
||||
<import type="page.onram.wirevpn.util.ClipboardUtils" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.TunnelDetailFragment" />
|
||||
type="page.onram.wirevpn.fragment.TunnelDetailFragment" />
|
||||
|
||||
<variable
|
||||
name="tunnel"
|
||||
type="com.wireguard.android.model.ObservableTunnel" />
|
||||
type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<variable
|
||||
name="config"
|
||||
type="com.wireguard.config.Config" />
|
||||
type="page.onram.wirevpn.config.Config" />
|
||||
</data>
|
||||
|
||||
<ScrollView
|
||||
@@ -60,7 +60,7 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.wireguard.android.widget.ToggleSwitch
|
||||
<page.onram.wirevpn.widget.ToggleSwitch
|
||||
android:id="@+id/tunnel_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.util.ClipboardUtils" />
|
||||
<import type="page.onram.wirevpn.util.ClipboardUtils" />
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="com.wireguard.config.Peer" />
|
||||
type="page.onram.wirevpn.config.Peer" />
|
||||
</data>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
|
||||
@@ -8,19 +8,19 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.util.ClipboardUtils" />
|
||||
<import type="page.onram.wirevpn.util.ClipboardUtils" />
|
||||
|
||||
<import type="com.wireguard.android.widget.KeyInputFilter" />
|
||||
<import type="page.onram.wirevpn.widget.KeyInputFilter" />
|
||||
|
||||
<import type="com.wireguard.android.widget.NameInputFilter" />
|
||||
<import type="page.onram.wirevpn.widget.NameInputFilter" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.TunnelEditorFragment" />
|
||||
type="page.onram.wirevpn.fragment.TunnelEditorFragment" />
|
||||
|
||||
<variable
|
||||
name="config"
|
||||
type="com.wireguard.android.viewmodel.ConfigProxy" />
|
||||
type="page.onram.wirevpn.viewmodel.ConfigProxy" />
|
||||
|
||||
<variable
|
||||
name="name"
|
||||
|
||||
@@ -9,21 +9,21 @@
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<import type="com.wireguard.android.widget.KeyInputFilter" />
|
||||
<import type="page.onram.wirevpn.widget.KeyInputFilter" />
|
||||
|
||||
<import type="com.wireguard.android.databinding.BindingAdapters" />
|
||||
<import type="page.onram.wirevpn.databinding.BindingAdapters" />
|
||||
|
||||
<variable
|
||||
name="collection"
|
||||
type="androidx.databinding.ObservableList<com.wireguard.android.viewmodel.PeerProxy>" />
|
||||
type="androidx.databinding.ObservableList<page.onram.wirevpn.viewmodel.PeerProxy>" />
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="com.wireguard.android.viewmodel.PeerProxy" />
|
||||
type="page.onram.wirevpn.viewmodel.PeerProxy" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.TunnelEditorFragment" />
|
||||
type="page.onram.wirevpn.fragment.TunnelEditorFragment" />
|
||||
</data>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
|
||||
@@ -8,19 +8,19 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.model.ObservableTunnel" />
|
||||
<import type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.TunnelListFragment" />
|
||||
type="page.onram.wirevpn.fragment.TunnelListFragment" />
|
||||
|
||||
<variable
|
||||
name="rowConfigurationHandler"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
|
||||
<variable
|
||||
name="tunnels"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
</data>
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.model.ObservableTunnel" />
|
||||
<import type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<import type="com.wireguard.android.backend.Tunnel.State" />
|
||||
<import type="page.onram.wirevpn.backend.Tunnel.State" />
|
||||
|
||||
<variable
|
||||
name="collection"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
|
||||
<variable
|
||||
name="key"
|
||||
@@ -22,14 +22,14 @@
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="com.wireguard.android.model.ObservableTunnel" />
|
||||
type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<variable
|
||||
name="fragment"
|
||||
type="com.wireguard.android.fragment.TunnelListFragment" />
|
||||
type="page.onram.wirevpn.fragment.TunnelListFragment" />
|
||||
</data>
|
||||
|
||||
<com.wireguard.android.widget.MultiselectableRelativeLayout
|
||||
<page.onram.wirevpn.widget.MultiselectableRelativeLayout
|
||||
android:id="@+id/tunnel_list_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -52,7 +52,7 @@
|
||||
android:textAppearance="?attr/textAppearanceBodyLarge"
|
||||
tools:text="@sample/interface_names.json/names/names/name" />
|
||||
|
||||
<com.wireguard.android.widget.ToggleSwitch
|
||||
<page.onram.wirevpn.widget.ToggleSwitch
|
||||
android:id="@+id/tunnel_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -62,5 +62,5 @@
|
||||
app:checked="@{item.state == State.UP}"
|
||||
app:onBeforeCheckedChanged="@{fragment::setTunnelState}"
|
||||
tools:checked="@sample/interface_names.json/names/checked/checked" />
|
||||
</com.wireguard.android.widget.MultiselectableRelativeLayout>
|
||||
</page.onram.wirevpn.widget.MultiselectableRelativeLayout>
|
||||
</layout>
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<import type="com.wireguard.android.model.ObservableTunnel" />
|
||||
<import type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<import type="com.wireguard.android.activity.TvMainActivity.KeyedFile" />
|
||||
<import type="page.onram.wirevpn.activity.TvMainActivity.KeyedFile" />
|
||||
|
||||
<variable
|
||||
name="isDeleting"
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<variable
|
||||
name="files"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, KeyedFile>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, KeyedFile>" />
|
||||
|
||||
<variable
|
||||
name="filesRoot"
|
||||
@@ -28,15 +28,15 @@
|
||||
|
||||
<variable
|
||||
name="tunnels"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedArrayList<String, ObservableTunnel>" />
|
||||
|
||||
<variable
|
||||
name="tunnelRowConfigurationHandler"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
|
||||
<variable
|
||||
name="filesRowConfigurationHandler"
|
||||
type="com.wireguard.android.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
type="page.onram.wirevpn.databinding.ObservableKeyedRecyclerViewAdapter.RowConfigurationHandler" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.wireguard.android.activity.TvMainActivity.KeyedFile" />
|
||||
<import type="page.onram.wirevpn.activity.TvMainActivity.KeyedFile" />
|
||||
|
||||
<variable
|
||||
name="key"
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<import type="com.wireguard.android.model.ObservableTunnel" />
|
||||
<import type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
|
||||
<import type="com.wireguard.android.backend.Tunnel.State" />
|
||||
<import type="page.onram.wirevpn.backend.Tunnel.State" />
|
||||
|
||||
<variable
|
||||
name="isDeleting"
|
||||
@@ -28,10 +28,10 @@
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="com.wireguard.android.model.ObservableTunnel" />
|
||||
type="page.onram.wirevpn.model.ObservableTunnel" />
|
||||
</data>
|
||||
|
||||
<com.wireguard.android.widget.TvCardView
|
||||
<page.onram.wirevpn.widget.TvCardView
|
||||
android:layout_width="225dp"
|
||||
android:layout_height="110dp"
|
||||
android:layout_margin="8dp"
|
||||
@@ -80,6 +80,6 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.wireguard.android.widget.TvCardView>
|
||||
</page.onram.wirevpn.widget.TvCardView>
|
||||
|
||||
</layout>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
@@ -159,9 +159,8 @@
|
||||
<string name="tv_select_a_storage_drive">تحديد محرك تخزين</string>
|
||||
<string name="tv_no_file_picker">الرجاء تثبيت مدير ملفات لتتمكن من تصفح الملفات</string>
|
||||
<string name="tv_add_tunnel_get_started">أضف نفقاً لتبدأ</string>
|
||||
<string name="donate_title">♥️ تبرع لمشروع وايرجارد</string>
|
||||
<string name="donate_summary">كل مساهمة تساعد</string>
|
||||
<string name="donate_google_play_disappointment">شكرًا لك على دعم مشروع\n\nWireGuard! للأسف، نظرًا لسياسات Google، لا يُسمح لنا بالارتباط بجزء من صفحة الويب الخاصة بالمشروع حيث يمكنك التبرع. نأمل أن تتمكن من معرفة ذلك!\n\nشكرًا مرة أخرى على مساهمتك.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">تعطيل تصدير التكوين</string>
|
||||
<string name="disable_config_export_description">تعطيل تصدير الإعدادات يجعل المفاتيح الخاصة غير متاحة</string>
|
||||
<string name="dns_servers">خوادم DNS</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Seleccioneu un disc d\'emmagatzematge</string>
|
||||
<string name="tv_no_file_picker">Si us plau, instsleu un gestor de fitxers per navegar pels arxius</string>
|
||||
<string name="tv_add_tunnel_get_started">Afegeix un túnel per començar</string>
|
||||
<string name="donate_title">♥ Donar al Projecte WireGuard</string>
|
||||
<string name="donate_summary">Totes les contribucions ajuden</string>
|
||||
<string name="donate_google_play_disappointment">Gràcies per donar suport al Projecte WireGuard!\n\nMalauradament, a causa de les polítiques de Google, no estem permesos a enllaçar a la part del web del projecte on pots realitzar una donació. Esperem que puguis trobar-ho!\n\nGràcies de nou per la teva contribució.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Desactiva l\'exportació de configuracions</string>
|
||||
<string name="disable_config_export_description">Desactivar l\'exportacio de configuracions fa que les claus privades siguin menys accessibles</string>
|
||||
<string name="dns_servers">Servidors DNS</string>
|
||||
|
||||
@@ -133,9 +133,8 @@
|
||||
<string name="tv_select_a_storage_drive">Vyberte úložný disk</string>
|
||||
<string name="tv_no_file_picker">Prosím nainstalujte nástroj pro správu souborů pro procházení souborů</string>
|
||||
<string name="tv_add_tunnel_get_started">Přidejte tunel, abyste mohli začít</string>
|
||||
<string name="donate_title">♥ Přispět na projekt WireGuard</string>
|
||||
<string name="donate_summary">Každý příspěvek pomáhá</string>
|
||||
<string name="donate_google_play_disappointment">Děkujeme, že podporujete projekt WireGuard!\n\nBohužel, kvůli pravidlům Googlu, nám není dovoleno odkazovat na část webové stránky projektu, kde můžete provést dar. Doufáme, že to zvládnete nějakým způsobem!\n\nJeště jednou děkujeme za váš příspěvek.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Zakázat export konfigurace</string>
|
||||
<string name="disable_config_export_description">Zakázání exportu konfigurace ztíží přístup k privátním klíčům</string>
|
||||
<string name="dns_servers">DNS servery</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Vælg et lagerdrev</string>
|
||||
<string name="tv_no_file_picker">Installér venligst et filhåndteringsværktøj til at gennemse filer</string>
|
||||
<string name="tv_add_tunnel_get_started">Tilføj en tunnel for at komme i gang</string>
|
||||
<string name="donate_title">♥ Donér til WireGuard projektet</string>
|
||||
<string name="donate_summary">Et hvert bidrag hjælper</string>
|
||||
<string name="donate_google_play_disappointment">Tak fordi du støttede WireGuard-projektet!\n\nDesværre, på grund af Googles politikker, har vi ikke tilladelse til at linke til den del af projektets webside, hvor du kan donere. Forhåbentlig kan du finde frem til dette!\n\nVi takker igen for dit bidrag.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Deaktivér eksportering af konfiguration</string>
|
||||
<string name="disable_config_export_description">Deaktivering af config eksport gør private nøgler mindre tilgængelige</string>
|
||||
<string name="dns_servers">DNS-servere</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Speicherlaufwerk auswählen</string>
|
||||
<string name="tv_no_file_picker">Bitte installieren Sie ein Dateiverwaltungsprogramm, um Dateien zu durchsuchen</string>
|
||||
<string name="tv_add_tunnel_get_started">Fügen Sie einen Tunnel hinzu, um loszulegen</string>
|
||||
<string name="donate_title">♥ Spende an das WireGuard-Projekt</string>
|
||||
<string name="donate_summary">Jeder Beitrag hilft</string>
|
||||
<string name="donate_google_play_disappointment">Vielen Dank für Ihre Unterstützung des WireGuard-Projekts!\n\nLeider ist es uns aufgrund der Google-Richtlinien nicht gestattet, den Abschnitt der Projekt-Webseite zu verlinken, wo Sie hätten spenden können. Hoffentlich finden Sie das heraus!\n\nNochmals vielen Dank für Ihren Beitrag.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Konfigurationsexport deaktivieren</string>
|
||||
<string name="disable_config_export_description">Durch Deaktivieren des Konfigurationsexports werden private Schlüssel unzugänglicher</string>
|
||||
<string name="dns_servers">DNS-Server</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Selecciones un dispositivo de almacenamiento</string>
|
||||
<string name="tv_no_file_picker">Por favor, instale una herramienta de gestión de archivos para navegar por archivos</string>
|
||||
<string name="tv_add_tunnel_get_started">Agregue un túnel para empezar</string>
|
||||
<string name="donate_title">♥ Donar al Proyecto WireGuard</string>
|
||||
<string name="donate_summary">Todas las contribuciones ayudan</string>
|
||||
<string name="donate_google_play_disappointment">¡Gracias por apoyar el proyecto WireGuard!\n\nLamentablemente, debido a las políticas de Google, no estamos autorizados a enlazar a la parte de la página web del proyecto donde puedes hacer una donación. ¡Esperemos que puedas averiguar esto!\n\nGracias de nuevo por tu contribución.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Inhabilitar la exportación de configuración</string>
|
||||
<string name="disable_config_export_description">Desactivar la exportación de configuración hace que las claves privadas sean menos accesibles</string>
|
||||
<string name="dns_servers">Servidores DNS</string>
|
||||
|
||||
@@ -107,10 +107,7 @@
|
||||
<string name="tv_select_a_storage_drive">Vali salvestusseade</string>
|
||||
<string name="tv_no_file_picker">Failide vaatamiseks paigalda failide haldusvahend</string>
|
||||
<string name="tv_add_tunnel_get_started">Alustamiseks lisa uus tunnel</string>
|
||||
<string name="donate_title">♥ Anneta WireGuard\'i projektile</string>
|
||||
<string name="donate_summary">Iga panus aitab</string>
|
||||
<string name="donate_google_play_disappointment">Aitäh, et toetad WireGuard\'i projekti!\n\nKahjuks ei saa me Google\'i eeskirjade tõttu linkida projekti veebilehele, kus saab annetusi teha. Loodetavasti leiad selle ise!\n\n
|
||||
Aitäh veelkord sinu panuse eest.</string>
|
||||
|
||||
<string name="disable_config_export_title">Keela seadistuste eksportimine</string>
|
||||
<string name="disable_config_export_description">Seadistuste eksportimise keelamine teeb privaatvõtmetele ligipääsu keerulisemaks</string>
|
||||
<string name="dns_servers">DNS-serverid</string>
|
||||
|
||||
@@ -108,9 +108,8 @@
|
||||
<string name="tv_select_a_storage_drive">حافظه ذخیره سازی موردنظر را انتخاب کنید</string>
|
||||
<string name="tv_no_file_picker">برای مدیریت پوشه های حافظه، یک برنامه مدیریت فایل نصب کنید</string>
|
||||
<string name="tv_add_tunnel_get_started">یک پروفایل تونل برای شروع انتخاب کنید</string>
|
||||
<string name="donate_title">♥ کمک مالی به پروژه WireGuard</string>
|
||||
<string name="donate_summary">هر کمک شما تاثیرگذار است</string>
|
||||
<string name="donate_google_play_disappointment">از اینکه از پروژه WireGuard حمایت میکنید متشکریم!\n\nمتأسفانه، به دلیل خطمشیهای Google، ما مجاز به پیوند دادن به بخشی از صفحه وب پروژه که میتوانید در آن کمک مالی کنید، نداریم. امیدواریم بتوانید این را درک کنید!\n\nباز هم از مشارکت شما سپاسگزاریم.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">غیرفعال سازی خروجی گرفتن از پیکربندی ها</string>
|
||||
<string name="disable_config_export_description">غیرفعال سازی خروجی گرفتن، دسترسی به کلیدهای خصوصی را کم می کند</string>
|
||||
<string name="dns_servers">سرورهای DNS</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Sélectionner un disque de stockage</string>
|
||||
<string name="tv_no_file_picker">Veuillez installer un utilitaire de gestion de fichiers pour parcourir les fichiers</string>
|
||||
<string name="tv_add_tunnel_get_started">Ajouter un tunnel pour commencer</string>
|
||||
<string name="donate_title">♥ Faire un don au projet WireGuard</string>
|
||||
<string name="donate_summary">Chaque contribution aide</string>
|
||||
<string name="donate_google_play_disappointment">Merci de votre soutien au projet WireGuard !\n\nMalheureusement, en raisons des politiques de Google, nous ne pouvons pas vous rediriger vers la page vous permettant de faire un don. Heureusement, vous pouvez le trouver par vous-même !\n\nMerci encore pour votre soutien.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Désactiver l\'export de configuration</string>
|
||||
<string name="disable_config_export_description">La désactivation de l\'export de configuration rend les clés privées moins accessibles</string>
|
||||
<string name="dns_servers">Serveurs DNS</string>
|
||||
|
||||
@@ -48,9 +48,8 @@
|
||||
<string name="tv_select_a_storage_drive">Jelöjle ki a mentéshez a meghatjót</string>
|
||||
<string name="tv_no_file_picker">Kérem installáljon egy fájlkezelőt az állományok használatához</string>
|
||||
<string name="tv_add_tunnel_get_started">Add hozzá az indításhoz az alagutat</string>
|
||||
<string name="donate_title">♥ Kérlek támogasd a WireGuard Projectet</string>
|
||||
<string name="donate_summary">Minden hozzájárulás segítség</string>
|
||||
<string name="donate_google_play_disappointment">Köszönjük hogy támogatja a WireGuard projektet!\n\nSajnos a Google szabályai miatt, sajnos nem adhatjuk itt meg a támogatásokat fogadó weboldal linkjét. Remélem ezt ki tudod deríteni!\n\nMégegyszer köszönjük a támogatásod.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">A konfiguráció exportálásának tiltása</string>
|
||||
<string name="disable_config_export_description">Ha letiltja a konfiguráció exportját akkor a privát kulcsok nem lesznek hozzáférhetőek</string>
|
||||
<string name="dns_servers">DNS szerverek</string>
|
||||
|
||||
@@ -94,9 +94,8 @@
|
||||
<string name="tv_select_a_storage_drive">Pilih lokasi penyimpanan</string>
|
||||
<string name="tv_no_file_picker">Silakan instal aplikasi file manajer untuk memilih file</string>
|
||||
<string name="tv_add_tunnel_get_started">Tambahkan tunnel untuk memulai</string>
|
||||
<string name="donate_title">Donasi ke Proyek WireGuard</string>
|
||||
<string name="donate_summary">Setiap kontribusi anda sangat membantu</string>
|
||||
<string name="donate_google_play_disappointment">Terima kasih telah mendung Proyek WireGuard!\n\nAkan tetapi, dikarenakan kebijakan Google, Kami tidak diizinkan untuk menautkan bagian halaman website yang dapat digunakan untuk melakukan donasi. Semoga anda dapat menemukan solusi untuk kendala ini!\n\nTerima kasih sekali lagi atas kontribusi anda.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Nonaktifkan ekspor konfigurasi</string>
|
||||
<string name="disable_config_export_description">Menonaktifkan ekspor konfigurasi akan membuat kunci pribadi sulit diakses</string>
|
||||
<string name="dns_servers">Server DNS</string>
|
||||
|
||||
@@ -107,9 +107,8 @@
|
||||
<string name="tv_select_a_storage_drive">Seleziona un\'unità di archiviazione</string>
|
||||
<string name="tv_no_file_picker">Installa un\'utilità di gestione file per sfogliare i file</string>
|
||||
<string name="tv_add_tunnel_get_started">Aggiungi un tunnel per iniziare</string>
|
||||
<string name="donate_title">♥ Dona al progetto WireGuard</string>
|
||||
<string name="donate_summary">Ogni contributo aiuta</string>
|
||||
<string name="donate_google_play_disappointment">Grazie per il sostegno al progetto WireGuard!\n\nPurtroppo, a causa delle politiche di Google, non siamo autorizzati a linkare la pagina del progetto dove puoi fare una donazione. Speriamo che la troverai!\n\nGrazie ancora per il tuo contributo.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">Disattiva esportazione config</string>
|
||||
<string name="disable_config_export_description">Disabilitare l\'esportazione della configurazione rende le chiavi private meno accessibili</string>
|
||||
<string name="dns_servers">Server DNS</string>
|
||||
|
||||
@@ -94,9 +94,8 @@
|
||||
<string name="tv_select_a_storage_drive">ストレージを選択</string>
|
||||
<string name="tv_no_file_picker">ファイルを参照するにはファイル管理アプリをインストールしてください</string>
|
||||
<string name="tv_add_tunnel_get_started">トンネルを追加して開始する</string>
|
||||
<string name="donate_title">♥ WireGuard プロジェクトに寄付する</string>
|
||||
<string name="donate_summary">すべての貢献が役立ちます</string>
|
||||
<string name="donate_google_play_disappointment">WireGuard プロジェクトを支援していただきありがとうございます!\n\n残念ながら、Google のポリシーの影響で寄付のページへのリンクを記載することができません。見つけていただけることを願っています。\n\nもう一度、あなたの貢献に深く感謝します。</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">設定のエクスポートを無効にする</string>
|
||||
<string name="disable_config_export_description">設定のエクスポートを無効にすると、秘密鍵にアクセスされにくくなります</string>
|
||||
<string name="dns_servers">DNS サーバ</string>
|
||||
|
||||
@@ -94,9 +94,8 @@
|
||||
<string name="tv_select_a_storage_drive">저장소를 선택</string>
|
||||
<string name="tv_no_file_picker">파일을 찾는 데 사용할 파일 관리자를 설치하시오</string>
|
||||
<string name="tv_add_tunnel_get_started">시작하려면 터널을 추가하시오</string>
|
||||
<string name="donate_title">♥ WireGuard 프로젝트에 기부해주세요</string>
|
||||
<string name="donate_summary">모든 기여가 도움이 됩니다</string>
|
||||
<string name="donate_google_play_disappointment">WireGuard 프로젝트를 지원해 주셔서 감사합니다!\n\n안타깝게도 Google 정책으로 인해 프로젝트 웹페이지에서 기부할 수 있는 부분에 대한 링크가 허용되지 않습니다. 이 문제를 해결할 수 있기를 바랍니다!\n\n기여해 주셔서 다시 한번 감사드립니다.</string>
|
||||
|
||||
|
||||
<string name="disable_config_export_title">설정 내보내기 기능을 중지</string>
|
||||
<string name="disable_config_export_description">설정 내보내기 기능을 중지하면 개인키 유출을 줄일 수 있음</string>
|
||||
<string name="dns_servers">DNS 서버</string>
|
||||
|
||||