briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-03-08T15:59:02Zhttps://code.briarproject.org/briar/briar/-/issues/509Tapping QR code viewfinder should initiate auto focus2018-03-08T15:59:02ZakwizgranTapping QR code viewfinder should initiate auto focusFeedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement someth...Feedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement something similar to assist the scanning.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/283Bluetooth key exchange task won't die2018-03-08T15:58:15ZakwizgranBluetooth key exchange task won't dieAfter failing to add a contact on the Sony Xperia Tipo (Android 4.0.4), the Bluetooth key exchange task continued to make failed connection attempts every two seconds. I can't tell whether this was related to the initial failure and/or t...After failing to add a contact on the Sony Xperia Tipo (Android 4.0.4), the Bluetooth key exchange task continued to make failed connection attempts every two seconds. I can't tell whether this was related to the initial failure and/or the failure of subsequent attempts to add a contact.
```
04-04 16:36:42.279 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:36:42.539 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.539 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.549 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: Connectable
04-04 16:36:42.649 2133-2133/org.briarproject I/DroidtoothPlugin: Bluetooth enabled
04-04 16:36:42.649 2133-11695/org.briarproject I/DroidtoothPlugin: Local address D0:51:62:52:53:62
04-04 16:36:42.799 2133-2133/org.briarproject I/ShowQrCodeFragment: Bluetooth enabled
04-04 16:36:43.369 2133-11695/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:36:43.389 2133-12290/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:36:43.389 2133-12290/org.briarproject I/DroidtoothPlugin: Key agreement UUID b32e3352-044d-30c0-b542-e81c88fff7d1
04-04 16:36:43.389 2133-12290/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:36:43.439 2133-11695/org.briarproject I/DroidtoothPlugin: Socket bound
04-04 16:36:43.449 2133-11694/org.briarproject I/PollerImpl: Polling DroidtoothPlugin
04-04 16:36:55.729 2133-11870/org.briarproject I/DroidtoothPlugin: bt: Incoming connection
04-04 16:36:55.729 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Waiting for connection
04-04 16:36:56.739 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Waiting for connection
04-04 16:36:57.099 2133-12293/org.briarproject I/QrCodeDecoder: Decoding barcode took 206 ms
04-04 16:36:57.099 2133-2133/org.briarproject I/ShowQrCodeFragment: Got result from decoder
04-04 16:36:57.099 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:36:57.419 2133-2133/org.briarproject I/CameraView: Surface destroyed
04-04 16:36:57.439 2133-12297/org.briarproject I/KeyAgreementConnector: Starting outgoing BQP connections
04-04 16:36:57.439 2133-11694/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID a76f5a79-4148-326f-a831-b450cd7378a9
04-04 16:36:57.449 2133-11694/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:36:57.449 2133-11694/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:36:57.699 2133-11694/org.briarproject I/DroidtoothPlugin: Connected to 64:A7:69:F6:98:D1
04-04 16:36:57.699 2133-11694/org.briarproject I/KeyAgreementConnector: bt: Outgoing connection
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementConnector: Cancelled task
04-04 16:36:57.699 2133-12297/org.briarproject I/KeyAgreementTaskImpl: Starting BQP protocol
04-04 16:37:00.439 2133-12297/org.briarproject I/Sec1KeyParser: Parsing public key took 1610 ms
04-04 16:37:02.339 2133-12297/org.briarproject I/CryptoComponentImpl: Deriving shared secret took 1899 ms
04-04 16:37:06.109 2133-12297/org.briarproject I/KeyAgreementTaskImpl: Finished BQP protocol
04-04 16:37:17.559 2133-11870/org.briarproject I/PollerImpl: Polling DroidtoothPlugin
04-04 16:38:13.959 2133-12294/org.briarproject I/ShowQrCodeFragment: Opening camera
04-04 16:38:13.959 2133-12347/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:38:13.959 2133-12347/org.briarproject I/DroidtoothPlugin: Key agreement UUID 03cdea53-5012-378e-b2fe-2625aa2bc46f
04-04 16:38:13.959 2133-12347/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Display orientation 90 degrees
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Scene modes: [auto, night, snow, sports]
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Focus modes: [infinity, fixed]
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Setting focus mode to fixed
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Size 640x480, stretch 2.1440537, pixels 307200, score 143280.0
04-04 16:38:14.809 2133-2133/org.briarproject I/CameraView: Size 640x368, stretch 2.7965918, pixels 235520, score 84216.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 512x288, stretch 2.8587382, pixels 147456, score 51580.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 384x288, stretch 2.1440537, pixels 110592, score 51580.797
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 352x288, stretch 1.9653825, pixels 101376, score 51580.8
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 320x240, stretch 2.1440537, pixels 76800, score 35820.0
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Size 176x144, stretch 1.9653825, pixels 25344, score 12895.2
04-04 16:38:14.819 2133-2133/org.briarproject I/CameraView: Best size 640x480
04-04 16:38:27.389 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:38:27.839 2133-12365/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:38:30.579 2133-12363/org.briarproject I/ChooseIdentityFragment: Loading authors took 2 ms
04-04 16:38:31.629 2133-12369/org.briarproject I/KeyAgreementConnector: Starting BQP listeners
04-04 16:38:31.649 2133-12369/org.briarproject I/DroidtoothPlugin: Key agreement UUID bafa97a2-46a6-3b19-a2a2-ea62fb7db10f
04-04 16:38:31.649 2133-12369/org.briarproject I/InsecureBluetooth: Listening with new API
04-04 16:38:31.649 2133-12226/org.briarproject I/ShowQrCodeFragment: Opening camera
04-04 16:38:31.679 2133-2133/org.briarproject I/CameraView: Surface created
04-04 16:38:31.679 2133-2133/org.briarproject I/CameraView: Surface changed: 320x199
04-04 16:38:32.359 2133-2133/org.briarproject I/CameraView: Display orientation 90 degrees
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Scene modes: [auto, night, snow, sports]
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Focus modes: [infinity, fixed]
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Setting focus mode to fixed
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 640x480, stretch 2.1440537, pixels 307200, score 143280.0
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 640x368, stretch 2.7965918, pixels 235520, score 84216.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 512x288, stretch 2.8587382, pixels 147456, score 51580.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 384x288, stretch 2.1440537, pixels 110592, score 51580.797
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 352x288, stretch 1.9653825, pixels 101376, score 51580.8
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 320x240, stretch 2.1440537, pixels 76800, score 35820.0
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Size 176x144, stretch 1.9653825, pixels 25344, score 12895.2
04-04 16:38:32.369 2133-2133/org.briarproject I/CameraView: Best size 640x480
04-04 16:38:55.719 2133-11870/org.briarproject I/DroidtoothPlugin: bt: Incoming connection
04-04 16:38:55.719 2133-11870/org.briarproject I/KeyAgreementConnector: bt: Data available
04-04 16:38:56.739 2133-11870/org.briarproject I/PollerImpl: Polling TorPlugin
04-04 16:39:02.229 2133-12293/org.briarproject I/QrCodeDecoder: Decoding barcode took 178 ms
04-04 16:39:02.229 2133-2133/org.briarproject I/ShowQrCodeFragment: Got result from decoder
04-04 16:39:02.229 2133-2133/org.briarproject I/ShowQrCodeFragment: Releasing camera
04-04 16:39:02.559 2133-2133/org.briarproject I/CameraView: Surface destroyed
04-04 16:39:02.579 2133-12385/org.briarproject I/KeyAgreementConnector: Starting outgoing BQP connections
04-04 16:39:02.579 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:02.579 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:02.579 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementConnector: Stopping BQP listeners
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementConnector: Cancelled task
04-04 16:39:02.589 2133-12385/org.briarproject I/KeyAgreementTaskImpl: Starting BQP protocol
04-04 16:39:02.599 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:04.299 2133-12385/org.briarproject I/Sec1KeyParser: Parsing public key took 1705 ms
04-04 16:39:04.679 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:04.679 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:04.679 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:04.839 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:06.839 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:06.839 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:06.839 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:07.059 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
04-04 16:39:07.169 2133-12385/org.briarproject I/CryptoComponentImpl: Deriving shared secret took 2869 ms
04-04 16:39:07.199 2133-12385/org.briarproject I/KeyAgreementTaskImpl: Finished BQP protocol
04-04 16:39:09.059 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:39:09.059 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:39:09.059 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:39:09.179 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
```
The connection attempts continued every 2 seconds, indefinitely:
```
04-04 16:42:19.949 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to key agreement UUID 9b9de3f9-dcf4-3eb1-a134-4db19a63cb74
04-04 16:42:19.949 2133-11870/org.briarproject I/InsecureBluetooth: Creating socket with new API
04-04 16:42:19.949 2133-11870/org.briarproject I/DroidtoothPlugin: Connecting to 64:A7:69:F6:98:D1
04-04 16:42:20.119 2133-11870/org.briarproject I/DroidtoothPlugin: Failed to connect to 64:A7:69:F6:98:D1
```
Manually disabling Bluetooth finally killed the task:
```
04-04 16:44:26.599 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:44:26.619 2133-2133/org.briarproject I/DroidtoothPlugin: Scan mode: None
04-04 16:44:28.489 2133-2133/org.briarproject I/DroidtoothPlugin: Bluetooth disabled
04-04 16:44:28.489 2133-11695/org.briarproject I/DroidtoothPlugin: java.io.IOException: Operation Canceled
```Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1181Error icon is blurry on Android 42018-03-08T15:57:48ZakwizgranError icon is blurry on Android 4Screenshot from Galaxy Nexus (Android 4.3):
![device-2018-03-08-144415](/uploads/573593a3e774ea8dc657a24c4212508d/device-2018-03-08-144415.png)
The screenshot comes from the maintenance-0.16 branch, but I think master uses the same icon.Screenshot from Galaxy Nexus (Android 4.3):
![device-2018-03-08-144415](/uploads/573593a3e774ea8dc657a24c4212508d/device-2018-03-08-144415.png)
The screenshot comes from the maintenance-0.16 branch, but I think master uses the same icon.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1174Crash when opening link from RSS post2018-03-08T11:33:15ZakwizgranCrash when opening link from RSS postI got this crash when opening a link from an RSS post, before the link warning dialog appeared.
* Android version: 4.3
* Phone model: Samsung Galaxy Nexus (yakju)
* Briar version: 0.16.18 (812522a)
Stacktrace:
```
java.lang.ClassCastEx...I got this crash when opening a link from an RSS post, before the link warning dialog appeared.
* Android version: 4.3
* Phone model: Samsung Galaxy Nexus (yakju)
* Briar version: 0.16.18 (812522a)
Stacktrace:
```
java.lang.ClassCastException: android.support.v7.widget.TintContextWrapper cannot be cast to android.support.v7.app.AppCompatActivity
at org.briarproject.briar.android.util.UiUtils$1.onClick(UiUtils.java:125)
at org.briarproject.briar.android.view.ArticleMovementMethod.onTouchEvent(ArticleMovementMethod.java:61)
at android.widget.TextView.onTouchEvent(TextView.java:7609)
at android.view.View.dispatchTouchEvent(View.java:7384)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2209)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1952)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
at android.view.View.dispatchPointerEvent(View.java:7564)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:132)
at android.os.Looper.loop(Looper.java:124)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1176NPE: ScreenFilterMonitor.getApps()2018-03-08T11:33:15ZTorsten GroteNPE: ScreenFilterMonitor.getApps()When you start Briar on an outdated database, you get the notification about the database being corrupted. When you click this, you currently get this crash on `master`:
```
E/ACRA: ACRA caught a RuntimeException for org.briarproject.br...When you start Briar on an outdated database, you get the notification about the database being corrupted. When you click this, you currently get this crash on `master`:
```
E/ACRA: ACRA caught a RuntimeException for org.briarproject.briar.android.debug
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.android.debug/org.briarproject.briar.android.StartupFailureActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Collection org.briarproject.briar.api.android.ScreenFilterMonitor.getApps()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Collection org.briarproject.briar.api.android.ScreenFilterMonitor.getApps()' on a null object reference
at org.briarproject.briar.android.activity.BaseActivity.protectToolbar(BaseActivity.java:218)
at org.briarproject.briar.android.activity.BaseActivity.onStart(BaseActivity.java:106)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)
at android.app.Activity.performStart(Activity.java:7019)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2741)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1168Show status message while opening and migrating DB2018-03-08T11:33:15ZakwizgranShow status message while opening and migrating DBAndroid Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1068CameraException: No back-facing camera2018-03-08T11:33:15ZakwizgranCameraException: No back-facing camera```
08-15 21:50:11.634 I/CameraView( 2090): Opening camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090):...```
08-15 21:50:11.634 I/CameraView( 2090): Opening camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:94)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:148)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Handler.handleCallback(Handler.java:739)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Handler.dispatchMessage(Handler.java:95)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Looper.loop(Looper.java:135)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.app.ActivityThread.main(ActivityThread.java:5258)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at java.lang.reflect.Method.invoke(Native Method)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at java.lang.reflect.Method.invoke(Method.java:372)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
```
* Android version: 5.1.1
* Phone model: PO9659TAQ-10182 (rk312x)
* Briar version: 0.16.9 (0785348)
* User comment: "Can't add a contact, when I click on the "+" I get a message "camera error"."Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1136Improve UX for startup failures2018-02-28T15:56:53ZakwizgranImprove UX for startup failuresImprove the startup failure messages, so it says "this account was created with an older/newer version of briar" if the schema version is wrong, rather than saying the DB is corrupt.Improve the startup failure messages, so it says "this account was created with an older/newer version of briar" if the schema version is wrong, rather than saying the DB is corrupt.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1092Investigate performance of metadata queries2018-02-22T17:16:00ZakwizgranInvestigate performance of metadata queriesInvestigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Dat...Investigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId, Metadata)
* Database#getMessageMetadata(T, MessageId)
* Database#getMessageMetadataForValidator(T, MessageId)
http://www.h2database.com/html/performance.html#explain_planAndroid 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1134Improve error message when scanning unsupported QR code2018-02-22T17:15:50ZTorsten GroteImprove error message when scanning unsupported QR codeWhen scanning a QR code from an unsupported protocol version, the error message just says: `The Qr code is invalid`
It probably should say something like:
`The other person is using an outdated version of Briar. They need to upgrade fi...When scanning a QR code from an unsupported protocol version, the error message just says: `The Qr code is invalid`
It probably should say something like:
`The other person is using an outdated version of Briar. They need to upgrade first, before you can add them.`
Subtask of #617Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1164Bluetooth address and UUID aren't stored until contact connections are enabled2018-02-22T17:11:39ZakwizgranBluetooth address and UUID aren't stored until contact connections are enabledThe fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh acc...The fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh account, add a contact via Bluetooth
* Messages can be exchanged with the contact
* Sign out and back in
* Enable Bluetooth contact connections in Briar settings
* Bluetooth plugin can't connect to contact because it doesn't have contact's address or UUID
On the beta branch, which doesn't have the fix for #1001, the Bluetooth plugin connects in the last step.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1173Use first byte of QR code payload to indicate format version2018-02-22T17:11:38ZakwizgranUse first byte of QR code payload to indicate format versionThe QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to ...The QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to the first byte of the payload and reserve the byte that's at the start of base64-encoded BDF lists so it's never used as a format version. This will allow us to detect incompatible versions by checking the first byte without having to try different encodings.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1086When building with AndroidStudio, finder opens in a wrong landing folder2018-02-16T18:26:22ZWikinautWhen building with AndroidStudio, finder opens in a wrong landing folderWhen building the debug version apk, anbd when I click in the notification the text "open in finder", an incorrect landing folder is selected, no apk is present there.
The correct folder location appears to be /briar-android/build/outpu...When building the debug version apk, anbd when I click in the notification the text "open in finder", an incorrect landing folder is selected, no apk is present there.
The correct folder location appears to be /briar-android/build/outputs/generated/apk .https://code.briarproject.org/briar/briar/-/issues/236Migrate to Curve25519 and Ed255192018-02-16T18:19:21Zstr4dMigrate to Curve25519 and Ed25519See comments in #117.See comments in #117.Android 1.0https://code.briarproject.org/briar/briar/-/issues/1001Briar connects to contacts via Bluetooth when configured not to2018-02-08T15:01:28ZakwizgranBriar connects to contacts via Bluetooth when configured not toA tester reported that their phone connected to a contact via Bluetooth when "Connect over Bluetooth: Only when adding contacts" was set.
This is because the setting only determines whether we turn on Bluetooth. Once it's turned on for ...A tester reported that their phone connected to a contact via Bluetooth when "Connect over Bluetooth: Only when adding contacts" was set.
This is because the setting only determines whether we turn on Bluetooth. Once it's turned on for whatever reason, we always use it for connecting to contacts regardless of the setting. We should either change the behaviour or change the way the setting is described.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/594Implement Database Schema Update Mechanism2018-02-05T11:32:07ZTorsten GroteImplement Database Schema Update MechanismWhen the database schema changes in new versions, these changes should be applied to old versions of the schema.When the database schema changes in new versions, these changes should be applied to old versions of the schema.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1143'Screen overlay detected' error dialog wrongly appears2018-02-01T17:22:44Z-'Screen overlay detected' error dialog wrongly appears1. The 'Screen overlay detected' dialog prevents me from sending any kind of text. It claims I have multiple apps, however all of the apps listed do not have permissions.
2. After clicking 'continue', sending the message again will agai...1. The 'Screen overlay detected' dialog prevents me from sending any kind of text. It claims I have multiple apps, however all of the apps listed do not have permissions.
2. After clicking 'continue', sending the message again will again show 'Screen overlay detected'
3. The behaviour in 2. can be circumvent by clicking by shutting down the screen and activating it again.
Phone: HTCm8
Android version: 6.0
Suggestions:
Maybe you are only checking if the apps request the permission and not if they actually have it?
https://code.briarproject.org/akwizgran/briar/blob/master/briar-android/src/main/java/org/briarproject/briar/android/ScreenFilterMonitorImpl.java#L105
Thank you for your workAndroid Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1116NPE when pressing back button in NavDrawerActivity2018-02-01T17:22:44ZakwizgranNPE when pressing back button in NavDrawerActivity* Android version: 4.4.2
* Phone model: GT-I9506 (ks01ltexx)
* Briar version: 0.16.10 (ef2286a)
Stack trace:
```
java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1471)
at android.os.Parcel.re...* Android version: 4.4.2
* Phone model: GT-I9506 (ks01ltexx)
* Briar version: 0.16.10 (ef2286a)
Stack trace:
```
java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1471)
at android.os.Parcel.readException(Parcel.java:1419)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2309)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1437)
at android.app.Activity.startActivityForResult(Activity.java:3511)
at android.app.Activity.startActivityForResult(Activity.java:3472)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843)
at android.app.Activity.startActivity(Activity.java:3714)
at android.app.Activity.startActivity(Activity.java:3682)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onBackPressed(NavDrawerActivity.java:197)
at android.app.Activity.onKeyUp(Activity.java:2274)
at android.view.KeyEvent.dispatch(KeyEvent.java:2985)
at android.app.Activity.dispatchKeyEvent(Activity.java:2508)
at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:531)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:241)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2174)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4492)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4459)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4158)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4215)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4191)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4351)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2257)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1907)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1898)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2234)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5506)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1148LAN plugin picks wrong network interface2018-02-01T17:22:44ZakwizgranLAN plugin picks wrong network interfaceDuring testing, @grote and @str4d were unable to add each other as contacts because @str4d's LAN plugin picked the wrong network interface, so although the devices were connected to the same wifi network they weren't able to connect to e...During testing, @grote and @str4d were unable to add each other as contacts because @str4d's LAN plugin picked the wrong network interface, so although the devices were connected to the same wifi network they weren't able to connect to each other.
One of the addresses was in the 10/8 range, the other was in the 192.168/16 range.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1162Syncing a lot of messages causes a flood of GenerateOffer tasks2018-02-01T17:22:44ZakwizgranSyncing a lot of messages causes a flood of GenerateOffer tasksWhen syncing a forum with 100+ posts, every post that's received causes a MessageSharedEvent to be broadcast, which causes every DuplexOutgoingSession to queue a GenerateOffer task on the DatabaseExecutor. These tasks overload the execut...When syncing a forum with 100+ posts, every post that's received causes a MessageSharedEvent to be broadcast, which causes every DuplexOutgoingSession to queue a GenerateOffer task on the DatabaseExecutor. These tasks overload the executor and are still being run long after the last post is received, which hurts performance and wastes resources.
At minimum, DuplexOutgoingSession should check whether it already has a task that's been queued but not started. A more complete solution would involve sharing this logic between sessions with the same contact, and perhaps attaching information about the message's visibility to the event so unaffected sessions can avoid reacting to the event.akwizgranakwizgran