Skip to content

Commit c6cf0b8

Browse files
authored
Merge 5dce724 into 23d6b12
2 parents 23d6b12 + 5dce724 commit c6cf0b8

File tree

19 files changed

+315
-3
lines changed

19 files changed

+315
-3
lines changed

sentry-android-core/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ dependencies {
7777
compileOnly(projects.sentryAndroidTimber)
7878
compileOnly(projects.sentryAndroidReplay)
7979
compileOnly(projects.sentryCompose)
80+
compileOnly(projects.sentryAndroidDistribution)
8081

8182
// lifecycle processor, session tracking
8283
implementation(libs.androidx.lifecycle.common.java8)

sentry-android-core/proguard-rules.pro

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,8 @@
7878
-dontwarn io.sentry.android.replay.DefaultReplayBreadcrumbConverter
7979
-keepnames class io.sentry.android.replay.ReplayIntegration
8080
##---------------End: proguard configuration for sentry-android-replay ----------
81+
82+
##---------------Begin: proguard configuration for sentry-android-distribution ----------
83+
-dontwarn io.sentry.android.distribution.internal.DistributionIntegration
84+
-keepnames class io.sentry.android.distribution.internal.DistributionIntegration
85+
##---------------End: proguard configuration for sentry-android-distribution ----------

sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import io.sentry.android.core.internal.util.AndroidThreadChecker;
3333
import io.sentry.android.core.internal.util.SentryFrameMetricsCollector;
3434
import io.sentry.android.core.performance.AppStartMetrics;
35+
import io.sentry.android.distribution.internal.DistributionIntegration;
3536
import io.sentry.android.fragment.FragmentLifecycleIntegration;
3637
import io.sentry.android.replay.DefaultReplayBreadcrumbConverter;
3738
import io.sentry.android.replay.ReplayIntegration;
@@ -321,7 +322,8 @@ static void installDefaultIntegrations(
321322
final @NotNull ActivityFramesTracker activityFramesTracker,
322323
final boolean isFragmentAvailable,
323324
final boolean isTimberAvailable,
324-
final boolean isReplayAvailable) {
325+
final boolean isReplayAvailable,
326+
final boolean isDistributionAvailable) {
325327

326328
// Integration MUST NOT cache option values in ctor, as they will be configured later by the
327329
// user
@@ -391,6 +393,9 @@ static void installDefaultIntegrations(
391393
options.addIntegration(replay);
392394
options.setReplayController(replay);
393395
}
396+
if (isDistributionAvailable) {
397+
options.addIntegration(new DistributionIntegration());
398+
}
394399
options
395400
.getFeedbackOptions()
396401
.setDialogHandler(new SentryAndroidOptions.AndroidUserFeedbackIDialogHandler());

sentry-android-core/src/main/java/io/sentry/android/core/SentryAndroid.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ public final class SentryAndroid {
4141
static final String SENTRY_REPLAY_INTEGRATION_CLASS_NAME =
4242
"io.sentry.android.replay.ReplayIntegration";
4343

44+
static final String SENTRY_DISTRIBUTION_INTEGRATION_CLASS_NAME =
45+
"io.sentry.android.distribution.internal.DistributionIntegration";
46+
4447
private static final String TIMBER_CLASS_NAME = "timber.log.Timber";
4548
private static final String FRAGMENT_CLASS_NAME =
4649
"androidx.fragment.app.FragmentManager$FragmentLifecycleCallbacks";
@@ -111,6 +114,8 @@ public static void init(
111114
&& classLoader.isClassAvailable(SENTRY_TIMBER_INTEGRATION_CLASS_NAME, options));
112115
final boolean isReplayAvailable =
113116
classLoader.isClassAvailable(SENTRY_REPLAY_INTEGRATION_CLASS_NAME, options);
117+
final boolean isDistributionAvailable =
118+
classLoader.isClassAvailable(SENTRY_DISTRIBUTION_INTEGRATION_CLASS_NAME, options);
114119

115120
final BuildInfoProvider buildInfoProvider = new BuildInfoProvider(logger);
116121
final io.sentry.util.LoadClass loadClass = new io.sentry.util.LoadClass();
@@ -131,7 +136,8 @@ public static void init(
131136
activityFramesTracker,
132137
isFragmentAvailable,
133138
isTimberAvailable,
134-
isReplayAvailable);
139+
isReplayAvailable,
140+
isDistributionAvailable);
135141

136142
try {
137143
configuration.configure(options);

sentry-android-core/src/test/java/io/sentry/android/core/AndroidContinuousProfilerTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ class AndroidContinuousProfilerTest {
124124
false,
125125
false,
126126
false,
127+
false,
127128
)
128129

129130
AndroidOptionsInitializer.initializeIntegrationsAndProcessors(

sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ class AndroidOptionsInitializerTest {
105105
false,
106106
false,
107107
false,
108+
false,
108109
)
109110

110111
sentryOptions.configureOptions()
@@ -149,6 +150,7 @@ class AndroidOptionsInitializerTest {
149150
isFragmentAvailable,
150151
isTimberAvailable,
151152
isReplayAvailable,
153+
false,
152154
)
153155

154156
AndroidOptionsInitializer.initializeIntegrationsAndProcessors(
@@ -820,6 +822,7 @@ class AndroidOptionsInitializerTest {
820822
false,
821823
false,
822824
false,
825+
false,
823826
)
824827
verify(mockOptions, never()).outboxPath
825828
verify(mockOptions, never()).cacheDirPath

sentry-android-core/src/test/java/io/sentry/android/core/AndroidProfilerTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ class AndroidProfilerTest {
127127
false,
128128
false,
129129
false,
130+
false,
130131
)
131132

132133
AndroidOptionsInitializer.initializeIntegrationsAndProcessors(

sentry-android-core/src/test/java/io/sentry/android/core/AndroidTransactionProfilerTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ class AndroidTransactionProfilerTest {
143143
false,
144144
false,
145145
false,
146+
false,
146147
)
147148

148149
AndroidOptionsInitializer.initializeIntegrationsAndProcessors(

sentry-android-core/src/test/java/io/sentry/android/core/SentryInitProviderTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ class SentryInitProviderTest {
160160
false,
161161
false,
162162
false,
163+
false,
163164
)
164165

165166
AndroidOptionsInitializer.initializeIntegrationsAndProcessors(
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,89 @@
11
public final class io/sentry/android/distribution/Distribution {
2+
public static final field INSTANCE Lio/sentry/android/distribution/Distribution;
3+
public final fun checkForUpdate (Landroid/content/Context;)Lio/sentry/android/distribution/UpdateStatus;
4+
public final fun checkForUpdateCompletableFuture (Landroid/content/Context;)Ljava/util/concurrent/CompletableFuture;
5+
public final fun downloadUpdate (Landroid/content/Context;Lio/sentry/android/distribution/UpdateInfo;)V
6+
public final fun init (Landroid/content/Context;Lio/sentry/android/distribution/DistributionOptions;)V
7+
public final fun isEnabled ()Z
8+
}
9+
10+
public final class io/sentry/android/distribution/DistributionContentProvider : android/content/ContentProvider {
211
public fun <init> ()V
12+
public fun delete (Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
13+
public fun getType (Landroid/net/Uri;)Ljava/lang/String;
14+
public fun insert (Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
15+
public fun onCreate ()Z
16+
public fun query (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
17+
public fun update (Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
18+
}
19+
20+
public final class io/sentry/android/distribution/DistributionOptions {
21+
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
22+
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
23+
public final fun component1 ()Ljava/lang/String;
24+
public final fun component2 ()Ljava/lang/String;
25+
public final fun component3 ()Ljava/lang/String;
26+
public final fun component4 ()Ljava/lang/String;
27+
public final fun component5 ()Ljava/lang/String;
28+
public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/sentry/android/distribution/DistributionOptions;
29+
public static synthetic fun copy$default (Lio/sentry/android/distribution/DistributionOptions;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/android/distribution/DistributionOptions;
30+
public fun equals (Ljava/lang/Object;)Z
31+
public final fun getBuildConfiguration ()Ljava/lang/String;
32+
public final fun getOrgAuthToken ()Ljava/lang/String;
33+
public final fun getOrganizationSlug ()Ljava/lang/String;
34+
public final fun getProjectSlug ()Ljava/lang/String;
35+
public final fun getSentryBaseUrl ()Ljava/lang/String;
36+
public fun hashCode ()I
37+
public fun toString ()Ljava/lang/String;
38+
}
39+
40+
public final class io/sentry/android/distribution/UpdateInfo {
41+
public fun <init> (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
42+
public final fun component1 ()Ljava/lang/String;
43+
public final fun component2 ()Ljava/lang/String;
44+
public final fun component3 ()I
45+
public final fun component4 ()Ljava/lang/String;
46+
public final fun component5 ()Ljava/lang/String;
47+
public final fun component6 ()Ljava/lang/String;
48+
public final fun copy (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/sentry/android/distribution/UpdateInfo;
49+
public static synthetic fun copy$default (Lio/sentry/android/distribution/UpdateInfo;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/android/distribution/UpdateInfo;
50+
public fun equals (Ljava/lang/Object;)Z
51+
public final fun getAppName ()Ljava/lang/String;
52+
public final fun getBuildNumber ()I
53+
public final fun getBuildVersion ()Ljava/lang/String;
54+
public final fun getCreatedDate ()Ljava/lang/String;
55+
public final fun getDownloadUrl ()Ljava/lang/String;
56+
public final fun getId ()Ljava/lang/String;
57+
public fun hashCode ()I
58+
public fun toString ()Ljava/lang/String;
59+
}
60+
61+
public abstract class io/sentry/android/distribution/UpdateStatus {
62+
}
63+
64+
public final class io/sentry/android/distribution/UpdateStatus$Error : io/sentry/android/distribution/UpdateStatus {
65+
public fun <init> (Ljava/lang/String;)V
66+
public final fun component1 ()Ljava/lang/String;
67+
public final fun copy (Ljava/lang/String;)Lio/sentry/android/distribution/UpdateStatus$Error;
68+
public static synthetic fun copy$default (Lio/sentry/android/distribution/UpdateStatus$Error;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/android/distribution/UpdateStatus$Error;
69+
public fun equals (Ljava/lang/Object;)Z
70+
public final fun getMessage ()Ljava/lang/String;
71+
public fun hashCode ()I
72+
public fun toString ()Ljava/lang/String;
73+
}
74+
75+
public final class io/sentry/android/distribution/UpdateStatus$NewRelease : io/sentry/android/distribution/UpdateStatus {
76+
public fun <init> (Lio/sentry/android/distribution/UpdateInfo;)V
77+
public final fun component1 ()Lio/sentry/android/distribution/UpdateInfo;
78+
public final fun copy (Lio/sentry/android/distribution/UpdateInfo;)Lio/sentry/android/distribution/UpdateStatus$NewRelease;
79+
public static synthetic fun copy$default (Lio/sentry/android/distribution/UpdateStatus$NewRelease;Lio/sentry/android/distribution/UpdateInfo;ILjava/lang/Object;)Lio/sentry/android/distribution/UpdateStatus$NewRelease;
80+
public fun equals (Ljava/lang/Object;)Z
81+
public final fun getInfo ()Lio/sentry/android/distribution/UpdateInfo;
82+
public fun hashCode ()I
83+
public fun toString ()Ljava/lang/String;
84+
}
85+
86+
public final class io/sentry/android/distribution/UpdateStatus$UpToDate : io/sentry/android/distribution/UpdateStatus {
87+
public static final field INSTANCE Lio/sentry/android/distribution/UpdateStatus$UpToDate;
388
}
489

0 commit comments

Comments
 (0)