diff --git a/V2rayNG/app/src/main/AndroidManifest.xml b/V2rayNG/app/src/main/AndroidManifest.xml
index 4ff08af9..00e4b747 100644
--- a/V2rayNG/app/src/main/AndroidManifest.xml
+++ b/V2rayNG/app/src/main/AndroidManifest.xml
@@ -144,6 +144,9 @@
+
diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/AboutActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/AboutActivity.kt
index dfd26352..1931cb45 100644
--- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/AboutActivity.kt
+++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/AboutActivity.kt
@@ -5,28 +5,21 @@ import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.util.Log
-import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
-import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
-import androidx.lifecycle.lifecycleScope
import com.tencent.mmkv.MMKV
import com.v2ray.ang.AppConfig
import com.v2ray.ang.BuildConfig
import com.v2ray.ang.R
import com.v2ray.ang.databinding.ActivityAboutBinding
-import com.v2ray.ang.dto.CheckUpdateResult
import com.v2ray.ang.extension.toast
import com.v2ray.ang.extension.toastError
import com.v2ray.ang.extension.toastSuccess
import com.v2ray.ang.handler.MmkvManager
import com.v2ray.ang.handler.SpeedtestManager
-import com.v2ray.ang.handler.UpdateCheckerManager
-import com.v2ray.ang.util.AppManagerUtil
import com.v2ray.ang.util.Utils
import com.v2ray.ang.util.ZipUtil
-import kotlinx.coroutines.launch
import java.io.File
import java.text.SimpleDateFormat
import java.util.Locale
@@ -105,23 +98,6 @@ class AboutActivity : BaseActivity() {
}
}
- //If it is the Google Play version, not be displayed within 1 days after update
-// if (Utils.isGoogleFlavor()) {
-// val lastUpdateTime = AppManagerUtil.getLastUpdateTime(this)
-// val currentTime = System.currentTimeMillis()
-// if ((currentTime - lastUpdateTime) < 1 * 24 * 60 * 60 * 1000L) {
-// binding.layoutCheckUpdate.visibility = View.GONE
-// }
-// }
- binding.layoutCheckUpdate.setOnClickListener {
- checkForUpdates(binding.checkPreRelease.isChecked)
- }
-
- binding.checkPreRelease.setOnCheckedChangeListener { _, isChecked ->
- MmkvManager.encodeSettings(AppConfig.PREF_CHECK_UPDATE_PRE_RELEASE, isChecked)
- }
- binding.checkPreRelease.isChecked = MmkvManager.decodeSettingsBool(AppConfig.PREF_CHECK_UPDATE_PRE_RELEASE, false)
-
binding.layoutSoureCcode.setOnClickListener {
Utils.openUri(this, AppConfig.APP_URL)
}
@@ -222,28 +198,4 @@ class AboutActivity : BaseActivity() {
}
}
}
-
- private fun checkForUpdates(includePreRelease: Boolean) {
- lifecycleScope.launch {
- val result = UpdateCheckerManager.checkForUpdate(includePreRelease)
- if (result.hasUpdate) {
- showUpdateDialog(result)
- } else {
- toast(R.string.update_already_latest_version)
- }
- }
- }
-
- private fun showUpdateDialog(result: CheckUpdateResult) {
- AlertDialog.Builder(this)
- .setTitle(getString(R.string.update_new_version_found, result.latestVersion))
- .setMessage(result.releaseNotes)
- .setPositiveButton(R.string.update_now) { _, _ ->
- result.downloadUrl?.let {
- Utils.openUri(this, it)
- }
- }
- .setNegativeButton(android.R.string.cancel, null)
- .show()
- }
}
\ No newline at end of file
diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/CheckUpdateActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/CheckUpdateActivity.kt
new file mode 100644
index 00000000..8f464a49
--- /dev/null
+++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/CheckUpdateActivity.kt
@@ -0,0 +1,70 @@
+package com.v2ray.ang.ui
+
+import android.os.Bundle
+import androidx.appcompat.app.AlertDialog
+import androidx.lifecycle.lifecycleScope
+import com.v2ray.ang.AppConfig
+import com.v2ray.ang.BuildConfig
+import com.v2ray.ang.R
+import com.v2ray.ang.databinding.ActivityCheckUpdateBinding
+import com.v2ray.ang.dto.CheckUpdateResult
+import com.v2ray.ang.extension.toast
+import com.v2ray.ang.extension.toastSuccess
+import com.v2ray.ang.handler.MmkvManager
+import com.v2ray.ang.handler.SpeedtestManager
+import com.v2ray.ang.handler.UpdateCheckerManager
+import com.v2ray.ang.util.Utils
+import kotlinx.coroutines.launch
+
+class CheckUpdateActivity : BaseActivity() {
+
+ private val binding by lazy { ActivityCheckUpdateBinding.inflate(layoutInflater) }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(binding.root)
+
+ title = getString(R.string.update_check_for_update)
+
+ binding.layoutCheckUpdate.setOnClickListener {
+ checkForUpdates(binding.checkPreRelease.isChecked)
+ }
+
+ binding.checkPreRelease.setOnCheckedChangeListener { _, isChecked ->
+ MmkvManager.encodeSettings(AppConfig.PREF_CHECK_UPDATE_PRE_RELEASE, isChecked)
+ }
+ binding.checkPreRelease.isChecked = MmkvManager.decodeSettingsBool(AppConfig.PREF_CHECK_UPDATE_PRE_RELEASE, false)
+
+ "v${BuildConfig.VERSION_NAME} (${SpeedtestManager.getLibVersion()})".also {
+ binding.tvVersion.text = it
+ }
+
+ checkForUpdates(binding.checkPreRelease.isChecked)
+ }
+
+ private fun checkForUpdates(includePreRelease: Boolean) {
+ toast(R.string.update_checking_for_update)
+
+ lifecycleScope.launch {
+ val result = UpdateCheckerManager.checkForUpdate(includePreRelease)
+ if (result.hasUpdate) {
+ showUpdateDialog(result)
+ } else {
+ toastSuccess(R.string.update_already_latest_version)
+ }
+ }
+ }
+
+ private fun showUpdateDialog(result: CheckUpdateResult) {
+ AlertDialog.Builder(this)
+ .setTitle(getString(R.string.update_new_version_found, result.latestVersion))
+ .setMessage(result.releaseNotes)
+ .setPositiveButton(R.string.update_now) { _, _ ->
+ result.downloadUrl?.let {
+ Utils.openUri(this, it)
+ }
+ }
+ .setNegativeButton(android.R.string.cancel, null)
+ .show()
+ }
+}
\ No newline at end of file
diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt
index bb9abc68..0c7584d8 100644
--- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt
+++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt
@@ -685,6 +685,7 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
R.id.promotion -> Utils.openUri(this, "${Utils.decode(AppConfig.APP_PROMOTION_URL)}?t=${System.currentTimeMillis()}")
R.id.logcat -> startActivity(Intent(this, LogcatActivity::class.java))
+ R.id.check_for_update -> startActivity(Intent(this, CheckUpdateActivity::class.java))
R.id.about -> startActivity(Intent(this, AboutActivity::class.java))
}
diff --git a/V2rayNG/app/src/main/res/layout/activity_about.xml b/V2rayNG/app/src/main/res/layout/activity_about.xml
index d4596963..62053559 100644
--- a/V2rayNG/app/src/main/res/layout/activity_about.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_about.xml
@@ -111,49 +111,6 @@
android:orientation="vertical"
android:paddingTop="@dimen/padding_spacing_dp16">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/V2rayNG/app/src/main/res/menu/menu_drawer.xml b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
index c134759d..4e204e62 100644
--- a/V2rayNG/app/src/main/res/menu/menu_drawer.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
@@ -35,6 +35,10 @@
android:id="@+id/logcat"
android:icon="@drawable/ic_logcat_24dp"
android:title="@string/title_logcat" />
+
- New version found: %s
Update now
Check Pre-release
+ Checking for update…
- رمز استجابة سريعة (QRcode)
diff --git a/V2rayNG/app/src/main/res/values-bn/strings.xml b/V2rayNG/app/src/main/res/values-bn/strings.xml
index 4520f2e2..bd7c492f 100644
--- a/V2rayNG/app/src/main/res/values-bn/strings.xml
+++ b/V2rayNG/app/src/main/res/values-bn/strings.xml
@@ -315,6 +315,7 @@
New version found: %s
Update now
Check Pre-release
+ Checking for update…
- QR কোড
diff --git a/V2rayNG/app/src/main/res/values-bqi-rIR/strings.xml b/V2rayNG/app/src/main/res/values-bqi-rIR/strings.xml
index 45dc5158..73a89fa3 100644
--- a/V2rayNG/app/src/main/res/values-bqi-rIR/strings.xml
+++ b/V2rayNG/app/src/main/res/values-bqi-rIR/strings.xml
@@ -324,6 +324,7 @@
نوسخه نۊ ن جوست: %s
سکو ورۊ رسۊوی کۊنین
واجۊری نوسخه یل پؽش ز تیجنیڌن
+ Checking for update…
- QRcode
diff --git a/V2rayNG/app/src/main/res/values-fa/strings.xml b/V2rayNG/app/src/main/res/values-fa/strings.xml
index 1341f182..b5455fbb 100644
--- a/V2rayNG/app/src/main/res/values-fa/strings.xml
+++ b/V2rayNG/app/src/main/res/values-fa/strings.xml
@@ -321,6 +321,7 @@
نسخه جدید پیدا شد: %s
اکنون به روز رسانی کنید
بررسی نسخه پیش از انتشار
+ Checking for update…
- QRcode
diff --git a/V2rayNG/app/src/main/res/values-ru/strings.xml b/V2rayNG/app/src/main/res/values-ru/strings.xml
index cc56161b..615a33d8 100644
--- a/V2rayNG/app/src/main/res/values-ru/strings.xml
+++ b/V2rayNG/app/src/main/res/values-ru/strings.xml
@@ -323,6 +323,7 @@
Найдена новая версия: %s
Обновить
Искать предварительный выпуск
+ Checking for update…
- QR-код
diff --git a/V2rayNG/app/src/main/res/values-vi/strings.xml b/V2rayNG/app/src/main/res/values-vi/strings.xml
index ac247ce0..72cdee64 100644
--- a/V2rayNG/app/src/main/res/values-vi/strings.xml
+++ b/V2rayNG/app/src/main/res/values-vi/strings.xml
@@ -317,6 +317,7 @@
New version found: %s
Update now
Check Pre-release
+ Checking for update…
- Xuất ra mã QR (Chụp màn hình để lưu)
diff --git a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
index 38303d49..a0aa7a5a 100644
--- a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
@@ -315,6 +315,7 @@
发现新版本: %s
立即更新
检查 Pre-release
+ 正在检查更新中…
- 二维码
diff --git a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
index 959312e9..e655e18f 100644
--- a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
@@ -315,6 +315,7 @@
發現新版本: %s
立即更新
檢查 Pre-release
+ 正在檢查更新中…
- QR Code
diff --git a/V2rayNG/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml
index 069dcfc7..39defc59 100644
--- a/V2rayNG/app/src/main/res/values/strings.xml
+++ b/V2rayNG/app/src/main/res/values/strings.xml
@@ -325,6 +325,7 @@
New version found: %s
Update now
Check Pre-release
+ Checking for update…
- QRcode