Skip to content

Commit bcc4ebe

Browse files
runningcodeclaude
andauthored
ref(android)!: Mark sentry-android-core classes final (#6494)
* ref(android)!: Mark sentry-android-core classes final Error Prone's Nopen check requires every class to be final, abstract or @OPEN. It never ran on sentry-android-core, so 42 classes were left open. None of them is subclassed except ActivityLifecycleCallbacksAdapter, which becomes abstract since it is only extended, never instantiated. The protected members of the classes that are now final become package-private, as nothing can subclass them anymore. BREAKING CHANGE: AnrV2Integration, AnrProfilingIntegration, SentryUserFeedbackForm and its Builder, WindowContentChangedCallback and several internal classes can no longer be subclassed. ActivityLifecycleCallbacksAdapter can no longer be instantiated directly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * changelog Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ref(android)!: Adapt the final classes to main's deprecated feedback APIs On main, the deprecated SentryUserFeedbackDialog and its Builder still extend SentryUserFeedbackForm and its Builder, so those two stay @OPEN until the dialog is removed. The deprecated SentryUserFeedbackButton and SentryUserFeedbackDialog.Builder become final. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 76d7a36 commit bcc4ebe

38 files changed

Lines changed: 83 additions & 89 deletions

‎CHANGELOG.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
## Unreleased
99

10+
### Breaking Changes
11+
12+
- Android: `AnrV2Integration`, `AnrProfilingIntegration`, `WindowContentChangedCallback`, the deprecated `SentryUserFeedbackButton` and `SentryUserFeedbackDialog.Builder`, and the internal `sentry-android-core` classes are now `final`, and `ActivityLifecycleCallbacksAdapter` is now `abstract` ([#6494](https://github.com/getsentry/sentry-java/pull/6494))
13+
1014
### Features
1115

1216
- Connect Android traces with web content in a `WebView` using `SentryWebViewTracing.addTracePropagation(webView, "example.com")` ([#6395](https://github.com/getsentry/sentry-java/pull/6395))

‎sentry-android-core/api/sentry-android-core.api‎

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public final class io/sentry/android/core/ActivityLifecycleIntegration : android
4040
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
4141
}
4242

43-
public class io/sentry/android/core/AndroidContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
43+
public final class io/sentry/android/core/AndroidContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
4444
public fun <init> (Lio/sentry/android/core/BuildInfoProvider;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/ILogger;Ljava/lang/String;ILio/sentry/util/LazyEvaluator$Evaluator;)V
4545
public fun close (Z)V
4646
public fun getChunkId ()Lio/sentry/protocol/SentryId;
@@ -100,7 +100,7 @@ public final class io/sentry/android/core/AndroidLoggerBatchProcessorFactory : i
100100
public fun create (Lio/sentry/SentryOptions;Lio/sentry/SentryClient;)Lio/sentry/logger/ILoggerBatchProcessor;
101101
}
102102

103-
public class io/sentry/android/core/AndroidMemoryCollector : io/sentry/IPerformanceSnapshotCollector {
103+
public final class io/sentry/android/core/AndroidMemoryCollector : io/sentry/IPerformanceSnapshotCollector {
104104
public fun <init> ()V
105105
public fun collect (Lio/sentry/PerformanceCollectionData;)V
106106
public fun setup ()V
@@ -118,15 +118,14 @@ public final class io/sentry/android/core/AndroidMetricsBatchProcessorFactory :
118118
public fun create (Lio/sentry/SentryOptions;Lio/sentry/SentryClient;)Lio/sentry/metrics/IMetricsBatchProcessor;
119119
}
120120

121-
public class io/sentry/android/core/AndroidProfiler {
122-
protected final field lock Lio/sentry/util/AutoClosableReentrantLock;
121+
public final class io/sentry/android/core/AndroidProfiler {
123122
public fun <init> (Ljava/lang/String;ILio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/util/LazyEvaluator$Evaluator;Lio/sentry/ILogger;)V
124123
public fun close ()V
125124
public fun endAndCollect (ZLjava/util/List;)Lio/sentry/android/core/AndroidProfiler$ProfileEndData;
126125
public fun start ()Lio/sentry/android/core/AndroidProfiler$ProfileStartData;
127126
}
128127

129-
public class io/sentry/android/core/AndroidProfiler$ProfileEndData {
128+
public final class io/sentry/android/core/AndroidProfiler$ProfileEndData {
130129
public final field didTimeout Z
131130
public final field endCpuMillis J
132131
public final field endNanos J
@@ -135,7 +134,7 @@ public class io/sentry/android/core/AndroidProfiler$ProfileEndData {
135134
public fun <init> (JJZLjava/io/File;Ljava/util/Map;)V
136135
}
137136

138-
public class io/sentry/android/core/AndroidProfiler$ProfileStartData {
137+
public final class io/sentry/android/core/AndroidProfiler$ProfileStartData {
139138
public final field startCpuMillis J
140139
public final field startNanos J
141140
public final field startTimestamp Ljava/util/Date;
@@ -159,7 +158,7 @@ public final class io/sentry/android/core/AnrIntegrationFactory {
159158
public static fun create (Landroid/content/Context;Lio/sentry/android/core/BuildInfoProvider;)Lio/sentry/Integration;
160159
}
161160

162-
public class io/sentry/android/core/AnrV2Integration : io/sentry/Integration, java/io/Closeable {
161+
public final class io/sentry/android/core/AnrV2Integration : io/sentry/Integration, java/io/Closeable {
163162
public fun <init> (Landroid/content/Context;)V
164163
public fun close ()V
165164
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
@@ -270,7 +269,7 @@ public final class io/sentry/android/core/ContextUtils {
270269
public static fun isForegroundImportance ()Z
271270
}
272271

273-
public class io/sentry/android/core/CurrentActivityHolder {
272+
public final class io/sentry/android/core/CurrentActivityHolder {
274273
public fun clearActivity ()V
275274
public fun clearActivity (Landroid/app/Activity;)V
276275
public fun getActivity ()Landroid/app/Activity;
@@ -388,7 +387,7 @@ public final class io/sentry/android/core/NetworkBreadcrumbsIntegration : io/sen
388387
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
389388
}
390389

391-
public class io/sentry/android/core/PerfettoContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
390+
public final class io/sentry/android/core/PerfettoContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
392391
public fun <init> (Lio/sentry/ILogger;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/util/LazyEvaluator$Evaluator;Ljava/util/function/Supplier;)V
393392
public fun close (Z)V
394393
public fun getChunkId ()Lio/sentry/protocol/SentryId;
@@ -401,7 +400,7 @@ public class io/sentry/android/core/PerfettoContinuousProfiler : io/sentry/ICont
401400
public fun stopProfiler (Lio/sentry/ProfileLifecycle;)V
402401
}
403402

404-
public class io/sentry/android/core/PerfettoProfiler {
403+
public final class io/sentry/android/core/PerfettoProfiler {
405404
public fun <init> (Landroid/content/Context;Lio/sentry/ILogger;Lio/sentry/ISentryExecutorService;)V
406405
public fun endAndCollect (Ljava/util/function/Consumer;)V
407406
}
@@ -578,7 +577,7 @@ public abstract interface class io/sentry/android/core/SentryShakeDetector$Liste
578577
public abstract fun onShake ()V
579578
}
580579

581-
public class io/sentry/android/core/SentryUserFeedbackButton : android/widget/Button {
580+
public final class io/sentry/android/core/SentryUserFeedbackButton : android/widget/Button {
582581
public fun <init> (Landroid/content/Context;)V
583582
public fun <init> (Landroid/content/Context;Landroid/util/AttributeSet;)V
584583
public fun <init> (Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -589,7 +588,7 @@ public class io/sentry/android/core/SentryUserFeedbackButton : android/widget/Bu
589588
public final class io/sentry/android/core/SentryUserFeedbackDialog : io/sentry/android/core/SentryUserFeedbackForm {
590589
}
591590

592-
public class io/sentry/android/core/SentryUserFeedbackDialog$Builder : io/sentry/android/core/SentryUserFeedbackForm$Builder {
591+
public final class io/sentry/android/core/SentryUserFeedbackDialog$Builder : io/sentry/android/core/SentryUserFeedbackForm$Builder {
593592
public fun <init> (Landroid/content/Context;)V
594593
public fun <init> (Landroid/content/Context;I)V
595594
public fun <init> (Landroid/content/Context;ILio/sentry/android/core/SentryUserFeedbackDialog$OptionsConfiguration;)V
@@ -641,8 +640,7 @@ public final class io/sentry/android/core/SentryWebViewTracingOptions {
641640
public fun setAllowedHosts (Ljava/util/List;)V
642641
}
643642

644-
public class io/sentry/android/core/SpanFrameMetricsCollector : io/sentry/IPerformanceContinuousCollector, io/sentry/android/core/internal/util/SentryFrameMetricsCollector$FrameMetricsCollectorListener {
645-
protected final field lock Lio/sentry/util/AutoClosableReentrantLock;
643+
public final class io/sentry/android/core/SpanFrameMetricsCollector : io/sentry/IPerformanceContinuousCollector, io/sentry/android/core/internal/util/SentryFrameMetricsCollector$FrameMetricsCollectorListener {
646644
public fun <init> (Lio/sentry/android/core/SentryAndroidOptions;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;)V
647645
public fun clear ()V
648646
public fun onFrameMetricCollected (JJJJZZF)V
@@ -661,7 +659,7 @@ public final class io/sentry/android/core/SystemEventsBreadcrumbsIntegration : i
661659
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
662660
}
663661

664-
public class io/sentry/android/core/TombstoneIntegration : io/sentry/Integration, java/io/Closeable {
662+
public final class io/sentry/android/core/TombstoneIntegration : io/sentry/Integration, java/io/Closeable {
665663
public fun <init> (Landroid/content/Context;)V
666664
public fun close ()V
667665
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
@@ -675,7 +673,7 @@ public final class io/sentry/android/core/TombstoneIntegration$TombstoneHint : i
675673
public fun timestamp ()Ljava/lang/Long;
676674
}
677675

678-
public class io/sentry/android/core/TombstoneIntegration$TombstonePolicy : io/sentry/android/core/ApplicationExitInfoHistoryDispatcher$ApplicationExitInfoPolicy {
676+
public final class io/sentry/android/core/TombstoneIntegration$TombstonePolicy : io/sentry/android/core/ApplicationExitInfoHistoryDispatcher$ApplicationExitInfoPolicy {
679677
public fun <init> (Lio/sentry/android/core/SentryAndroidOptions;Landroid/content/Context;)V
680678
public fun buildReport (Landroid/app/ApplicationExitInfo;Z)Lio/sentry/android/core/ApplicationExitInfoHistoryDispatcher$Report;
681679
public fun getLabel ()Ljava/lang/String;
@@ -710,26 +708,26 @@ public final class io/sentry/android/core/ViewHierarchyEventProcessor : io/sentr
710708
public static fun snapshotViewHierarchyAsData (Landroid/app/Activity;Lio/sentry/util/thread/IThreadChecker;Lio/sentry/ISerializer;Lio/sentry/ILogger;)[B
711709
}
712710

713-
public class io/sentry/android/core/anr/AggregatedStackTrace {
711+
public final class io/sentry/android/core/anr/AggregatedStackTrace {
714712
public fun <init> ([Ljava/lang/StackTraceElement;IIJF)V
715713
public fun addOccurrence (J)V
716714
public fun getStack ()[Ljava/lang/StackTraceElement;
717715
}
718716

719-
public class io/sentry/android/core/anr/AnrCulpritIdentifier {
717+
public final class io/sentry/android/core/anr/AnrCulpritIdentifier {
720718
public fun <init> ()V
721719
public static fun identify (Ljava/util/List;)Lio/sentry/android/core/anr/AggregatedStackTrace;
722720
public static fun isSystemFrame (Ljava/lang/String;)Z
723721
}
724722

725-
public class io/sentry/android/core/anr/AnrProfile {
723+
public final class io/sentry/android/core/anr/AnrProfile {
726724
public final field endTimeMs J
727725
public final field stacks Ljava/util/List;
728726
public final field startTimeMs J
729727
public fun <init> (Ljava/util/List;)V
730728
}
731729

732-
public class io/sentry/android/core/anr/AnrProfileManager : java/lang/AutoCloseable {
730+
public final class io/sentry/android/core/anr/AnrProfileManager : java/lang/AutoCloseable {
733731
public fun <init> (Lio/sentry/SentryOptions;)V
734732
public fun <init> (Lio/sentry/SentryOptions;Ljava/io/File;)V
735733
public fun add (Lio/sentry/android/core/anr/AnrStackTrace;)V
@@ -738,36 +736,25 @@ public class io/sentry/android/core/anr/AnrProfileManager : java/lang/AutoClosea
738736
public fun load ()Lio/sentry/android/core/anr/AnrProfile;
739737
}
740738

741-
public class io/sentry/android/core/anr/AnrProfileRotationHelper {
739+
public final class io/sentry/android/core/anr/AnrProfileRotationHelper {
742740
public fun <init> ()V
743741
public static fun deleteLastFile (Ljava/io/File;)Z
744742
public static fun getFileForRecording (Ljava/io/File;)Ljava/io/File;
745743
public static fun getLastFile (Ljava/io/File;)Ljava/io/File;
746744
public static fun rotate ()V
747745
}
748746

749-
public class io/sentry/android/core/anr/AnrProfilingIntegration : io/sentry/Integration, io/sentry/android/core/AppState$AppStateListener, java/io/Closeable, java/lang/Runnable {
747+
public final class io/sentry/android/core/anr/AnrProfilingIntegration : io/sentry/Integration, io/sentry/android/core/AppState$AppStateListener, java/io/Closeable, java/lang/Runnable {
750748
public static final field POLLING_INTERVAL_MS J
751749
public static final field THRESHOLD_ANR_MS J
752750
public fun <init> ()V
753-
protected fun checkMainThread (Ljava/lang/Thread;)V
754751
public fun close ()V
755-
protected fun getProfileManager ()Lio/sentry/android/core/anr/AnrProfileManager;
756-
protected fun getState ()Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
757752
public fun onBackground ()V
758753
public fun onForeground ()V
759754
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
760755
public fun run ()V
761756
}
762757

763-
protected final class io/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState : java/lang/Enum {
764-
public static final field ANR_DETECTED Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
765-
public static final field IDLE Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
766-
public static final field SUSPICIOUS Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
767-
public static fun valueOf (Ljava/lang/String;)Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
768-
public static fun values ()[Lio/sentry/android/core/anr/AnrProfilingIntegration$MainThreadState;
769-
}
770-
771758
public final class io/sentry/android/core/anr/AnrStackTrace : java/lang/Comparable {
772759
public final field stack [Ljava/lang/StackTraceElement;
773760
public final field timestampMs J
@@ -803,7 +790,7 @@ public final class io/sentry/android/core/cache/AndroidEnvelopeCache : io/sentry
803790
public fun storeEnvelope (Lio/sentry/SentryEnvelope;Lio/sentry/Hint;)Z
804791
}
805792

806-
public class io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapter : android/app/Application$ActivityLifecycleCallbacks {
793+
public abstract class io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapter : android/app/Application$ActivityLifecycleCallbacks {
807794
public fun <init> ()V
808795
public fun onActivityCreated (Landroid/app/Activity;Landroid/os/Bundle;)V
809796
public fun onActivityDestroyed (Landroid/app/Activity;)V
@@ -814,7 +801,7 @@ public class io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapte
814801
public fun onActivityStopped (Landroid/app/Activity;)V
815802
}
816803

817-
public class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
804+
public final class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
818805
public fun <init> (Ljava/lang/String;)V
819806
public fun clear ()V
820807
public fun createAndStopOnCreateSpan (Lio/sentry/ISpan;)V
@@ -828,15 +815,15 @@ public class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
828815
public fun setOnStartStartTimestamp (Lio/sentry/SentryDate;)V
829816
}
830817

831-
public class io/sentry/android/core/performance/ActivityLifecycleTimeSpan : java/lang/Comparable {
818+
public final class io/sentry/android/core/performance/ActivityLifecycleTimeSpan : java/lang/Comparable {
832819
public fun <init> ()V
833820
public fun compareTo (Lio/sentry/android/core/performance/ActivityLifecycleTimeSpan;)I
834821
public synthetic fun compareTo (Ljava/lang/Object;)I
835822
public final fun getOnCreate ()Lio/sentry/android/core/performance/TimeSpan;
836823
public final fun getOnStart ()Lio/sentry/android/core/performance/TimeSpan;
837824
}
838825

839-
public class io/sentry/android/core/performance/AppStartMetrics : io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapter {
826+
public final class io/sentry/android/core/performance/AppStartMetrics : io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapter {
840827
public static final field staticLock Lio/sentry/util/AutoClosableReentrantLock;
841828
public fun <init> ()V
842829
public fun addActivityLifecycleTimeSpans (Lio/sentry/android/core/performance/ActivityLifecycleTimeSpan;)V
@@ -903,7 +890,7 @@ public abstract interface class io/sentry/android/core/performance/AppStartMetri
903890
public abstract fun onHeadlessAppStart ()V
904891
}
905892

906-
public class io/sentry/android/core/performance/TimeSpan : java/lang/Comparable {
893+
public final class io/sentry/android/core/performance/TimeSpan : java/lang/Comparable {
907894
public fun <init> ()V
908895
public fun compareTo (Lio/sentry/android/core/performance/TimeSpan;)I
909896
public synthetic fun compareTo (Ljava/lang/Object;)I
@@ -929,7 +916,7 @@ public class io/sentry/android/core/performance/TimeSpan : java/lang/Comparable
929916
public fun stop ()V
930917
}
931918

932-
public class io/sentry/android/core/performance/WindowContentChangedCallback : io/sentry/android/core/internal/gestures/WindowCallbackAdapter {
919+
public final class io/sentry/android/core/performance/WindowContentChangedCallback : io/sentry/android/core/internal/gestures/WindowCallbackAdapter {
933920
public fun <init> (Landroid/view/Window$Callback;Ljava/lang/Runnable;)V
934921
public fun onContentChanged ()V
935922
}

‎sentry-android-core/src/main/java/io/sentry/android/core/AndroidContinuousProfiler.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
* implementation using {@code ProfilingManager}, available on API 35+.
4646
*/
4747
@ApiStatus.Internal
48-
public class AndroidContinuousProfiler
48+
public final class AndroidContinuousProfiler
4949
implements IContinuousProfiler, RateLimiter.IRateLimitObserver {
5050
private static final long MAX_CHUNK_DURATION_MILLIS = 60000;
5151

‎sentry-android-core/src/main/java/io/sentry/android/core/AndroidMemoryCollector.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.jetbrains.annotations.NotNull;
88

99
@ApiStatus.Internal
10-
public class AndroidMemoryCollector implements IPerformanceSnapshotCollector {
10+
public final class AndroidMemoryCollector implements IPerformanceSnapshotCollector {
1111

1212
@Override
1313
public void setup() {}

‎sentry-android-core/src/main/java/io/sentry/android/core/AndroidProfiler.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
import org.jetbrains.annotations.Nullable;
3333

3434
@ApiStatus.Internal
35-
public class AndroidProfiler {
36-
public static class ProfileStartData {
35+
public final class AndroidProfiler {
36+
public static final class ProfileStartData {
3737
public final long startNanos;
3838
public final long startCpuMillis;
3939
public final @NotNull Date startTimestamp;
@@ -46,7 +46,7 @@ public ProfileStartData(
4646
}
4747
}
4848

49-
public static class ProfileEndData {
49+
public static final class ProfileEndData {
5050
public final long endNanos;
5151
public final long endCpuMillis;
5252
public final @NotNull File traceFile;
@@ -97,7 +97,7 @@ public ProfileEndData(
9797
timeoutExecutorServiceSupplier;
9898
private final @NotNull ILogger logger;
9999
private volatile boolean isRunning = false;
100-
protected final @NotNull AutoClosableReentrantLock lock = new AutoClosableReentrantLock();
100+
final @NotNull AutoClosableReentrantLock lock = new AutoClosableReentrantLock();
101101

102102
public AndroidProfiler(
103103
final @NotNull String tracesFilesDirPath,

‎sentry-android-core/src/main/java/io/sentry/android/core/AnrV2Integration.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
import org.jetbrains.annotations.Nullable;
4545

4646
@SuppressLint("NewApi") // we check this in AnrIntegrationFactory
47-
public class AnrV2Integration implements Integration, Closeable {
47+
public final class AnrV2Integration implements Integration, Closeable {
4848

4949
private final @NotNull Context context;
5050
private final @NotNull ICurrentDateProvider dateProvider;

‎sentry-android-core/src/main/java/io/sentry/android/core/ContextUtils.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
@ApiStatus.Internal
3939
public final class ContextUtils {
4040

41-
static class SideLoadedInfo {
41+
static final class SideLoadedInfo {
4242
private final boolean isSideLoaded;
4343
private final @Nullable String installerStore;
4444

@@ -65,7 +65,7 @@ public boolean isSideLoaded() {
6565
}
6666
}
6767

68-
static class SplitApksInfo {
68+
static final class SplitApksInfo {
6969
// https://github.com/google/bundletool/blob/master/src/main/java/com/android/tools/build/bundletool/model/AndroidManifest.java#L257-L263
7070
static final String SPLITS_REQUIRED = "com.android.vending.splits.required";
7171

‎sentry-android-core/src/main/java/io/sentry/android/core/CurrentActivityHolder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.jetbrains.annotations.Nullable;
88

99
@ApiStatus.Internal
10-
public class CurrentActivityHolder {
10+
public final class CurrentActivityHolder {
1111

1212
private static final @NotNull CurrentActivityHolder instance = new CurrentActivityHolder();
1313

‎sentry-android-core/src/main/java/io/sentry/android/core/NetworkBreadcrumbsIntegration.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ private Breadcrumb createBreadcrumb(String action) {
195195
}
196196
}
197197

198-
static class NetworkBreadcrumbConnectionDetail {
198+
static final class NetworkBreadcrumbConnectionDetail {
199199
final int downBandwidth, upBandwidth, signalStrength;
200200
private long timestampNanos;
201201
final boolean isVpn;

‎sentry-android-core/src/main/java/io/sentry/android/core/PerfettoContinuousProfiler.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
*/
7474
@ApiStatus.Internal
7575
@RequiresApi(api = Build.VERSION_CODES.VANILLA_ICE_CREAM)
76-
public class PerfettoContinuousProfiler
76+
public final class PerfettoContinuousProfiler
7777
implements IContinuousProfiler, RateLimiter.IRateLimitObserver {
7878
private static final long MAX_CHUNK_DURATION_MILLIS = 60000;
7979

@@ -568,7 +568,7 @@ private void sendChunk(
568568
* every 100ms and returned as a list on {@code stop()}.
569569
*/
570570
@VisibleForTesting
571-
static class ChunkMeasurementCollector {
571+
static final class ChunkMeasurementCollector {
572572
private final @NotNull SentryFrameMetricsCollector frameMetricsCollector;
573573
private @Nullable String frameMetricsListenerId = null;
574574
private @Nullable CompositePerformanceCollector performanceCollector = null;

0 commit comments

Comments
 (0)