diff --git a/sentry-samples/sentry-samples-android/build.gradle.kts b/sentry-samples/sentry-samples-android/build.gradle.kts index 56f270d235b..acec6ac809c 100644 --- a/sentry-samples/sentry-samples-android/build.gradle.kts +++ b/sentry-samples/sentry-samples-android/build.gradle.kts @@ -150,6 +150,7 @@ dependencies { implementation(libs.sentry.native.ndk) implementation(libs.timber) + debugImplementation(projects.sentryAndroidDistribution) debugImplementation(libs.leakcanary) } diff --git a/sentry-samples/sentry-samples-android/src/main/java/io/sentry/samples/android/MainActivity.java b/sentry-samples/sentry-samples-android/src/main/java/io/sentry/samples/android/MainActivity.java index 1b9acc3c267..824bef1ebab 100644 --- a/sentry-samples/sentry-samples-android/src/main/java/io/sentry/samples/android/MainActivity.java +++ b/sentry-samples/sentry-samples-android/src/main/java/io/sentry/samples/android/MainActivity.java @@ -5,12 +5,14 @@ import android.content.res.Configuration; import android.os.Bundle; import android.os.Handler; +import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import io.sentry.Attachment; import io.sentry.ISpan; import io.sentry.MeasurementUnit; import io.sentry.Sentry; +import io.sentry.UpdateStatus; import io.sentry.instrumentation.file.SentryFileOutputStream; import io.sentry.protocol.Feedback; import io.sentry.protocol.User; @@ -304,6 +306,40 @@ public void run() { Sentry.replay().enableDebugMaskingOverlay(); }); + binding.checkForUpdate.setOnClickListener( + view -> { + Toast.makeText(this, "Checking for updates...", Toast.LENGTH_SHORT).show(); + Sentry.distribution() + .checkForUpdate( + result -> { + runOnUiThread( + () -> { + String message; + if (result instanceof UpdateStatus.NewRelease) { + UpdateStatus.NewRelease newRelease = (UpdateStatus.NewRelease) result; + message = + "Update available: " + + newRelease.getInfo().getBuildVersion() + + " (Build " + + newRelease.getInfo().getBuildNumber() + + ")\nDownload URL: " + + newRelease.getInfo().getDownloadUrl(); + } else if (result instanceof UpdateStatus.UpToDate) { + message = "App is up to date!"; + } else if (result instanceof UpdateStatus.NoNetwork) { + UpdateStatus.NoNetwork noNetwork = (UpdateStatus.NoNetwork) result; + message = "No network connection: " + noNetwork.getMessage(); + } else if (result instanceof UpdateStatus.UpdateError) { + UpdateStatus.UpdateError error = (UpdateStatus.UpdateError) result; + message = "Error checking for updates: " + error.getMessage(); + } else { + message = "Unknown status"; + } + Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + }); + }); + }); + setContentView(binding.getRoot()); } diff --git a/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml b/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml index d2eda41a387..0083fae8f93 100644 --- a/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml +++ b/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml @@ -170,6 +170,12 @@ android:layout_height="wrap_content" android:text="@string/enable_replay_debug_mode"/> +