diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java
index 328ced375..1334520e0 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java
@@ -1,5 +1,8 @@
package org.briarproject.briar.android.reporting;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -10,6 +13,7 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
+import android.widget.TextView;
import android.widget.Toast;
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
@@ -17,6 +21,9 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.fragment.BaseFragment;
+import org.briarproject.briar.android.settings.AboutFragment;
+
+import java.util.logging.Logger;
import javax.inject.Inject;
@@ -27,14 +34,19 @@ import androidx.recyclerview.widget.RecyclerView;
import static android.view.View.GONE;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
+import static android.widget.Toast.LENGTH_LONG;
import static android.widget.Toast.LENGTH_SHORT;
import static java.util.Objects.requireNonNull;
+import static java.util.logging.Level.WARNING;
+import static java.util.logging.Logger.getLogger;
+import static org.briarproject.bramble.util.LogUtils.logException;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class ReportFormFragment extends BaseFragment {
public final static String TAG = ReportFormFragment.class.getName();
+ private static final Logger LOG = getLogger(TAG);
@Inject
ViewModelProvider.Factory viewModelFactory;
@@ -43,6 +55,7 @@ public class ReportFormFragment extends BaseFragment {
private EditText userCommentView;
private EditText userEmailView;
+ private TextView privacyPolicy;
private CheckBox includeDebugReport;
private Button chevron;
private RecyclerView list;
@@ -73,6 +86,7 @@ public class ReportFormFragment extends BaseFragment {
userCommentView = v.findViewById(R.id.user_comment);
userEmailView = v.findViewById(R.id.user_email);
+ privacyPolicy = v.findViewById(R.id.PrivacyPolicy);
includeDebugReport = v.findViewById(R.id.include_debug_report);
chevron = v.findViewById(R.id.chevron);
list = v.findViewById(R.id.list);
@@ -90,6 +104,19 @@ public class ReportFormFragment extends BaseFragment {
userCommentView.setHint(R.string.describe_crash);
}
+ privacyPolicy.setOnClickListener(View -> {
+ String url = "https://briarproject.org/privacy-policy/";
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setData(Uri.parse(url));
+ try {
+ startActivity(i);
+ } catch (ActivityNotFoundException e) {
+ logException(LOG, WARNING, e);
+ Toast.makeText(requireContext(),
+ R.string.error_start_activity, LENGTH_LONG).show();
+ }
+ });
+
chevron.setOnClickListener(view -> {
boolean show = chevron.getText().equals(getString(R.string.show));
viewModel.showReportData(show);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java
index 881ef846f..e29bb6538 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java
@@ -38,6 +38,7 @@ public class AboutFragment extends Fragment {
private TextView briarWebsite;
private TextView briarSourceCode;
private TextView briarChangelog;
+ private TextView briarPrivacyPolicy;
@Nullable
@Override
@@ -61,6 +62,8 @@ public class AboutFragment extends Fragment {
briarWebsite = requireActivity().findViewById(R.id.BriarWebsite);
briarSourceCode = requireActivity().findViewById(R.id.BriarSourceCode);
briarChangelog = requireActivity().findViewById(R.id.BriarChangelog);
+ briarPrivacyPolicy =
+ requireActivity().findViewById(R.id.BriarPrivacyPolicy);
briarWebsite.setOnClickListener(View -> {
String url = "https://briarproject.org/";
goToUrl(url);
@@ -74,6 +77,11 @@ public class AboutFragment extends Fragment {
"https://code.briarproject.org/briar/briar/-/wikis/changelog";
goToUrl(url);
});
+ briarPrivacyPolicy.setOnClickListener(View -> {
+ String url =
+ "https://briarproject.org/privacy-policy/";
+ goToUrl(url);
+ });
}
private void goToUrl(String url) {
diff --git a/briar-android/src/main/res/layout/fragment_about.xml b/briar-android/src/main/res/layout/fragment_about.xml
index 39537855e..07ba4481f 100644
--- a/briar-android/src/main/res/layout/fragment_about.xml
+++ b/briar-android/src/main/res/layout/fragment_about.xml
@@ -60,6 +60,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/BriarSourceCode" />
+
+
+ app:layout_constraintTop_toBottomOf="@+id/BriarPrivacyPolicy" />
\ No newline at end of file
diff --git a/briar-android/src/main/res/layout/fragment_report_form.xml b/briar-android/src/main/res/layout/fragment_report_form.xml
index 114d161e9..e2b4391b2 100644
--- a/briar-android/src/main/res/layout/fragment_report_form.xml
+++ b/briar-android/src/main/res/layout/fragment_report_form.xml
@@ -56,6 +56,18 @@
+
+
+ app:layout_constraintTop_toBottomOf="@+id/PrivacyPolicy" />
\u2022 Website
\u2022 Source code
\u2022 Changelog
+ \u2022 Privacy Policy
Thanks to all the contributors at the Localization Lab
@@ -736,6 +737,7 @@
Describe what happened (optional)
Enter your feedback
Your email address (optional)
+ By sending us data you agree to our privacy policy
Include anonymous data about the crash
Include anonymous data about this device
User information