From cb30c3885aca590579199686a083b7cae8a28e03 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Tue, 2 Oct 2018 17:53:11 -0300
Subject: [PATCH] Localize crash screen in language defined in settings

---
 .../briar/android/activity/BaseActivity.java         |  5 +++++
 .../briar/android/reporting/DevReportActivity.java   | 12 ++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java
index 4e8dcc9ba9..3d29e2dffe 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java
@@ -24,6 +24,7 @@ import org.briarproject.briar.android.controller.ActivityLifecycleController;
 import org.briarproject.briar.android.forum.ForumModule;
 import org.briarproject.briar.android.fragment.BaseFragment;
 import org.briarproject.briar.android.fragment.ScreenFilterDialogFragment;
+import org.briarproject.briar.android.reporting.DevReportActivity;
 import org.briarproject.briar.android.util.UiUtils;
 import org.briarproject.briar.android.widget.TapSafeFrameLayout;
 import org.briarproject.briar.android.widget.TapSafeFrameLayout.OnTapFilteredListener;
@@ -42,6 +43,10 @@ import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
 import static android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT;
 import static org.briarproject.briar.android.TestingConstants.PREVENT_SCREENSHOTS;
 
+/**
+ * Warning: Some activities don't extend {@link BaseActivity}.
+ *          E.g. {@link DevReportActivity}
+ */
 public abstract class BaseActivity extends AppCompatActivity
 		implements DestroyableContext, OnTapFilteredListener {
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
index 9a5329c6bf..2b29c79d5d 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java
@@ -1,5 +1,6 @@
 package org.briarproject.briar.android.reporting;
 
+import android.content.Context;
 import android.content.res.Configuration;
 import android.os.AsyncTask;
 import android.os.Bundle;
@@ -24,6 +25,7 @@ import org.acra.collector.CrashReportData;
 import org.acra.dialog.BaseCrashReportDialog;
 import org.acra.file.CrashReportPersister;
 import org.briarproject.briar.R;
+import org.briarproject.briar.android.Localizer;
 import org.briarproject.briar.android.util.UserFeedback;
 
 import java.io.File;
@@ -38,6 +40,7 @@ import static android.os.Build.VERSION.SDK_INT;
 import static android.view.View.GONE;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
+import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
 import static android.view.inputmethod.InputMethodManager.SHOW_FORCED;
 import static java.util.logging.Level.WARNING;
 import static org.acra.ACRAConstants.EXTRA_REPORT_FILE;
@@ -47,6 +50,7 @@ import static org.acra.ReportField.APP_VERSION_NAME;
 import static org.acra.ReportField.PACKAGE_NAME;
 import static org.acra.ReportField.REPORT_ID;
 import static org.acra.ReportField.STACK_TRACE;
+import static org.briarproject.briar.android.TestingConstants.PREVENT_SCREENSHOTS;
 
 public class DevReportActivity extends BaseCrashReportDialog
 		implements CompoundButton.OnCheckedChangeListener {
@@ -107,6 +111,8 @@ public class DevReportActivity extends BaseCrashReportDialog
 	public void init(Bundle state) {
 		super.init(state);
 
+		if (PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE);
+
 		getDelegate().setContentView(R.layout.activity_dev_report);
 
 		Toolbar tb = findViewById(R.id.toolbar);
@@ -166,6 +172,12 @@ public class DevReportActivity extends BaseCrashReportDialog
 			requestReport.setVisibility(VISIBLE);
 	}
 
+	@Override
+	protected void attachBaseContext(Context base) {
+		super.attachBaseContext(
+				Localizer.getInstance().setLocale(base));
+	}
+
 	@Override
 	public void onPostCreate(Bundle state) {
 		super.onPostCreate(state);
-- 
GitLab