Skip to content

Commit 4a54919

Browse files
markushiclaude
andcommitted
ref(android): Move getThreadId into AndroidThreadChecker
Move getThreadId helper method from ThreadUtil into AndroidThreadChecker to consolidate thread-related utilities. Simplify CHANGELOG entry. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent b156d72 commit 4a54919

File tree

5 files changed

+24
-50
lines changed

5 files changed

+24
-50
lines changed

CHANGELOG.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
### Improvements
1313

1414
- Update Android targetSdk to API 36 (Android 16) ([#5016](https://github.com/getsentry/sentry-java/pull/5016))
15-
- Migrated from deprecated `Thread.getId()` to `Thread.threadId()` with backward compatibility
16-
- Created `ThreadUtil` helper for version-aware thread ID retrieval
17-
- Updated sample app to use `OnBackPressedCallback` instead of deprecated `onBackPressed()`
1815
- Expose `MAX_EVENT_SIZE_BYTES` constant in SentryOptions ([#4962](https://github.com/getsentry/sentry-java/pull/4962))
1916
- Discard envelopes on `4xx` and `5xx` response ([#4950](https://github.com/getsentry/sentry-java/pull/4950))
2017
- This aims to not overwhelm Sentry after an outage or load shedding (including HTTP 429) where too many events are sent at once

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,3 @@ public abstract interface class io/sentry/android/core/util/AndroidLazyEvaluator
659659
public abstract fun evaluate (Landroid/content/Context;)Ljava/lang/Object;
660660
}
661661

662-
public final class io/sentry/android/core/util/ThreadUtil {
663-
public static fun getThreadId (Ljava/lang/Thread;)J
664-
}
665-

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.sentry.android.core.internal.util;
22

3+
import android.os.Build;
34
import android.os.Handler;
45
import android.os.Looper;
56
import android.os.Process;
6-
import io.sentry.android.core.util.ThreadUtil;
77
import io.sentry.protocol.SentryThread;
88
import io.sentry.util.thread.IThreadChecker;
99
import org.jetbrains.annotations.ApiStatus;
@@ -25,14 +25,32 @@ private AndroidThreadChecker() {
2525
new Handler(Looper.getMainLooper()).post(() -> mainThreadSystemId = Process.myTid());
2626
}
2727

28+
/**
29+
* Gets the thread ID in a way that's compatible across Android versions.
30+
*
31+
* <p>Uses {@link Thread#threadId()} on Android 14 (API 34) and above, and falls back to {@link
32+
* Thread#getId()} on older versions.
33+
*
34+
* @param thread the thread to get the ID for
35+
* @return the thread ID
36+
*/
37+
@SuppressWarnings("deprecation")
38+
public static long getThreadId(final @NotNull Thread thread) {
39+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
40+
return thread.threadId();
41+
} else {
42+
return thread.getId();
43+
}
44+
}
45+
2846
@Override
2947
public boolean isMainThread(final long threadId) {
30-
return ThreadUtil.getThreadId(Looper.getMainLooper().getThread()) == threadId;
48+
return getThreadId(Looper.getMainLooper().getThread()) == threadId;
3149
}
3250

3351
@Override
3452
public boolean isMainThread(final @NotNull Thread thread) {
35-
return isMainThread(ThreadUtil.getThreadId(thread));
53+
return isMainThread(getThreadId(thread));
3654
}
3755

3856
@Override

sentry-android-core/src/main/java/io/sentry/android/core/performance/ActivityLifecycleSpanHelper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import io.sentry.SpanDataConvention;
99
import io.sentry.SpanStatus;
1010
import io.sentry.android.core.AndroidDateUtils;
11-
import io.sentry.android.core.util.ThreadUtil;
11+
import io.sentry.android.core.internal.util.AndroidThreadChecker;
1212
import java.util.concurrent.TimeUnit;
1313
import org.jetbrains.annotations.ApiStatus;
1414
import org.jetbrains.annotations.NotNull;
@@ -131,7 +131,8 @@ public void clear() {
131131

132132
private void setDefaultStartSpanData(final @NotNull ISpan span) {
133133
span.setData(
134-
SpanDataConvention.THREAD_ID, ThreadUtil.getThreadId(Looper.getMainLooper().getThread()));
134+
SpanDataConvention.THREAD_ID,
135+
AndroidThreadChecker.getThreadId(Looper.getMainLooper().getThread()));
135136
span.setData(SpanDataConvention.THREAD_NAME, "main");
136137
span.setData(SpanDataConvention.CONTRIBUTES_TTID, true);
137138
span.setData(SpanDataConvention.CONTRIBUTES_TTFD, true);

sentry-android-core/src/main/java/io/sentry/android/core/util/ThreadUtil.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)