mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-10 09:37:42 +00:00
Merge pull request #4025 from keymanapp/fix/android/engine/cleanup-sentry-breadcrumbs
fix(android/app,oem/fv/android): Sanitize Sentry navigation breadcrumbs
This commit is contained in:
commit
fff37386ea
2 changed files with 39 additions and 3 deletions
|
|
@ -90,6 +90,7 @@ import android.widget.SeekBar;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import io.sentry.SentryLevel;
|
||||
import io.sentry.android.core.SentryAndroid;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements OnKeyboardEventListener, OnKeyboardDownloadEventListener,
|
||||
|
|
@ -129,6 +130,23 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardEventLi
|
|||
checkSendCrashReport();
|
||||
if (KMManager.getMaySendCrashReport()) {
|
||||
SentryAndroid.init(context, options -> {
|
||||
options.setBeforeBreadcrumb((breadcrumb, hint) -> {
|
||||
String NAVIGATION_PATTERN = "^(.*)?(keyboard\\.html#[^-]+)-.*$";
|
||||
if ("navigation".equals(breadcrumb.getCategory()) && breadcrumb.getLevel() == SentryLevel.INFO &&
|
||||
((breadcrumb.getData("from") != null) || (breadcrumb.getData("to") != null)) ) {
|
||||
// Sanitize navigation breadcrumbs
|
||||
String dataFrom = String.valueOf(breadcrumb.getData("from"));
|
||||
dataFrom = dataFrom.replaceAll(NAVIGATION_PATTERN, "$1$2");
|
||||
breadcrumb.setData("from", dataFrom);
|
||||
String dataTo = String.valueOf(breadcrumb.getData("to"));
|
||||
dataTo = dataTo.replaceAll(NAVIGATION_PATTERN, "$1$2");
|
||||
breadcrumb.setData("to", dataTo);
|
||||
|
||||
return breadcrumb;
|
||||
} else {
|
||||
return breadcrumb;
|
||||
}
|
||||
});
|
||||
options.setRelease("release-" + com.tavultesoft.kmapro.BuildConfig.VERSION_NAME);
|
||||
options.setEnvironment(com.tavultesoft.kmapro.BuildConfig.VERSION_ENVIRONMENT);
|
||||
});
|
||||
|
|
@ -1026,4 +1044,4 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardEventLi
|
|||
outStream.flush();
|
||||
outStream.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.webkit.WebViewClient;
|
|||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import io.sentry.SentryLevel;
|
||||
import io.sentry.android.core.SentryAndroid;
|
||||
|
||||
import com.tavultesoft.kmea.*;
|
||||
|
|
@ -28,8 +29,25 @@ public class MainActivity extends AppCompatActivity {
|
|||
super.onCreate(savedInstanceState);
|
||||
|
||||
SentryAndroid.init(this, options -> {
|
||||
options.setRelease("release-"+com.firstvoices.keyboards.BuildConfig.VERSION_NAME);
|
||||
options.setEnvironment(com.firstvoices.keyboards.BuildConfig.VERSION_ENVIRONMENT);
|
||||
options.setBeforeBreadcrumb((breadcrumb, hint) -> {
|
||||
String NAVIGATION_PATTERN = "^(.*)?(keyboard\\.html#[^-]+)-(.)*$";
|
||||
if ("navigation".equals(breadcrumb.getCategory()) && breadcrumb.getLevel() == SentryLevel.INFO &&
|
||||
((breadcrumb.getData("from") != null) || (breadcrumb.getData("to") != null)) ) {
|
||||
// Sanitize navigation breadcrumbs
|
||||
String dataFrom = String.valueOf(breadcrumb.getData("from"));
|
||||
dataFrom = dataFrom.replaceAll(NAVIGATION_PATTERN, "$1$2");
|
||||
breadcrumb.setData("from", dataFrom);
|
||||
String dataTo = String.valueOf(breadcrumb.getData("to"));
|
||||
dataTo = dataTo.replaceAll(NAVIGATION_PATTERN, "$1$2");
|
||||
breadcrumb.setData("to", dataTo);
|
||||
|
||||
return breadcrumb;
|
||||
} else {
|
||||
return breadcrumb;
|
||||
}
|
||||
});
|
||||
options.setRelease("release-"+com.firstvoices.keyboards.BuildConfig.VERSION_NAME);
|
||||
options.setEnvironment(com.firstvoices.keyboards.BuildConfig.VERSION_ENVIRONMENT);
|
||||
});
|
||||
|
||||
setContentView(R.layout.activity_main);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue