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"/>
+
+
diff --git a/sentry-samples/sentry-samples-android/src/main/res/values/strings.xml b/sentry-samples/sentry-samples-android/src/main/res/values/strings.xml
index 391248c9870..fe984bbff13 100644
--- a/sentry-samples/sentry-samples-android/src/main/res/values/strings.xml
+++ b/sentry-samples/sentry-samples-android/src/main/res/values/strings.xml
@@ -29,6 +29,7 @@
Throw exception in coroutine
Enable Replay Debug Mode
Show Dialog
+ Check for Update
Back to Main Activity
text
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nibh lorem, venenatis sed nulla vel, venenatis sodales augue. Mauris varius elit eu ligula volutpat, sed tincidunt orci porttitor. Donec et dignissim lacus, sed luctus ipsum. Praesent ornare luctus tortor sit amet ultricies. Cras iaculis et diam et vulputate. Cras ut iaculis mauris, non pellentesque diam. Nunc in laoreet diam, vitae accumsan eros. Morbi non nunc ac eros molestie placerat vitae id dolor. Quisque ornare aliquam ipsum, a dapibus tortor. In eu sodales tellus.