You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit bcc4ebe
Browse filesBrowse the repository at this point in the historyBrowse files
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>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,10 @@
7
7
8
8
## Unreleased
9
9
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
+
10
14
### Features
11
15
12
16
- Connect Android traces with web content in a `WebView` using `SentryWebViewTracing.addTracePropagation(webView, "example.com")` ([#6395](https://github.com/getsentry/sentry-java/pull/6395))
Copy file name to clipboardExpand all lines: sentry-android-core/api/sentry-android-core.api
+26-39Lines changed: 26 additions & 39 deletions
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ public final class io/sentry/android/core/ActivityLifecycleIntegration : android
40
40
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
41
41
}
42
42
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 {
44
44
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
45
45
public fun close (Z)V
46
46
public fun getChunkId ()Lio/sentry/protocol/SentryId;
@@ -100,7 +100,7 @@ public final class io/sentry/android/core/AndroidLoggerBatchProcessorFactory : i
100
100
public fun create (Lio/sentry/SentryOptions;Lio/sentry/SentryClient;)Lio/sentry/logger/ILoggerBatchProcessor;
101
101
}
102
102
103
-
public class io/sentry/android/core/AndroidMemoryCollector : io/sentry/IPerformanceSnapshotCollector {
103
+
public final class io/sentry/android/core/AndroidMemoryCollector : io/sentry/IPerformanceSnapshotCollector {
104
104
public fun <init> ()V
105
105
public fun collect (Lio/sentry/PerformanceCollectionData;)V
106
106
public fun setup ()V
@@ -118,15 +118,14 @@ public final class io/sentry/android/core/AndroidMetricsBatchProcessorFactory :
118
118
public fun create (Lio/sentry/SentryOptions;Lio/sentry/SentryClient;)Lio/sentry/metrics/IMetricsBatchProcessor;
119
119
}
120
120
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 {
123
122
public fun <init> (Ljava/lang/String;ILio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/util/LazyEvaluator$Evaluator;Lio/sentry/ILogger;)V
124
123
public fun close ()V
125
124
public fun endAndCollect (ZLjava/util/List;)Lio/sentry/android/core/AndroidProfiler$ProfileEndData;
126
125
public fun start ()Lio/sentry/android/core/AndroidProfiler$ProfileStartData;
127
126
}
128
127
129
-
public class io/sentry/android/core/AndroidProfiler$ProfileEndData {
128
+
public final class io/sentry/android/core/AndroidProfiler$ProfileEndData {
130
129
public final field didTimeout Z
131
130
public final field endCpuMillis J
132
131
public final field endNanos J
@@ -135,7 +134,7 @@ public class io/sentry/android/core/AndroidProfiler$ProfileEndData {
135
134
public fun <init> (JJZLjava/io/File;Ljava/util/Map;)V
136
135
}
137
136
138
-
public class io/sentry/android/core/AndroidProfiler$ProfileStartData {
137
+
public final class io/sentry/android/core/AndroidProfiler$ProfileStartData {
139
138
public final field startCpuMillis J
140
139
public final field startNanos J
141
140
public final field startTimestamp Ljava/util/Date;
@@ -159,7 +158,7 @@ public final class io/sentry/android/core/AnrIntegrationFactory {
159
158
public static fun create (Landroid/content/Context;Lio/sentry/android/core/BuildInfoProvider;)Lio/sentry/Integration;
160
159
}
161
160
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 {
163
162
public fun <init> (Landroid/content/Context;)V
164
163
public fun close ()V
165
164
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
@@ -270,7 +269,7 @@ public final class io/sentry/android/core/ContextUtils {
270
269
public static fun isForegroundImportance ()Z
271
270
}
272
271
273
-
public class io/sentry/android/core/CurrentActivityHolder {
272
+
public final class io/sentry/android/core/CurrentActivityHolder {
274
273
public fun clearActivity ()V
275
274
public fun clearActivity (Landroid/app/Activity;)V
276
275
public fun getActivity ()Landroid/app/Activity;
@@ -388,7 +387,7 @@ public final class io/sentry/android/core/NetworkBreadcrumbsIntegration : io/sen
388
387
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
389
388
}
390
389
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 {
392
391
public fun <init> (Lio/sentry/ILogger;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/util/LazyEvaluator$Evaluator;Ljava/util/function/Supplier;)V
393
392
public fun close (Z)V
394
393
public fun getChunkId ()Lio/sentry/protocol/SentryId;
@@ -401,7 +400,7 @@ public class io/sentry/android/core/PerfettoContinuousProfiler : io/sentry/ICont
401
400
public fun stopProfiler (Lio/sentry/ProfileLifecycle;)V
402
401
}
403
402
404
-
public class io/sentry/android/core/PerfettoProfiler {
403
+
public final class io/sentry/android/core/PerfettoProfiler {
405
404
public fun <init> (Landroid/content/Context;Lio/sentry/ILogger;Lio/sentry/ISentryExecutorService;)V
406
405
public fun endAndCollect (Ljava/util/function/Consumer;)V
407
406
}
@@ -578,7 +577,7 @@ public abstract interface class io/sentry/android/core/SentryShakeDetector$Liste
578
577
public abstract fun onShake ()V
579
578
}
580
579
581
-
public class io/sentry/android/core/SentryUserFeedbackButton : android/widget/Button {
580
+
public final class io/sentry/android/core/SentryUserFeedbackButton : android/widget/Button {
582
581
public fun <init> (Landroid/content/Context;)V
583
582
public fun <init> (Landroid/content/Context;Landroid/util/AttributeSet;)V
584
583
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
589
588
public final class io/sentry/android/core/SentryUserFeedbackDialog : io/sentry/android/core/SentryUserFeedbackForm {
590
589
}
591
590
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 {
593
592
public fun <init> (Landroid/content/Context;)V
594
593
public fun <init> (Landroid/content/Context;I)V
595
594
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 {
641
640
public fun setAllowedHosts (Ljava/util/List;)V
642
641
}
643
642
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 {
646
644
public fun <init> (Lio/sentry/android/core/SentryAndroidOptions;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;)V
647
645
public fun clear ()V
648
646
public fun onFrameMetricCollected (JJJJZZF)V
@@ -661,7 +659,7 @@ public final class io/sentry/android/core/SystemEventsBreadcrumbsIntegration : i
661
659
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
662
660
}
663
661
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 {
665
663
public fun <init> (Landroid/content/Context;)V
666
664
public fun close ()V
667
665
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
@@ -675,7 +673,7 @@ public final class io/sentry/android/core/TombstoneIntegration$TombstoneHint : i
675
673
public fun timestamp ()Ljava/lang/Long;
676
674
}
677
675
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 {
679
677
public fun <init> (Lio/sentry/android/core/SentryAndroidOptions;Landroid/content/Context;)V
680
678
public fun buildReport (Landroid/app/ApplicationExitInfo;Z)Lio/sentry/android/core/ApplicationExitInfoHistoryDispatcher$Report;
681
679
public fun getLabel ()Ljava/lang/String;
@@ -710,26 +708,26 @@ public final class io/sentry/android/core/ViewHierarchyEventProcessor : io/sentr
710
708
public static fun snapshotViewHierarchyAsData (Landroid/app/Activity;Lio/sentry/util/thread/IThreadChecker;Lio/sentry/ISerializer;Lio/sentry/ILogger;)[B
711
709
}
712
710
713
-
public class io/sentry/android/core/anr/AggregatedStackTrace {
711
+
public final class io/sentry/android/core/anr/AggregatedStackTrace {
714
712
public fun <init> ([Ljava/lang/StackTraceElement;IIJF)V
715
713
public fun addOccurrence (J)V
716
714
public fun getStack ()[Ljava/lang/StackTraceElement;
717
715
}
718
716
719
-
public class io/sentry/android/core/anr/AnrCulpritIdentifier {
717
+
public final class io/sentry/android/core/anr/AnrCulpritIdentifier {
720
718
public fun <init> ()V
721
719
public static fun identify (Ljava/util/List;)Lio/sentry/android/core/anr/AggregatedStackTrace;
722
720
public static fun isSystemFrame (Ljava/lang/String;)Z
723
721
}
724
722
725
-
public class io/sentry/android/core/anr/AnrProfile {
723
+
public final class io/sentry/android/core/anr/AnrProfile {
726
724
public final field endTimeMs J
727
725
public final field stacks Ljava/util/List;
728
726
public final field startTimeMs J
729
727
public fun <init> (Ljava/util/List;)V
730
728
}
731
729
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 {
733
731
public fun <init> (Lio/sentry/SentryOptions;)V
734
732
public fun <init> (Lio/sentry/SentryOptions;Ljava/io/File;)V
735
733
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
738
736
public fun load ()Lio/sentry/android/core/anr/AnrProfile;
739
737
}
740
738
741
-
public class io/sentry/android/core/anr/AnrProfileRotationHelper {
739
+
public final class io/sentry/android/core/anr/AnrProfileRotationHelper {
742
740
public fun <init> ()V
743
741
public static fun deleteLastFile (Ljava/io/File;)Z
744
742
public static fun getFileForRecording (Ljava/io/File;)Ljava/io/File;
745
743
public static fun getLastFile (Ljava/io/File;)Ljava/io/File;
746
744
public static fun rotate ()V
747
745
}
748
746
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 {
750
748
public static final field POLLING_INTERVAL_MS J
751
749
public static final field THRESHOLD_ANR_MS J
752
750
public fun <init> ()V
753
-
protected fun checkMainThread (Ljava/lang/Thread;)V
754
751
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;
757
752
public fun onBackground ()V
758
753
public fun onForeground ()V
759
754
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
760
755
public fun run ()V
761
756
}
762
757
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
-
771
758
public final class io/sentry/android/core/anr/AnrStackTrace : java/lang/Comparable {
772
759
public final field stack [Ljava/lang/StackTraceElement;
773
760
public final field timestampMs J
@@ -803,7 +790,7 @@ public final class io/sentry/android/core/cache/AndroidEnvelopeCache : io/sentry
803
790
public fun storeEnvelope (Lio/sentry/SentryEnvelope;Lio/sentry/Hint;)Z
804
791
}
805
792
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 {
807
794
public fun <init> ()V
808
795
public fun onActivityCreated (Landroid/app/Activity;Landroid/os/Bundle;)V
809
796
public fun onActivityDestroyed (Landroid/app/Activity;)V
@@ -814,7 +801,7 @@ public class io/sentry/android/core/performance/ActivityLifecycleCallbacksAdapte
814
801
public fun onActivityStopped (Landroid/app/Activity;)V
815
802
}
816
803
817
-
public class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
804
+
public final class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
818
805
public fun <init> (Ljava/lang/String;)V
819
806
public fun clear ()V
820
807
public fun createAndStopOnCreateSpan (Lio/sentry/ISpan;)V
@@ -828,15 +815,15 @@ public class io/sentry/android/core/performance/ActivityLifecycleSpanHelper {
828
815
public fun setOnStartStartTimestamp (Lio/sentry/SentryDate;)V
829
816
}
830
817
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 {
832
819
public fun <init> ()V
833
820
public fun compareTo (Lio/sentry/android/core/performance/ActivityLifecycleTimeSpan;)I
834
821
public synthetic fun compareTo (Ljava/lang/Object;)I
835
822
public final fun getOnCreate ()Lio/sentry/android/core/performance/TimeSpan;
836
823
public final fun getOnStart ()Lio/sentry/android/core/performance/TimeSpan;
837
824
}
838
825
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 {
840
827
public static final field staticLock Lio/sentry/util/AutoClosableReentrantLock;
841
828
public fun <init> ()V
842
829
public fun addActivityLifecycleTimeSpans (Lio/sentry/android/core/performance/ActivityLifecycleTimeSpan;)V
@@ -903,7 +890,7 @@ public abstract interface class io/sentry/android/core/performance/AppStartMetri
903
890
public abstract fun onHeadlessAppStart ()V
904
891
}
905
892
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 {
907
894
public fun <init> ()V
908
895
public fun compareTo (Lio/sentry/android/core/performance/TimeSpan;)I
909
896
public synthetic fun compareTo (Ljava/lang/Object;)I
@@ -929,7 +916,7 @@ public class io/sentry/android/core/performance/TimeSpan : java/lang/Comparable
929
916
public fun stop ()V
930
917
}
931
918
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 {
933
920
public fun <init> (Landroid/view/Window$Callback;Ljava/lang/Runnable;)V
0 commit comments