From 6765de992d2c6c3fa442a74a2aef500213289b5c Mon Sep 17 00:00:00 2001 From: FlyingP1g FlyingP1g Date: Thu, 30 Jun 2022 00:05:29 +0300 Subject: [PATCH 1/6] Added about menu. --- .../briar/android/settings/AboutFragment.java | 50 +++++++++++++++++ .../src/main/res/drawable/ic_info_dark.xml | 9 +++ .../src/main/res/layout/fragment_about.xml | 55 +++++++++++++++++++ briar-android/src/main/res/values/strings.xml | 7 +++ briar-android/src/main/res/xml/settings.xml | 5 ++ 5 files changed, 126 insertions(+) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java create mode 100644 briar-android/src/main/res/drawable/ic_info_dark.xml create mode 100644 briar-android/src/main/res/layout/fragment_about.xml 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 new file mode 100644 index 000000000..a43586deb --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/AboutFragment.java @@ -0,0 +1,50 @@ +package org.briarproject.briar.android.settings; + +import android.os.Bundle; +import android.text.method.LinkMovementMethod; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.briar.BuildConfig; +import org.briarproject.briar.R; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +@MethodsNotNullByDefault +@ParametersNotNullByDefault +public class AboutFragment extends Fragment { + + private TextView briarVersion; + private TextView briarWebsite; + private TextView briarSourceCode; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_about, container, + false); + } + + @Override + public void onStart() { + super.onStart(); + requireActivity().setTitle(R.string.about_title); + briarVersion = requireActivity().findViewById(R.id.BriarVersion); + briarVersion.setText(getString(R.string.briar_version) + " " + + BuildConfig.VERSION_NAME); + briarWebsite = requireActivity().findViewById(R.id.BriarWebsite); + briarSourceCode = requireActivity().findViewById(R.id.BriarSourceCode); + briarWebsite.setMovementMethod(LinkMovementMethod.getInstance()); + briarSourceCode.setMovementMethod(LinkMovementMethod.getInstance()); + } + +} \ No newline at end of file diff --git a/briar-android/src/main/res/drawable/ic_info_dark.xml b/briar-android/src/main/res/drawable/ic_info_dark.xml new file mode 100644 index 000000000..d86bf1a0c --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_info_dark.xml @@ -0,0 +1,9 @@ + + + diff --git a/briar-android/src/main/res/layout/fragment_about.xml b/briar-android/src/main/res/layout/fragment_about.xml new file mode 100644 index 000000000..121cd611b --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_about.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 3753bd33e..5373851c1 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -684,6 +684,13 @@ Please come back to this screen when you have access to the device. Please unlink your mailbox using the button below.\n\nAfter unlinking your old Mailbox, you can set up a new Mailbox at any time. + + About + Briar Version: + Briar website + Briar source code + Links + Disappearing messages Turning on this setting will make new diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml index f968985ff..c25dced90 100644 --- a/briar-android/src/main/res/xml/settings.xml +++ b/briar-android/src/main/res/xml/settings.xml @@ -29,6 +29,11 @@ android:title="@string/mailbox_settings_title" app:icon="@drawable/ic_mailbox" /> + + Date: Thu, 30 Jun 2022 16:14:10 +0000 Subject: [PATCH 2/6] Update strings.xml --- briar-android/src/main/res/values/strings.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 5373851c1..ffa85f910 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -687,8 +687,6 @@ About Briar Version: - Briar website - Briar source code Links From ddc6606ccfa76a47bf15b843be979d47b0f46775 Mon Sep 17 00:00:00 2001 From: FlyingP1g FlyingP1g Date: Fri, 1 Jul 2022 17:25:14 +0300 Subject: [PATCH 3/6] About menu improvements. --- .../briar/android/settings/AboutFragment.java | 45 ++++++++++++++++--- .../src/main/res/drawable/ic_info_dark.xml | 9 ++-- .../src/main/res/layout/fragment_about.xml | 12 ----- briar-android/src/main/res/values/strings.xml | 4 +- 4 files changed, 49 insertions(+), 21 deletions(-) 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 a43586deb..8c6ce98f0 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 @@ -1,11 +1,14 @@ package org.briarproject.briar.android.settings; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.net.Uri; import android.os.Bundle; -import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; @@ -13,14 +16,24 @@ import org.briarproject.briar.BuildConfig; import org.briarproject.briar.R; +import java.util.logging.Logger; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import static android.widget.Toast.LENGTH_LONG; +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 AboutFragment extends Fragment { + final static String TAG = AboutFragment.class.getName(); + private static final Logger LOG = getLogger(TAG); + private TextView briarVersion; private TextView briarWebsite; private TextView briarSourceCode; @@ -39,12 +52,34 @@ public class AboutFragment extends Fragment { super.onStart(); requireActivity().setTitle(R.string.about_title); briarVersion = requireActivity().findViewById(R.id.BriarVersion); - briarVersion.setText(getString(R.string.briar_version) + " " + - BuildConfig.VERSION_NAME); + briarVersion.setText( + getString(R.string.briar_version, BuildConfig.VERSION_NAME)); briarWebsite = requireActivity().findViewById(R.id.BriarWebsite); briarSourceCode = requireActivity().findViewById(R.id.BriarSourceCode); - briarWebsite.setMovementMethod(LinkMovementMethod.getInstance()); - briarSourceCode.setMovementMethod(LinkMovementMethod.getInstance()); + briarWebsite.setOnClickListener(View -> { + String url = "https://briarproject.org/"; + 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(); + } + }); + briarSourceCode.setOnClickListener(View -> { + String url = "https://code.briarproject.org/briar/briar"; + 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(); + } + }); } } \ No newline at end of file diff --git a/briar-android/src/main/res/drawable/ic_info_dark.xml b/briar-android/src/main/res/drawable/ic_info_dark.xml index d86bf1a0c..aa955e9e5 100644 --- a/briar-android/src/main/res/drawable/ic_info_dark.xml +++ b/briar-android/src/main/res/drawable/ic_info_dark.xml @@ -1,9 +1,12 @@ + tools:ignore="NewApi"> + android:fillColor="#FF000000" + android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" /> diff --git a/briar-android/src/main/res/layout/fragment_about.xml b/briar-android/src/main/res/layout/fragment_about.xml index 121cd611b..277f4ff01 100644 --- a/briar-android/src/main/res/layout/fragment_about.xml +++ b/briar-android/src/main/res/layout/fragment_about.xml @@ -8,11 +8,8 @@ android:id="@+id/BriarVersion" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="16dp" android:text="@string/briar_version" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" - android:textSize="22sp" - android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -20,11 +17,8 @@ android:id="@+id/LinksTitle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="16dp" android:text="@string/links" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" - android:textSize="20sp" - android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/BriarVersion" /> @@ -32,11 +26,8 @@ android:id="@+id/BriarWebsite" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="16dp" android:text="@string/briar_website" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" - android:textSize="22sp" - android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/LinksTitle" /> @@ -44,11 +35,8 @@ android:id="@+id/BriarSourceCode" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="16dp" android:text="@string/briar_source_code" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" - android:textSize="22sp" - android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/BriarWebsite" /> diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index ffa85f910..3b2c7157b 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -686,8 +686,10 @@ About - Briar Version: + Briar Version: %s Links + \u2022 Briar website + \u2022 Briar source code Disappearing messages From 622683f45e7196c911040eb0aea71723f09fab3b Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 6 Jul 2022 15:38:23 +0100 Subject: [PATCH 4/6] Crash as soon as Tor closes the control connection. --- bramble-core/build.gradle | 2 +- .../org/briarproject/bramble/plugin/tor/TorPlugin.java | 7 +++++++ bramble-core/witness.gradle | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle index 1d8e6eab5..631629342 100644 --- a/bramble-core/build.gradle +++ b/bramble-core/build.gradle @@ -16,7 +16,7 @@ dependencies { implementation 'org.bitlet:weupnp:0.1.4' implementation 'net.i2p.crypto:eddsa:0.2.0' implementation 'org.whispersystems:curve25519-java:0.5.0' - implementation 'org.briarproject:jtorctl:0.4' + implementation 'org.briarproject:jtorctl:0.5' //noinspection GradleDependency implementation "com.squareup.okhttp3:okhttp:$okhttp_version" diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java index a4a3f4530..1b51547a9 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java @@ -800,6 +800,13 @@ abstract class TorPlugin implements DuplexPlugin, EventHandler, EventListener { } } + @Override + public void controlConnectionClosed() { + if (state.isTorRunning()) { + throw new RuntimeException("Control connection closed"); + } + } + private String removeSeverity(String msg) { return msg.replaceFirst("[^ ]+ ", ""); } diff --git a/bramble-core/witness.gradle b/bramble-core/witness.gradle index 7689c5821..f1af7ac8f 100644 --- a/bramble-core/witness.gradle +++ b/bramble-core/witness.gradle @@ -35,7 +35,7 @@ dependencyVerification { 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.bitlet:weupnp:0.1.4:weupnp-0.1.4.jar:88df7e6504929d00bdb832863761385c68ab92af945b04f0770b126270a444fb', 'org.bouncycastle:bcprov-jdk15to18:1.70:bcprov-jdk15to18-1.70.jar:7df4c54f29ce2dd616dc3b198ca4db3dfcc79e3cb397c084a0aff97b85c0bf38', - 'org.briarproject:jtorctl:0.4:jtorctl-0.4.jar:4e61f59dc9f3984438a7151c4df8d7c1f83d5fb3eb8c151acfc794a8fef85a36', + 'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', From 12ca74f86aba9971f284fc3af4e3bf2841dadcd4 Mon Sep 17 00:00:00 2001 From: FlyingP1g FlyingP1g Date: Thu, 7 Jul 2022 16:26:12 +0300 Subject: [PATCH 5/6] Minor about menu improvements. --- briar-android/src/main/res/layout/fragment_about.xml | 4 +++- briar-android/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/briar-android/src/main/res/layout/fragment_about.xml b/briar-android/src/main/res/layout/fragment_about.xml index 277f4ff01..87881bb00 100644 --- a/briar-android/src/main/res/layout/fragment_about.xml +++ b/briar-android/src/main/res/layout/fragment_about.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:padding="16dp"> diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 3b2c7157b..c167c38f6 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -688,8 +688,8 @@ About Briar Version: %s Links - \u2022 Briar website - \u2022 Briar source code + \u2022 Briar website + \u2022 Briar source code Disappearing messages From aa56aba1a5c3a8b3d954bcba2998f8b76a1d0b83 Mon Sep 17 00:00:00 2001 From: Thomas <3169-thomas@users.noreply.code.briarproject.org> Date: Mon, 11 Jul 2022 11:40:01 +0000 Subject: [PATCH 6/6] Create CONTRIBUTING.md (describe folder names) --- CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..1925761f0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,10 @@ +Folder-Description: +=================== +* `briar-*`: Specifically for the Briar app (Phone/Desktop/Headless) +* `bramble-*`: The protocol stack - not necessarily Briar-dependent + +--- + +* `*-api`: public stuff that can be referenced from other packages and modules - mostly interfaces + a few utility classes +* `*-core`: implementations of api that are portable across Android/Desktop/Headless +* `*-java`: implementations of api that are specific to Desktop & Headless