diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2023-05-04 16:45:01 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2023-05-04 16:45:01 +0200 |
commit | cf4fca8086858319f1b395c9059c67b436222cbb (patch) | |
tree | ddbda52a84b59c779e8bb46f0e8c0b2a3c1d0675 /ui/src/main/java/com/wireguard/android/updater/Updater.kt | |
parent | README: account for java version updates (diff) | |
download | wireguard-android-cf4fca8086858319f1b395c9059c67b436222cbb.tar.xz wireguard-android-cf4fca8086858319f1b395c9059c67b436222cbb.zip |
gradle: remove runtime detection of play store
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/updater/Updater.kt | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/ui/src/main/java/com/wireguard/android/updater/Updater.kt b/ui/src/main/java/com/wireguard/android/updater/Updater.kt index d0bd18a1..aa3256d4 100644 --- a/ui/src/main/java/com/wireguard/android/updater/Updater.kt +++ b/ui/src/main/java/com/wireguard/android/updater/Updater.kt @@ -17,6 +17,7 @@ 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 kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -360,7 +361,7 @@ object Updater { } fun monitorForUpdates() { - if (installerIsGooglePlay()) + if (BuildConfig.IS_GOOGLE_PLAY) return updaterScope.launch { @@ -400,21 +401,34 @@ object Updater { }.launchIn(Application.getCoroutineScope()) } - fun installer(): String { - val context = Application.get().applicationContext - return try { - val packageName = context.packageName - val pm = context.packageManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - pm.getInstallSourceInfo(packageName).installingPackageName ?: "" - } else { - @Suppress("DEPRECATION") - pm.getInstallerPackageName(packageName) ?: "" + class AppUpdatedReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (BuildConfig.IS_GOOGLE_PLAY) + return + + if (intent.action != Intent.ACTION_MY_PACKAGE_REPLACED) + return + + val installer = try { + val packageName = context.packageName + val pm = context.packageManager + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + pm.getInstallSourceInfo(packageName).installingPackageName ?: "" + } else { + @Suppress("DEPRECATION") + pm.getInstallerPackageName(packageName) ?: "" + } + } catch (_: Throwable) { + "" } - } catch (_: Throwable) { - "" + if (installer != context.packageName) + return + + /* TODO: does not work because of restrictions placed on broadcast receivers. */ + val start = Intent(context, MainActivity::class.java) + start.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(start) } } - - fun installerIsGooglePlay(): Boolean = installer() == "com.android.vending" }
\ No newline at end of file |