briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:21Zhttps://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/576Empty State Messages Are Briefly Shown When They Shouldn't2018-06-12T11:32:21ZTorsten GroteEmpty State Messages Are Briefly Shown When They Shouldn'tFor the Contact List, Forums and Private Conversations, the empty state messages show up briefly when clicking around to open new Activities. This is a regression that must have been introduced recently.For the Contact List, Forums and Private Conversations, the empty state messages show up briefly when clicking around to open new Activities. This is a regression that must have been introduced recently.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/575Fix SharerLeavesBeforeResponse Test2018-06-12T11:32:21ZTorsten GroteFix SharerLeavesBeforeResponse TestThis test was broken by a51d2f47af7674fef8c97aac631608daee675ae6This test was broken by a51d2f47af7674fef8c97aac631608daee675ae6Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/574Upgrade Tor to 0.2.92017-07-03T07:30:35ZakwizgranUpgrade Tor to 0.2.9Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/573Setup Onion Service for Crash Reports and Feedback2018-06-12T11:32:21ZTorsten GroteSetup Onion Service for Crash Reports and FeedbackLooks like the onion service we had running is down now:
```
08-02 20:04:51.596 W/DevReporterImpl: Could not connect to developers
Host unreachable
at ne...Looks like the onion service we had running is down now:
```
08-02 20:04:51.596 W/DevReporterImpl: Could not connect to developers
Host unreachable
at net.sourceforge.jsocks.socks.Socks5Message.read(Socks5Message.java:162)
at net.sourceforge.jsocks.socks.Socks5Message.<init>(Socks5Message.java:123)
at net.sourceforge.jsocks.socks.Socks5Message.<init>(Socks5Message.java:108)
at net.sourceforge.jsocks.socks.Socks5Proxy.formMessage(Socks5Proxy.java:253)
at net.sourceforge.jsocks.socks.Proxy.exchange(Proxy.java:458)
at net.sourceforge.jsocks.socks.Proxy.connect(Proxy.java:343)
at net.sourceforge.jsocks.socks.SocksSocket.<init>(SocksSocket.java:109)
at org.briarproject.reporting.DevReporterImpl.connectToDevelopers(DevReporterImpl.java:50)
at org.briarproject.reporting.DevReporterImpl.sendReports(DevReporterImpl.java:84)
at org.briarproject.plugins.tor.TorPlugin$1.run(TorPlugin.java:371)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
```
I know that some of my testers already used the crash reporter. I had to tell them that I am not sure that these reports are already read by someone.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/572Tor Plugin Fails to Shutdown Prevents SignOut2018-06-12T11:32:21ZTorsten GroteTor Plugin Fails to Shutdown Prevents SignOutI observed two times already that Briar does not sign out, because the Tor plugin does not shut down properly.
To be honest that might be due to me running two instances of Briar on the same phone which was probably not meant to happe...I observed two times already that Briar does not sign out, because the Tor plugin does not shut down properly.
To be honest that might be due to me running two instances of Briar on the same phone which was probably not meant to happen. However, other applications might also open hidden services on the phone which might lead to the same problem.Milestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/571NPE in FeedFragment2018-06-12T11:32:21ZakwizgranNPE in FeedFragmentThe app crashed after using the back button to leave the blog feed. The stacktrace comes from a branch, so the line numbers may be slightly different from those on master, but as far as I can see the exception was caused by getActivity()...The app crashed after using the back button to leave the blog feed. The stacktrace comes from a branch, so the line numbers may be slightly different from those on master, but as far as I can see the exception was caused by getActivity() returning null, which would happen in the same way on master.
```
08-02 18:18:01.398 12121-12165/org.briarproject E/ACRA: ACRA caught a NullPointerException for org.briarproject
java.lang.NullPointerException
at org.briarproject.android.blogs.FeedFragment.onBlogPostAdded(FeedFragment.java:164)
at org.briarproject.android.blogs.FeedControllerImpl$3.run(FeedControllerImpl.java:144)
at org.briarproject.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1027)
```Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/570Consistent use of animations2018-06-12T11:32:21ZakwizgranConsistent use of animationsCustom animations have been added in various places, with no overall plan. Let's create some guidelines for when and how to use animations so they're used consistently.Custom animations have been added in various places, with no overall plan. Let's create some guidelines for when and how to use animations so they're used consistently.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/569Convert HTML to plain text safely and readably2018-06-12T11:32:21ZakwizgranConvert HTML to plain text safely and readablyFor RSS import we need to convert HTML blog posts into plain text while preserving readability, and without allowing any unsafe content to be rendered. For RSS import we need to convert HTML blog posts into plain text while preserving readability, and without allowing any unsafe content to be rendered. Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/568Notifications aren't blocked when viewing a single blog2018-06-12T11:32:21ZakwizgranNotifications aren't blocked when viewing a single blogMilestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/566Raise minimum Android version to 42018-06-12T11:32:21ZakwizgranRaise minimum Android version to 4* Raise minimum API version to 14
* Remove any code and resources that only apply to older versions
* Close as rejected any tickets that only apply to older versions
* Raise minimum API version to 14
* Remove any code and resources that only apply to older versions
* Close as rejected any tickets that only apply to older versions
Milestone Dhttps://code.briarproject.org/briar/briar/-/issues/565Forums sometimes appear empty2018-06-12T11:32:21ZakwizgranForums sometimes appear emptyForums that contain posts occasionally appear empty. The progress wheel disappears and the empty state message is not shown, but no posts are shown either (see screenshot). Destroying and recreating the activity (eg. by rotating the scre...Forums that contain posts occasionally appear empty. The progress wheel disappears and the empty state message is not shown, but no posts are shown either (see screenshot). Destroying and recreating the activity (eg. by rotating the screen) *usually* causes the posts to appear, but pausing and resuming the activity (e.g. by turning the screen off and on again) doesn't.
I haven't worked out how to reproduce this bug reliably yet, but it can be reproduced eventually by repeatedly moving between the forum and the forum list. I think it may be caused by a race between loading the posts and starting/stopping updates of the BriarRecyclerView. Most other activities load their content from onResume() rather than onCreate(), which would solve the race if it exists.
![device-2016-08-01-183239](/uploads/4123e4d357c340000e682dc00eae8669/device-2016-08-01-183239.png)Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/564Wrong message counts in new message notifications2018-06-12T11:32:21ZakwizgranWrong message counts in new message notificationsIf messages arrive in a group while notifications are blocked for that group, AndroidNotificationManagerImpl still updates its new message count for that group and its total new message count. If the user unsubscribes from the group, e.g...If messages arrive in a group while notifications are blocked for that group, AndroidNotificationManagerImpl still updates its new message count for that group and its total new message count. If the user unsubscribes from the group, e.g. by removing a contact or leaving a forum, the wrongly counted messages are included in the total displayed in the new message notification until the user signs out.Milestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/563NPE when switching between contacts and forums at startup2018-06-12T11:32:21ZakwizgranNPE when switching between contacts and forums at startupAt startup, while the contact list was loading, I switched to the forum activity and back. The app crashed with the following stacktrace:
```
08-01 15:55:43.290 10492-10726/org.briarproject E/ACRA: ACRA caught a NullPointerException ...At startup, while the contact list was loading, I switched to the forum activity and back. The app crashed with the following stacktrace:
```
08-01 15:55:43.290 10492-10726/org.briarproject E/ACRA: ACRA caught a NullPointerException for org.briarproject
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getString(int, java.lang.Object[])' on a null object reference
at org.briarproject.android.contact.ConversationItem.from(ConversationItem.java:113)
at org.briarproject.android.contact.ContactListFragment.getMessages(ContactListFragment.java:414)
at org.briarproject.android.contact.ContactListFragment.access$200(ContactListFragment.java:68)
at org.briarproject.android.contact.ContactListFragment$2.run(ContactListFragment.java:211)
at org.briarproject.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
```Milestone D