Skip to content

Commit c2599c1

Browse files
committed
SentryFrameMetricsCollector start collecting frameMetrics in onActivityStarted(), not onActivityCreated() anymore
1 parent 80a206d commit c2599c1

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

sentry-android-core/src/main/java/io/sentry/android/core/internal/util/SentryFrameMetricsCollector.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,15 @@ public SentryFrameMetricsCollector(
9494
};
9595
}
9696

97+
// addOnFrameMetricsAvailableListener internally calls Activity.getWindow().getDecorView(),
98+
// which cannot be called before setContentView. That's why we call it in onActivityStarted()
9799
@Override
98-
public void onActivityCreated(@NotNull Activity activity, @Nullable Bundle savedInstanceState) {
99-
setCurrentWindow(activity.getWindow());
100-
}
100+
public void onActivityCreated(@NotNull Activity activity, @Nullable Bundle savedInstanceState) {}
101101

102102
@Override
103-
public void onActivityStarted(@NotNull Activity activity) {}
103+
public void onActivityStarted(@NotNull Activity activity) {
104+
setCurrentWindow(activity.getWindow());
105+
}
104106

105107
@Override
106108
public void onActivityResumed(@NotNull Activity activity) {}

sentry-android-core/src/test/java/io/sentry/android/core/internal/util/SentryFrameMetricsCollectorTest.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class SentryFrameMetricsCollectorTest {
130130

131131
collector.startCollection(mock())
132132
assertEquals(0, fixture.addOnFrameMetricsAvailableListenerCounter)
133-
collector.onActivityCreated(fixture.activity, mock())
133+
collector.onActivityStarted(fixture.activity)
134134
assertEquals(1, fixture.addOnFrameMetricsAvailableListenerCounter)
135135
}
136136

@@ -139,7 +139,7 @@ class SentryFrameMetricsCollectorTest {
139139
val collector = fixture.getSut(context)
140140

141141
collector.startCollection(mock())
142-
collector.onActivityCreated(fixture.activity, mock())
142+
collector.onActivityStarted(fixture.activity)
143143
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
144144
collector.onActivityStopped(fixture.activity)
145145
assertEquals(1, fixture.removeOnFrameMetricsAvailableListenerCounter)
@@ -151,7 +151,7 @@ class SentryFrameMetricsCollectorTest {
151151

152152
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
153153
assertEquals(0, fixture.addOnFrameMetricsAvailableListenerCounter)
154-
collector.onActivityCreated(fixture.activity, mock())
154+
collector.onActivityStarted(fixture.activity)
155155
collector.onActivityStopped(fixture.activity)
156156
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
157157
assertEquals(0, fixture.addOnFrameMetricsAvailableListenerCounter)
@@ -161,7 +161,7 @@ class SentryFrameMetricsCollectorTest {
161161
fun `startCollection calls addOnFrameMetricsAvailableListener if an activity is already started`() {
162162
val collector = fixture.getSut(context)
163163

164-
collector.onActivityCreated(fixture.activity, mock())
164+
collector.onActivityStarted(fixture.activity)
165165
assertEquals(0, fixture.addOnFrameMetricsAvailableListenerCounter)
166166
collector.startCollection(mock())
167167
assertEquals(1, fixture.addOnFrameMetricsAvailableListenerCounter)
@@ -171,7 +171,7 @@ class SentryFrameMetricsCollectorTest {
171171
fun `stopCollection calls removeOnFrameMetricsAvailableListener even if an activity is still started`() {
172172
val collector = fixture.getSut(context)
173173
val id = collector.startCollection(mock())
174-
collector.onActivityCreated(fixture.activity, mock())
174+
collector.onActivityStarted(fixture.activity)
175175

176176
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
177177
collector.stopCollection(id)
@@ -186,8 +186,8 @@ class SentryFrameMetricsCollectorTest {
186186
assertEquals(0, fixture.addOnFrameMetricsAvailableListenerCounter)
187187
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
188188

189-
collector.onActivityCreated(fixture.activity, mock())
190-
collector.onActivityCreated(fixture.activity, mock())
189+
collector.onActivityStarted(fixture.activity)
190+
collector.onActivityStarted(fixture.activity)
191191

192192
collector.onActivityStopped(fixture.activity)
193193
collector.onActivityStopped(fixture.activity)
@@ -200,7 +200,7 @@ class SentryFrameMetricsCollectorTest {
200200
fun `stopCollection works only after startCollection`() {
201201
val collector = fixture.getSut(context)
202202
collector.startCollection(mock())
203-
collector.onActivityCreated(fixture.activity, mock())
203+
collector.onActivityStarted(fixture.activity)
204204
collector.stopCollection("testId")
205205
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)
206206
}
@@ -209,8 +209,8 @@ class SentryFrameMetricsCollectorTest {
209209
fun `collector tracks multiple activities`() {
210210
val collector = fixture.getSut(context)
211211
collector.startCollection(mock())
212-
collector.onActivityCreated(fixture.activity, mock())
213-
collector.onActivityCreated(fixture.activity2, mock())
212+
collector.onActivityStarted(fixture.activity)
213+
collector.onActivityStarted(fixture.activity2)
214214
assertEquals(2, fixture.addOnFrameMetricsAvailableListenerCounter)
215215
collector.onActivityStopped(fixture.activity)
216216
collector.onActivityStopped(fixture.activity2)
@@ -222,7 +222,7 @@ class SentryFrameMetricsCollectorTest {
222222
val collector = fixture.getSut(context)
223223
val id1 = collector.startCollection(mock())
224224
val id2 = collector.startCollection(mock())
225-
collector.onActivityCreated(fixture.activity, mock())
225+
collector.onActivityStarted(fixture.activity)
226226
assertEquals(1, fixture.addOnFrameMetricsAvailableListenerCounter)
227227
collector.stopCollection(id1)
228228
assertEquals(0, fixture.removeOnFrameMetricsAvailableListenerCounter)

0 commit comments

Comments
 (0)