Skip to content
This repository was archived by the owner on Aug 30, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import io.sentry.core.ILogger;
import io.sentry.core.ISerializer;
import io.sentry.core.SentryEvent;
import io.sentry.core.SentryLevel;
import io.sentry.core.protocol.Device;
import io.sentry.core.protocol.SentryId;
import java.io.IOException;
Expand Down Expand Up @@ -38,6 +39,8 @@ private Gson provideGson() {
Device.DeviceOrientation.class, new OrientationSerializerAdapter(logger))
.registerTypeAdapter(
Device.DeviceOrientation.class, new OrientationDeserializerAdapter(logger))
.registerTypeAdapter(SentryLevel.class, new SentryLevelSerializerAdapter(logger))
.registerTypeAdapter(SentryLevel.class, new SentryLevelDeserializerAdapter(logger))
.registerTypeAdapterFactory(UnknownPropertiesTypeAdapterFactory.get())
.create();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,8 @@ private Long getMemorySize(ActivityManager.MemoryInfo memInfo) {
// we can get some inspiration here
// https://github.com/flutter/plugins/blob/master/packages/device_info/android/src/main/java/io/flutter/plugins/deviceinfo/DeviceInfoPlugin.java
private Device getDevice() {
// TODO: missing name and usable memory

Device device = new Device();
device.setManufacturer(Build.MANUFACTURER);
device.setBrand(Build.BRAND);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package io.sentry.android.core.adapters;

import static io.sentry.core.ILogger.log;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import io.sentry.core.ILogger;
import io.sentry.core.SentryLevel;
import java.lang.reflect.Type;
import java.util.Locale;

public class SentryLevelDeserializerAdapter implements JsonDeserializer<SentryLevel> {

private final ILogger logger;

public SentryLevelDeserializerAdapter(ILogger logger) {
this.logger = logger;
}

@Override
public SentryLevel deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
try {
return json == null ? null : SentryLevel.valueOf(json.getAsString().toUpperCase(Locale.ROOT));
} catch (Exception e) {
log(logger, SentryLevel.ERROR, "Error when deserializing SentryLevel", e);
}
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.sentry.android.core.adapters;

import static io.sentry.core.ILogger.log;

import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import io.sentry.core.ILogger;
import io.sentry.core.SentryLevel;
import java.lang.reflect.Type;
import java.util.Locale;

public class SentryLevelSerializerAdapter implements JsonSerializer<SentryLevel> {

private final ILogger logger;

public SentryLevelSerializerAdapter(ILogger logger) {
this.logger = logger;
}

@Override
public JsonElement serialize(SentryLevel src, Type typeOfSrc, JsonSerializationContext context) {
try {
return src == null ? null : new JsonPrimitive(src.name().toLowerCase(Locale.ROOT));
} catch (Exception e) {
log(logger, SentryLevel.ERROR, "Error when serializing SentryLevel", e);
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public SentryEvent process(SentryEvent event) {
event.setThreads(sentryThreadFactory.getCurrentThreads());
}

// DefaultAndroidEventProcessor also sets it, which one is correct or which one should be 1st?
if (event.getRelease() == null) {
event.setRelease(options.getRelease());
}
Expand Down
16 changes: 8 additions & 8 deletions sentry-core/src/main/java/io/sentry/core/Sentry.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,35 +74,35 @@ public static SentryId captureException(Throwable throwable) {
return getCurrentHub().captureException(throwable);
}

public void addBreadcrumb(Breadcrumb breadcrumb) {
public static void addBreadcrumb(Breadcrumb breadcrumb) {
getCurrentHub().addBreadcrumb(breadcrumb);
}

public SentryId getLastEventId() {
public static SentryId getLastEventId() {
return getCurrentHub().getLastEventId();
}

public void pushScope() {
public static void pushScope() {
getCurrentHub().pushScope();
}

public void popScope() {
public static void popScope() {
getCurrentHub().popScope();
}

public void withScope(ScopeCallback callback) {
public static void withScope(ScopeCallback callback) {
getCurrentHub().withScope(callback);
}

public void configureScope(ScopeCallback callback) {
public static void configureScope(ScopeCallback callback) {
getCurrentHub().configureScope(callback);
}

public void bindClient(SentryClient client) {
public static void bindClient(SentryClient client) {
getCurrentHub().bindClient(client);
}

public void flush(int timeoutMills) {
public static void flush(int timeoutMills) {
getCurrentHub().flush(timeoutMills);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public OperatingSystem getOperatingSystem() {
}

public void setOperatingSystem(OperatingSystem operatingSystem) {
this.put(Device.TYPE, operatingSystem);
this.put(OperatingSystem.TYPE, operatingSystem);
}

public Runtime getRuntime() {
Expand Down
23 changes: 23 additions & 0 deletions sentry-sample/src/main/java/io/sentry/sample/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import io.sentry.core.Breadcrumb;
import io.sentry.core.Sentry;
import io.sentry.core.SentryLevel;
import io.sentry.core.protocol.User;
import java.util.Collections;
import timber.log.Timber;

public class MainActivity extends AppCompatActivity {
Expand Down Expand Up @@ -33,5 +37,24 @@ protected void onCreate(Bundle savedInstanceState) {
view -> {
Sentry.captureException(new Exception("Some exception."));
});

findViewById(R.id.breadcrumb)
.setOnClickListener(
view -> {
Sentry.configureScope(
scope -> {
Breadcrumb breadcrumb = new Breadcrumb();
breadcrumb.setMessage("Breadcrumb");
scope.addBreadcrumb(breadcrumb);
scope.setExtra("extra", "extra");
scope.setFingerprint(Collections.singletonList("fingerprint"));
scope.setLevel(SentryLevel.INFO);
scope.setTransaction("transaction");
User user = new User();
user.setUsername("username");
scope.setUser(user);
scope.setTag("tag", "tag");
});
});
}
}
5 changes: 5 additions & 0 deletions sentry-sample/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,9 @@
android:layout_height="wrap_content"
android:id="@+id/capture_exception"
android:text="@string/capture_exception"/>

<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/breadcrumb"
android:text="@string/breadcrumb"/>
</LinearLayout>
1 change: 1 addition & 0 deletions sentry-sample/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
<string name="crash_me">Crash Me</string>
<string name="send_message">Send Message</string>
<string name="capture_exception">Capture Exception</string>
<string name="breadcrumb">Breadcrumb</string>
</resources>