briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-08-03T16:39:09Zhttps://code.briarproject.org/briar/briar/-/issues/596Setup UI Tests with Espresso2018-08-03T16:39:09ZTorsten GroteSetup UI Tests with EspressoWe currently do not have real UI tests. Espresso is pushed a lot by Google and it makes great progress. You can even already record tests in the UI without needing to write the code for them yourself. It does require an emulator or a rea...We currently do not have real UI tests. Espresso is pushed a lot by Google and it makes great progress. You can even already record tests in the UI without needing to write the code for them yourself. It does require an emulator or a real phone to run these tests though.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/595Clients should decide whether to share messages2018-06-12T11:32:20ZakwizgranClients should decide whether to share messagesThe validation manager currently sets all messages as shared after delivering them. Clients should specify which messages to share, for example by returning a boolean from the delivery hook or calling DatabaseComponent#setMessageShared()...The validation manager currently sets all messages as shared after delivering them. Clients should specify which messages to share, for example by returning a boolean from the delivery hook or calling DatabaseComponent#setMessageShared() from within the delivery hook.Milestone DTorsten GroteTorsten Grotehttps://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/593Make the user's own identities visually distinct2018-06-12T11:32:20ZakwizgranMake the user's own identities visually distinctThe user's own identities have no trust indicator (zero hashes). In a context such as forums or the combined blog feed, this makes the user's own identities look like they're less trusted than strangers (one hash), unverified contacts (t...The user's own identities have no trust indicator (zero hashes). In a context such as forums or the combined blog feed, this makes the user's own identities look like they're less trusted than strangers (one hash), unverified contacts (two hashes), or verified contacts (three hashes).
Make the user's own identities visually distinct in some way to prevent any confusion.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/592Scrub addresses before logging them2018-06-12T11:32:20ZakwizgranScrub addresses before logging themMAC, IP and onion addresses should be scrubbed before logging to ensure we don't leave any sensitive information in plaintext on the device or send it in crash reports or feedback.
We need to keep enough information for the addresses ...MAC, IP and onion addresses should be scrubbed before logging to ensure we don't leave any sensitive information in plaintext on the device or send it in crash reports or feedback.
We need to keep enough information for the addresses to be useful for debugging, without harming user privacy. Perhaps something like the following:
* MAC addresses (including Bluetooth): keep the first and last octets, replace the rest with XX
* Link-local and site-local IPv4 addresses: keep the full address
* Other IPv4 addresses: keep the first and last octets, replace the rest with XX
* IPv6 addresses: not intentionally used by Briar, replace the whole thing with XX
* Onion addresses: keep the first three characters, replace the rest with XXMilestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/591Add New Message Types to BlogValidator2018-06-12T11:32:20ZTorsten GroteAdd New Message Types to BlogValidatorSub-Ticket of #494 and #437.Sub-Ticket of #494 and #437.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/590Option to save the password2023-09-01T12:43:31ZligiOption to save the passwordadd a setting to store the password with the hint to the user that this makes things less secure
**Motivation**
this will help developers when developing the app because it reduces the time they have to enter the password
could also he...add a setting to store the password with the hint to the user that this makes things less secure
**Motivation**
this will help developers when developing the app because it reduces the time they have to enter the password
could also help adoption as a users might get frustrated having to enter a password often. There are some use cases where this additional attack-vector does not really matter and could be traded for convenience. Ideally this setting is exposed to the contacts so they know.
this is a follow up from a discussion in #587https://code.briarproject.org/briar/briar/-/issues/589When a message is shared, share its transitive dependencies2018-06-12T11:32:20ZakwizgranWhen a message is shared, share its transitive dependenciesLike other recursive operations on the dependency graph, this should not be done in a single transaction. So we'll need to find and resume any unfinished operations at startup, by looking for shared messages with unshared dependencies.Like other recursive operations on the dependency graph, this should not be done in a single transaction. So we'll need to find and resume any unfinished operations at startup, by looking for shared messages with unshared dependencies.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/588NoSuchElementException2018-06-12T11:32:20ZligiNoSuchElementExceptionalso on 44d13ef28eb929b1051d7917f392f2aa8cb589ae
after entering the password on Note 4 stock 6.0.1 - created a new account via forgot password before
```
08-08 17:01:45.060 23155 23177 E ACRA : ACRA caught a NoSuchElementExceptio...also on 44d13ef28eb929b1051d7917f392f2aa8cb589ae
after entering the password on Note 4 stock 6.0.1 - created a new account via forgot password before
```
08-08 17:01:45.060 23155 23177 E ACRA : ACRA caught a NoSuchElementException for org.briarproject
08-08 17:01:45.060 23155 23177 E ACRA : java.util.NoSuchElementException
08-08 17:01:45.060 23155 23177 E ACRA : at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:576)
08-08 17:01:45.060 23155 23177 E ACRA : at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:964)
08-08 17:01:45.060 23155 23177 E ACRA : at org.briarproject.android.blogs.FeedControllerImpl$2.run(FeedControllerImpl.java:117)
08-08 17:01:45.060 23155 23177 E ACRA : at org.briarproject.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:35)
08-08 17:01:45.060 23155 23177 E ACRA : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
08-08 17:01:45.060 23155 23177 E ACRA : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
08-08 17:01:45.060 23155 23177 E ACRA : at java.lang.Thread.run(Thread.java:818)
```
Milestone Fhttps://code.briarproject.org/briar/briar/-/issues/587java.lang.IllegalStateException: No Group in intent.2018-06-12T11:32:20Zligijava.lang.IllegalStateException: No Group in intent.on 44d13ef28eb929b1051d7917f392f2aa8cb589ae
when pressing up-affordance from blog - would try to reproduce a bit more but having to enter my Password again after each crash is a bit disencouraging -
cannot even make a simple passw...on 44d13ef28eb929b1051d7917f392f2aa8cb589ae
when pressing up-affordance from blog - would try to reproduce a bit more but having to enter my Password again after each crash is a bit disencouraging -
cannot even make a simple password for testing - how do you guys do this?-)
```
08-08 16:51:17.150 15782 15782 E ACRA : ACRA caught a RuntimeException for org.briarproject
08-08 16:51:17.150 15782 15782 E ACRA : java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject/org.briarproject.android.blogs.BlogActivity}: java.lang.IllegalStateException: No Group in intent.
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread.access$1100(ActivityThread.java:221)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
08-08 16:51:17.150 15782 15782 E ACRA : at android.os.Handler.dispatchMessage(Handler.java:102)
08-08 16:51:17.150 15782 15782 E ACRA : at android.os.Looper.loop(Looper.java:158)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread.main(ActivityThread.java:7225)
08-08 16:51:17.150 15782 15782 E ACRA : at java.lang.reflect.Method.invoke(Native Method)
08-08 16:51:17.150 15782 15782 E ACRA : at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
08-08 16:51:17.150 15782 15782 E ACRA : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
08-08 16:51:17.150 15782 15782 E ACRA : Caused by: java.lang.IllegalStateException: No Group in intent.
08-08 16:51:17.150 15782 15782 E ACRA : at org.briarproject.android.blogs.BlogActivity.onCreate(BlogActivity.java:61)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.Activity.performCreate(Activity.java:6876)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
08-08 16:51:17.150 15782 15782 E ACRA : at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
08-08 16:51:17.150 15782 15782 E ACRA : ... 9 more
```Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/586Store latest timestamp and unread count in group metadata for invitations2018-06-12T11:32:21ZakwizgranStore latest timestamp and unread count in group metadata for invitationsThe contact list loads all invitation messages just to get the latest timestamp and unread message count for each conversation. This is a very expensive provess that involves loading the session state for every message, which in the wors...The contact list loads all invitation messages just to get the latest timestamp and unread message count for each conversation. This is a very expensive provess that involves loading the session state for every message, which in the worst case iterates over all sessions. Store this information in the group metadata and expose it through the SharingManager interface.
The timestamp should relate to the latest message that would be visible in the UI, i.e. invitations and responses.
Related to #373.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/585Store latest timestamp and unread count in group metadata for introductions2018-06-12T11:32:21ZakwizgranStore latest timestamp and unread count in group metadata for introductionsThe contact list loads all introduction messages just to get the latest timestamp and unread message count for each conversation. This is a very expensive provess that involves loading the session state for every introduction message, wh...The contact list loads all introduction messages just to get the latest timestamp and unread message count for each conversation. This is a very expensive provess that involves loading the session state for every introduction message, which in the worst case iterates over all sessions. Store this information in the group metadata and expose it through the IntroductionManager interface.
Related to #373.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/584Store latest timestamp and unread count in group metadata for private messaging2018-06-12T11:32:21ZakwizgranStore latest timestamp and unread count in group metadata for private messagingThe contact list loads all private message headers just to get the latest timestamp and unread message count for each conversation. Store this information in the group metadata and expose it through the MessagingManager interface.
Rel...The contact list loads all private message headers just to get the latest timestamp and unread message count for each conversation. Store this information in the group metadata and expose it through the MessagingManager interface.
Related to #373.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/583NPE @ org.briarproject.android.util.QrCodeUtils.createQrCode2018-06-12T11:32:21ZligiNPE @ org.briarproject.android.util.QrCodeUtils.createQrCode```
08-07 21:32:41.258 25424 25424 I CameraView: Surface created
08-07 21:32:41.259 25424 25424 I CameraView: Surface changed: 1200x1648
08-07 21:32:41.268 25424 25424 D AndroidRuntime: Shutting down VM
08-07 21:32:41.269 25424 25424...```
08-07 21:32:41.258 25424 25424 I CameraView: Surface created
08-07 21:32:41.259 25424 25424 I CameraView: Surface changed: 1200x1648
08-07 21:32:41.268 25424 25424 D AndroidRuntime: Shutting down VM
08-07 21:32:41.269 25424 25424 E ACRA : ACRA caught a NullPointerException for org.briarproject
08-07 21:32:41.269 25424 25424 E ACRA : java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.WindowManager android.app.Activity.getWindowManager()' on a null object reference
08-07 21:32:41.269 25424 25424 E ACRA : at org.briarproject.android.util.QrCodeUtils.createQrCode(QrCodeUtils.java:25)
08-07 21:32:41.269 25424 25424 E ACRA : at org.briarproject.android.keyagreement.ShowQrCodeFragment$5.run(ShowQrCodeFragment.java:298)
08-07 21:32:41.269 25424 25424 E ACRA : at android.os.Handler.handleCallback(Handler.java:739)
08-07 21:32:41.269 25424 25424 E ACRA : at android.os.Handler.dispatchMessage(Handler.java:95)
08-07 21:32:41.269 25424 25424 E ACRA : at android.os.Looper.loop(Looper.java:148)
08-07 21:32:41.269 25424 25424 E ACRA : at android.app.ActivityThread.main(ActivityThread.java:5417)
08-07 21:32:41.269 25424 25424 E ACRA : at java.lang.reflect.Method.invoke(Native Method)
08-07 21:32:41.269 25424 25424 E ACRA : at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
08-07 21:32:41.269 25424 25424 E ACRA : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
```
happens on 44d13ef28eb929b1051d7917f392f2aa8cb589ae
when trying to add a new contact on a Nexus 7 stock android 6.0.1 - works on my Note4 though ( also 6.0.1 )Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/582Tor GeoIP file is not updated2018-06-12T11:32:21ZakwizgranTor GeoIP file is not updatedIf the Tor plugin has already installed a GeoIP file on the device, it will not install a newer version.If the Tor plugin has already installed a GeoIP file on the device, it will not install a newer version.Milestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/581Create better methods for querying plugin states2020-06-30T15:21:54ZakwizgranCreate better methods for querying plugin statesTransport plugins can be in the following states:
* No plugin created
* Starting
* Failed to start
* Started but disabled by settings
* Started and enabled, but unable to connect
* Started, enabled, and able to connect
* Stoppin...Transport plugins can be in the following states:
* No plugin created
* Starting
* Failed to start
* Started but disabled by settings
* Started and enabled, but unable to connect
* Started, enabled, and able to connect
* Stopping
* Stopped
The Plugin#isRunning() method returns true if the plugin is started, enabled, and able to connect, and false for all other states. It would be useful for the UI and core to be able to get more information about plugin states.
See discussion on #185.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/580Introduced Contacts Have Status VERIFIED2018-06-12T11:32:21ZTorsten GroteIntroduced Contacts Have Status VERIFIEDIntroduced contacts appear fully verified, even though they should be UNVERIFIED.Introduced contacts appear fully verified, even though they should be UNVERIFIED.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/579Unsubscribe From Shared Blogs2018-06-12T11:32:21ZTorsten GroteUnsubscribe From Shared BlogsIt is now possible to share personal blogs of your contacts with others, but it is not yet possible to unsubscribe again from these blogs.
This should work analogous to forums with the exception that you can not unsubscribe from perso...It is now possible to share personal blogs of your contacts with others, but it is not yet possible to unsubscribe again from these blogs.
This should work analogous to forums with the exception that you can not unsubscribe from personal blogs that belong to your contacts.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/578Another app may bind the Tor ports2018-06-12T11:32:21ZakwizgranAnother app may bind the Tor portsAnother app may bind the ports that Briar uses for communicating with Tor. If Briar finds that the control port is already bound at startup it will assume Tor is already running and not start its own Tor process.
Briar will pass confi...Another app may bind the ports that Briar uses for communicating with Tor. If Briar finds that the control port is already bound at startup it will assume Tor is already running and not start its own Tor process.
Briar will pass confidential data over the control port, including the Tor authentication cookie and the hidden service private key.
Briar will also pass confidential data over the proxy port, including the hidden service addresses of contacts and encrypted BTP streams and crash reports.Milestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/577Annotate fields and methods that should only be accessed from certain threads2020-11-21T17:35:02ZakwizgranAnnotate fields and methods that should only be accessed from certain threadsCreate @UiThread and @DbThread annotations for fields and methods (just for documentation purposes at this stage). Maybe also @Blocking and @NonBlocking for methods.Create @UiThread and @DbThread annotations for fields and methods (just for documentation purposes at this stage). Maybe also @Blocking and @NonBlocking for methods.