briar issueshttps://code.briarproject.org/briar/briar/-/issues2017-08-01T13:34:59Zhttps://code.briarproject.org/briar/briar/-/issues/1009NPE in CameraView2017-08-01T13:34:59ZakwizgranNPE in CameraView```
java.lang.NullPointerException
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:95)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)...```
java.lang.NullPointerException
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:95)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)
at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
```
* Android version: 4.4.2
* Phone model: E39 (e39_emea_gen1)
* Briar version: 0.16.2 (63befcc)
* User feedback: "Crashed when adding new person"
```
"android.hardware.camera" : true,
"android.hardware.camera.any" : true,
"android.hardware.camera.autofocus" : true,
"android.hardware.camera.flash" : true,
"android.hardware.camera.front" : true,
```
```
"orientation" : "ORIENTATION_PORTRAIT",
"screenHeightDp" : 615,
"screenLayout" : "SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR",
"screenWidthDp" : 360,
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1008IllegalArgumentException when decoding QR code2017-08-01T13:36:34ZakwizgranIllegalArgumentException when decoding QR code```
java.lang.IllegalArgumentException: bad base-64
at android.util.Base64.decode(Base64.java:161)
at android.util.Base64.decode(Base64.java:136)
at android.util.Base64.decode(Base64.java:118)
at org.briar...```
java.lang.IllegalArgumentException: bad base-64
at android.util.Base64.decode(Base64.java:161)
at android.util.Base64.decode(Base64.java:136)
at android.util.Base64.decode(Base64.java:118)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.qrCodeScanned(ShowQrCodeFragment.java:213)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.access$1000(ShowQrCodeFragment.java:62)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment$11.run(ShowQrCodeFragment.java:353)
at org.briarproject.briar.android.fragment.BaseFragment$1.run(BaseFragment.java:91)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5695)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
```
Those Android libraries sure do love to throw RuntimeExceptions...Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1007NPE during activity transition2018-06-08T15:22:19ZakwizgranNPE during activity transition```
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.transformMatrixToLocal(android.graphics.Matrix)' on a null object reference
at android.app.ActivityTransitionCoordinator.setSharedE...```
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.transformMatrixToLocal(android.graphics.Matrix)' on a null object reference
at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:485)
at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:583)
at android.app.EnterTransitionCoordinator.startSharedElementTransition(EnterTransitionCoordinator.java:405)
at android.app.EnterTransitionCoordinator.-wrap4(EnterTransitionCoordinator.java)
at android.app.EnterTransitionCoordinator$5$1$1.run(EnterTransitionCoordinator.java:475)
at android.app.ActivityTransitionCoordinator.startTransition(ActivityTransitionCoordinator.java:836)
at android.app.EnterTransitionCoordinator$5$1.onPreDraw(EnterTransitionCoordinator.java:472)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1013)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2510)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1519)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7113)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
at android.view.Choreographer.doCallbacks(Choreographer.java:702)
at android.view.Choreographer.doFrame(Choreographer.java:638)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6780)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
```
* Android version: 7.0
* Phone model: SM-T813 (gts210vewifixx)
* Briar version: 0.16.2 (63befcc)
* User feedback: "Failed reblogging a contact's blog entry with a Samsung s2-tablet."Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1006IllegalStateException in BaseControllerImpl2017-07-28T16:53:00ZakwizgranIllegalStateException in BaseControllerImpl```
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.beta/org.briarproject.briar.android.blog.BlogActivity}: java.lang.IllegalStateException
at android.app.ActivityThread.performLaunchActi...```
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.beta/org.briarproject.briar.android.blog.BlogActivity}: java.lang.IllegalStateException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2451)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2511)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4120)
at android.app.ActivityThread.access$1000(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5621)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
Caused by: java.lang.IllegalStateException
at org.briarproject.briar.android.blog.BaseControllerImpl.onStart(BaseControllerImpl.java:72)
at org.briarproject.briar.android.blog.BlogControllerImpl.onActivityStart(BlogControllerImpl.java:70)
at org.briarproject.briar.android.activity.BaseActivity.onStart(BaseActivity.java:95)
at org.briarproject.briar.android.activity.BriarActivity.onStart(BriarActivity.java:60)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1241)
at android.app.Activity.performStart(Activity.java:6387)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2414)
... 10 more
java.lang.IllegalStateException
at org.briarproject.briar.android.blog.BaseControllerImpl.onStart(BaseControllerImpl.java:72)
at org.briarproject.briar.android.blog.BlogControllerImpl.onActivityStart(BlogControllerImpl.java:70)
at org.briarproject.briar.android.activity.BaseActivity.onStart(BaseActivity.java:95)
at org.briarproject.briar.android.activity.BriarActivity.onStart(BriarActivity.java:60)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1241)
at android.app.Activity.performStart(Activity.java:6387)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2414)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2511)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4120)
at android.app.ActivityThread.access$1000(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5621)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
```
* Android version: 6.0
* Phone model: HUAWEI GRA-L09
* Briar version: 0.16.2 (63befcc)
* User feedback: "Einfach so, beim Testen über Bluetooth"Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1002NPE when getting camera parameters2017-08-01T14:00:28ZakwizgranNPE when getting camera parametersThis crash has a different stacktrace from #998:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at org....This crash has a different stacktrace from #998:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:95)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)
at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
* Phone model: Pinebook (tulip_chiphd_pinebook)
* Android version: 7.1.2
* Briar version: 0.16.2 (63befcc)
* User feedback: "when i start to add contacts it is crashing. you can contact me for questions/testing."
It looks like the camera service returned a null camera:
```
07-23 12:41:01.512 I/CameraView(30067): Opening camera
07-23 12:41:01.595 I/CameraView(30067): Display orientation 0 degrees
07-23 12:41:01.601 W/CameraView(30067): Error setting display orientation
07-23 12:41:01.601 W/CameraView(30067): java.lang.NullPointerException: Attempt
to invoke virtual method 'void android.hardware.Camera.setDisplayOrientation(int
)' on a null object reference
```
The device seems to be a tablet in landscape mode:
```
"orientation" : "ORIENTATION_LANDSCAPE",
"screenHeightDp" : 696,
"screenLayout" : "SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_YES+SCREENLAY
OUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO",
"screenWidthDp" : 1366,
```
The device has a front-facing camera:
```
"android.hardware.camera.any" : true,
"android.hardware.camera.front" : true,
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/998Crash when getting camera parameters2021-03-24T16:26:49ZakwizgranCrash when getting camera parameters```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject...```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject.briar.android.keyagreement.QrCodeDecoder.onPreviewFrame(QrCodeDecoder.java:63)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1133)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
```
* Phone model: SM-G930F (heroltexx)
* Android version: 7.0
* Briar version: 0.16.2 (63befcc)
* User feedback: "Pushed the feedback button in the menu and i got a crash message."
The user's feedback suggests this happened while the camera view wasn't visible.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/997Crash when setting camera parameters2017-08-01T13:35:11ZakwizgranCrash when setting camera parameters```
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1932)
at org.briarproject.briar.android.keya...```
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1932)
at org.briarproject.briar.android.keyagreement.CameraView.setBestParameters(CameraView.java:219)
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:106)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)
at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
```
* Phone model: Lenovo YT3-850M
* Android version: 5.1.1
* Briar version: 0.16.2 (63befcc)
```
07-22 14:56:46.630 I/CameraView(15800): Opening camera
07-22 14:56:47.478 I/CameraView(15800): Display orientation 90 degrees
07-22 14:56:47.482 I/CameraView(15800): Scene modes: [auto, asd, landscape, snow, beach, sunset, night, portrait, backlight, sports, steadyphoto, flowers, candlelight, fireworks, party, night-portrait, theatre, action, AR, hdr]
07-22 14:56:47.482 I/CameraView(15800): Focus modes: [auto, infinity, macro, continuous-video, continuous-picture, manual]
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/994No incoming message notifications for second, third, and further messages. On...2017-08-01T16:23:49ZWikinautNo incoming message notifications for second, third, and further messages. Only the first message triggers a sound notification.When a new message is received, only the first message triggers the message sound, second and further messages do not trigger
a new incoming message sound. Pls. fix this, so that every message is signalled to the user.
Happens on these...When a new message is received, only the first message triggers the message sound, second and further messages do not trigger
a new incoming message sound. Pls. fix this, so that every message is signalled to the user.
Happens on these devices:
* HUAWEI P8 LITE (Android 6.0)
* HUAWEI P8 LITE 2017 (Android 7.0)Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/993Can't load complete RSS feeds2017-07-26T11:02:28ZPatrick HamannCan't load complete RSS feedsPressing the highlighted "read more" in imported RSS feeds does not affect anything. So it's not possible to read the whole post.Pressing the highlighted "read more" in imported RSS feeds does not affect anything. So it's not possible to read the whole post.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/990"KEEP ME UPDATED" on https://briarproject.org/ is partly broken and breaks so...2017-08-01T10:31:34Zqywltgxw"KEEP ME UPDATED" on https://briarproject.org/ is partly broken and breaks some laws in some countriesThis "KEEP ME UPDATED" seems to be not that proper done.
1. When you did not enter any email into the box and just press "KEEP ME UPDATED" it say "Thanks! We'll keep you updated.".
2. When you enter just something, for example "test" it ...This "KEEP ME UPDATED" seems to be not that proper done.
1. When you did not enter any email into the box and just press "KEEP ME UPDATED" it say "Thanks! We'll keep you updated.".
2. When you enter just something, for example "test" it say "Thanks! We'll keep you updated." but the webpage say at the top left (completely other place then the "KEEP ME UPDATED" button that an email address should be entered.
3. When you enter a real email and then check this email next 10 minutes, you dont get a confirmation email. You dont get anything. No information that you are now in some "newsletter" or something like that. This causes legal problems in many countries. You are not allowed to just send newsletter to some email addresses you have not proven that they are belonging to the person who really wants the newsletter.
What should be done:
1. Dont report "Thanks! We'll keep you updated." when no propper email (or nothing) is been entered.
2. Send out a confirmation email and only when the link there got pressed, only then you are allowed to send email to this person.
3. All the emails that have been collected till now have to be deleted when you dont want to get into legal problems. You are legally not allowed to contact those people because you cant prove that they have registered by themself.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/965Forum empty state message still refers to pen icon2018-03-28T11:39:17ZakwizgranForum empty state message still refers to pen iconThe forum empty state message says "Use the pen icon at the top to compose the first post". The pen icon no longer exists so this text should be removed.The forum empty state message says "Use the pen icon at the top to compose the first post". The pen icon no longer exists so this text should be removed.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/955private group: shared with 0 (0 online) despite sharing2017-07-25T17:41:56ZMegaloxprivate group: shared with 0 (0 online) despite sharingI created a private group and shared it with another tester. He joined the group and took part in the conversation. Nonetheless the counter in the header still showed "shared with 0 (0 online)"I created a private group and shared it with another tester. He joined the group and took part in the conversation. Nonetheless the counter in the header still showed "shared with 0 (0 online)"Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/902Improve key binding in introduction protocol2018-03-29T12:53:22ZakwizgranImprove key binding in introduction protocolThe introduction protocol provides the following guarantees:
* Each introducee knows that the ephemeral and identity public keys she received are owned by the other introducee
* Each introducee knows that the ephemeral and identity p...The introduction protocol provides the following guarantees:
* Each introducee knows that the ephemeral and identity public keys she received are owned by the other introducee
* Each introducee knows that the ephemeral and identity public keys she received were used by the other introducee in the same run of the protocol - in other words it binds each introducee's ephemeral key pair to the same introducee's identity key pair and vice versa
* Each introducee knows that the ephemeral public key she received was used by the other introducee in the current run of the protocol - in other words it binds the introducees' ephemeral key pairs to each other
Unlike the contact exchange protocol, the introduction protocol does not verify the personal identity of the other introducee. The other introducee may be a persona presented by the introducer as part of a man-in-the-middle attack. However, the introduction protocol guarantees that if an introducee later verifies that a person owns the identity public key she received, that person also owns the ephemeral public key she received, and no man-in-the-middle attack took place.
To achieve this, each introducee uses her identity key pair to sign a nonce derived from the ephemeral shared secret, and authenticates her identity key pair using a symmetric key derived from the ephemeral shared secret.
Each introducee knows that the nonce she received is fresh, as it depends on her own ephemeral key pair, so the nonce itself proves that the other introducee owns the ephemeral public key received by the first introducee, while the signature proves that the other introducee owns the identity public key received by the first introducee.
The nonce is unique to this combination of ephemeral key pairs, so the signature represents a claim by the owner of the received identity public key that she took part in a protocol run involving both ephemeral key pairs. Authenticating the identity public key with a symmetric key derived from the ephemeral shared secret represents a claim by the owner of the received ephemeral public keys that she took part in a protocol run involving both ephemeral key pairs and the identity key pair.
As far as I can tell, this construction is secure and achieves what we need, but it's unnecessarily convoluted. The binding and proof of ownership that's achieved by signing nonces could be achieved more straightforwardly by signing public keys:
* Each introducee signs both introducees' ephemeral public keys and timestamps using her identity key pair
* Each introducee authenticates both introducees' identity public keys, ephemeral public keys and timestamps, using a symmetric key derived from the ephemeral shared secret
If we're not concerned with deniability, each introducee can sign both introducees' identity public keys, ephemeral public keys and timestamps. But as far as I can see, we get all the assurance we need without doing this.
Related to #901.Android 1.0https://code.briarproject.org/briar/briar/-/issues/871RSS feed lost2017-08-04T13:52:53ZMegaloxRSS feed lostOur testers imported a regulary updated RSS feed on Friday. We opened the blogs again on monday and no new posts of the RSS feed had arrived.Our testers imported a regulary updated RSS feed on Friday. We opened the blogs again on monday and no new posts of the RSS feed had arrived.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/857Introduction: No notification for contact established confirmation.2018-04-28T00:15:25ZMegaloxIntroduction: No notification for contact established confirmation.A introducted B to C. B accepted. Then C accepted. B did not receive a notification that C is now her contact.A introducted B to C. B accepted. Then C accepted. B did not receive a notification that C is now her contact.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/845Devices can't communicate via wifi when router is disconnected from the internet2018-03-29T15:43:50ZakwizgranDevices can't communicate via wifi when router is disconnected from the internetThis might be caused by AndroidLanTcpPlugin wrongly thinking that wifi is unavailable because Android reports that the wifi network is disconnected. But that's just a guess.This might be caused by AndroidLanTcpPlugin wrongly thinking that wifi is unavailable because Android reports that the wifi network is disconnected. But that's just a guess.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/831Refactor BluetoothPlugin and DroidtoothPlugin to share common code2018-01-19T12:29:40ZakwizgranRefactor BluetoothPlugin and DroidtoothPlugin to share common codeMost of the logic in BluetoothPlugin and DroidtoothPlugin is identical. Refactor the common code into a shared superclass.Most of the logic in BluetoothPlugin and DroidtoothPlugin is identical. Refactor the common code into a shared superclass.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/764BdfList and BdfDictionary don't need to be thread-safe2017-12-18T07:40:36ZakwizgranBdfList and BdfDictionary don't need to be thread-safeAlthough the norm is for classes in briar-api to be thread-safe, there's no reasonable scenario where we'd share one of these data structures between threads, so they can be based on ArrayList and TreeMap rather than Vector and Concurren...Although the norm is for classes in briar-api to be thread-safe, there's no reasonable scenario where we'd share one of these data structures between threads, so they can be based on ArrayList and TreeMap rather than Vector and ConcurrentSkipListMap.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/703Create fake test data while using the app2017-10-10T09:16:00ZakwizgranCreate fake test data while using the appWhen testing the app it would be useful to be able to generate fake contacts, groups and messages quickly.
* Add a contact (saving the identity private key somewhere so we can create signed messages later)
* Add 100 private messages to/...When testing the app it would be useful to be able to generate fake contacts, groups and messages quickly.
* Add a contact (saving the identity private key somewhere so we can create signed messages later)
* Add 100 private messages to/from a fake contact
* Add 100 posts to a forum (nested replies from a mixture of throwaway fake identities, fake contacts and the user's own identity)
* Add 100 posts to a blog (comment chains from a mixture of throwaway fake identities, fake contacts and the user's own identity - these could be posted to the blogs of fake contacts or the user's own blog)
Alternatively, instead of creating the messages in batches, we could start a background service that generates them at random intervals until shutdown. That would also allow us to test notifications, UI updates, etc.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/617Protocol versioning2018-05-03T16:43:58ZakwizgranProtocol versioningAll protocols should include version information, and implementations should respond appropriately to versions they don't know how to handle.All protocols should include version information, and implementations should respond appropriately to versions they don't know how to handle.Android 1.0akwizgranakwizgran