briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-06-12T11:32:35Zhttps://code.briarproject.org/briar/briar/-/issues/181Restructure the Dashboard2018-06-12T11:32:35ZErnir ErlingssonRestructure the DashboardRestructure the dashboard with a navigation drawer and use fragmentsRestructure the dashboard with a navigation drawer and use fragmentsMilestone Bhttps://code.briarproject.org/briar/briar/-/issues/182Research Gingerbread ubiquity outside of the Play store2018-06-12T11:32:35ZErnir ErlingssonResearch Gingerbread ubiquity outside of the Play storeTo help us decide where to set the supported OS's lower limit we need a rough estimation of Gingerbread devices outside of Google .
Here is a device/os/screen-size breakdown from the Play store:
http://developer.android.com/about/d...To help us decide where to set the supported OS's lower limit we need a rough estimation of Gingerbread devices outside of Google .
Here is a device/os/screen-size breakdown from the Play store:
http://developer.android.com/about/dashboards/index.htmlMilestone Dakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/183Upgrade to Roboguice 32018-06-12T11:32:35ZakwizgranUpgrade to Roboguice 3https://code.briarproject.org/briar/briar/-/issues/184Disabling Bluetooth adapter on UI thread violates Strict Mode2018-06-12T11:32:35ZakwizgranDisabling Bluetooth adapter on UI thread violates Strict ModeOn the Galaxy Nexus (Android 4.3), BluetoothAdapter#disable() results in a disk write, which violates strict mode. Maybe we should run the enable() and disable() calls on the AndroidExecutor?
```
12-17 12:19:33.868 29626-29626/org.br...On the Galaxy Nexus (Android 4.3), BluetoothAdapter#disable() results in a disk write, which violates strict mode. Maybe we should run the enable() and disable() calls on the AndroidExecutor?
```
12-17 12:19:33.868 29626-29626/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=319 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=287 violation=1
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1097)
at android.database.sqlite.SQLiteConnection.applyBlockGuardPolicy(SQLiteConnection.java:1043)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:779)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
at com.android.providers.settings.SettingsProvider.insertForUser(SettingsProvider.java:914)
at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:634)
at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:818)
at android.provider.Settings$Global.putStringForUser(Settings.java:5529)
at android.provider.Settings$Global.putString(Settings.java:5519)
at android.provider.Settings$Global.putInt(Settings.java:5607)
at com.android.server.BluetoothManagerService.persistBluetoothSetting(BluetoothManagerService.java:255)
at com.android.server.BluetoothManagerService.disable(BluetoothManagerService.java:439)
at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:116)
at android.os.Binder.execTransact(Binder.java:388)
at dalvik.system.NativeStart.run(Native Method)
# via Binder call with stack:
android.os.StrictMode$LogStackTrace
at android.os.StrictMode.readAndHandleBinderCallViolations(StrictMode.java:1687)
at android.os.Parcel.readExceptionCode(Parcel.java:1413)
at android.os.Parcel.readException(Parcel.java:1382)
at android.bluetooth.IBluetoothManager$Stub$Proxy.disable(IBluetoothManager.java:286)
at android.bluetooth.BluetoothAdapter.disable(BluetoothAdapter.java:550)
at org.briarproject.android.SettingsActivity.onClick(SettingsActivity.java:297)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
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)
```Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/185Toggle Transport States2020-09-04T12:27:54ZTorsten GroteToggle Transport StatesIt would be great to be able to enable/disable transports by touching the icons in the dashboard.
For this, we should have three states for plugins:
* disabled
* enabled
* ready
that could be shown as grey, amber and green icons.It would be great to be able to enable/disable transports by touching the icons in the dashboard.
For this, we should have three states for plugins:
* disabled
* enabled
* ready
that could be shown as grey, amber and green icons.https://code.briarproject.org/briar/briar/-/issues/186Bluetooth dashboard icon doesn't update on Galaxy Nexus2018-06-12T11:32:35ZakwizgranBluetooth dashboard icon doesn't update on Galaxy NexusThis could be related to #184. When the Bluetooth adapter is enabled or disabled, either via SettingsActivity or the device's settings, the Bluetooth icon on the dashboard doesn't update. Rotating the screen updates the icon.
This pro...This could be related to #184. When the Bluetooth adapter is enabled or disabled, either via SettingsActivity or the device's settings, the Bluetooth icon on the dashboard doesn't update. Rotating the screen updates the icon.
This problem is specific to the Galaxy Nexus, the icon updates fine on other devices.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/188Inject DbExecutor as an ExecutorService2018-06-12T11:32:35ZakwizgranInject DbExecutor as an ExecutorServiceTransportKeyManager needs to submit database tasks and wait for them to complete, so it needs to see the DbExecutor as an ExecutorService rather than an Executor.
Subtask of #111.TransportKeyManager needs to submit database tasks and wait for them to complete, so it needs to see the DbExecutor as an ExecutorService rather than an Executor.
Subtask of #111.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/189Implement BLAKE2s2018-06-12T11:32:35Zstr4dImplement BLAKE2sSubtask of #169
Initial implementation will go into briar-core. Once implemented, we should aim to push the implementation upstream into BouncyCastle. We can then drop it from briar-core once it has propagated to BouncyCastly and Spon...Subtask of #169
Initial implementation will go into briar-core. Once implemented, we should aim to push the implementation upstream into BouncyCastle. We can then drop it from briar-core once it has propagated to BouncyCastly and SpongyCastle.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/190TransportKeyManager creates duplicates when rotating keys2018-06-12T11:32:35ZakwizgranTransportKeyManager creates duplicates when rotating keysGot this stacktrace on the Sony Xperia Tipo (Android 4.0.4) when relaunching Briar after installing it yesterday:
```
12-18 10:57:16.936 22408-23493/org.briarproject W/TransportKeyManager: org.briarproject.api.db.DbException: org.h2....Got this stacktrace on the Sony Xperia Tipo (Android 4.0.4) when relaunching Briar after installing it yesterday:
```
12-18 10:57:16.936 22408-23493/org.briarproject W/TransportKeyManager: org.briarproject.api.db.DbException: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'tor', 16781, 13)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
org.briarproject.api.db.DbException: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'tor', 16781, 13)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
at org.briarproject.db.JdbcDatabase.addTransportKeys(JdbcDatabase.java:919)
at org.briarproject.db.JdbcDatabase.updateTransportKeys(JdbcDatabase.java:3163)
at org.briarproject.db.JdbcDatabase.updateTransportKeys(JdbcDatabase.java:65)
at org.briarproject.db.DatabaseComponentImpl.updateTransportKeys(DatabaseComponentImpl.java:1461)
at org.briarproject.transport.TransportKeyManager$1.run(TransportKeyManager.java:127)
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)
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'tor', 16781, 13)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
at org.h2.jdbc.JdbcPreparedStatement.executeBatch(Unknown Source)
at org.briarproject.db.JdbcDatabase.addTransportKeys(JdbcDatabase.java:896)
... 7 more
12-18 10:57:17.166 22408-23493/org.briarproject W/TransportKeyManager: org.briarproject.api.db.DbException: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'bt', 16781, 16)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
org.briarproject.api.db.DbException: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'bt', 16781, 16)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
at org.briarproject.db.JdbcDatabase.addTransportKeys(JdbcDatabase.java:919)
at org.briarproject.db.JdbcDatabase.updateTransportKeys(JdbcDatabase.java:3163)
at org.briarproject.db.JdbcDatabase.updateTransportKeys(JdbcDatabase.java:65)
at org.briarproject.db.DatabaseComponentImpl.updateTransportKeys(DatabaseComponentImpl.java:1461)
at org.briarproject.transport.TransportKeyManager$1.run(TransportKeyManager.java:127)
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)
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY_KEY_1D ON PUBLIC.INCOMINGKEYS(CONTACTID, TRANSPORTID, PERIOD) VALUES (2, 'bt', 16781, 16)"; SQL statement:
INSERT INTO incomingKeys (contactId, transportId, period, tagKey, headerKey, base, bitmap) VALUES (?, ?, ?, ?, ?, ?, ?) [23505-190]
at org.h2.jdbc.JdbcPreparedStatement.executeBatch(Unknown Source)
at org.briarproject.db.JdbcDatabase.addTransportKeys(JdbcDatabase.java:896)
... 7 more
```Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/191Transport icon labels dont't fit on small screens2018-06-12T11:32:35ZakwizgranTransport icon labels dont't fit on small screensOn the Sony Xperia Tipo and Samsung Galaxy Ace, the transport icons and their labels are too wide for the screen, causing the Bluetooth label to wrap onto a second line.
Putting the labels below the icons solves the problem.On the Sony Xperia Tipo and Samsung Galaxy Ace, the transport icons and their labels are too wide for the screen, causing the Bluetooth label to wrap onto a second line.
Putting the labels below the icons solves the problem.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/193Crash reporter doesn't have a title bar2018-06-12T11:32:35ZakwizgranCrash reporter doesn't have a title barThere's no indication of what this screen is for or which app it belongs to.There's no indication of what this screen is for or which app it belongs to.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/194Setup Translation Platform for App2018-06-12T11:32:35ZTorsten GroteSetup Translation Platform for AppCurrently, the app is only available in English. It should be translated into other languages. To make things easier for potential translators, the translation should not happen via editing XML files and doing pull requests on GitLab, bu...Currently, the app is only available in English. It should be translated into other languages. To make things easier for potential translators, the translation should not happen via editing XML files and doing pull requests on GitLab, but rather through a dedicated platform such as [Transifex](http://transifex.com/), [Weblate](https://weblate.org) or a similar service.
This is a precondition for #143.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/195Notification about private messages should go away when viewing messages2018-06-12T11:32:35ZTorsten GroteNotification about private messages should go away when viewing messagesWhen viewing the private messages, the notification about these private messages should automatically be dismissed.When viewing the private messages, the notification about these private messages should automatically be dismissed.Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/196Mark Private Messages As Read Properly2018-06-12T11:32:35ZTorsten GroteMark Private Messages As Read ProperlyThere's some circumstances in conversations where private private messages are not marked as read properly.
This is easy to spot when using the code from !36 which shows unread messages in a different color to make it easier to spot d...There's some circumstances in conversations where private private messages are not marked as read properly.
This is easy to spot when using the code from !36 which shows unread messages in a different color to make it easier to spot delayed messages in a conversation.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/197Improve readability/usability of transport status bar2022-11-18T16:48:47Zstr4dImprove readability/usability of transport status bar* The green text isn't very readable to me. IMHO the text should stay the same primary text color, and only the icon should change to green. The meaning is not altered in the user's eyes.
* "Wi-Fi" should probably be "Local Wi-Fi" to en...* The green text isn't very readable to me. IMHO the text should stay the same primary text color, and only the icon should change to green. The meaning is not altered in the user's eyes.
* "Wi-Fi" should probably be "Local Wi-Fi" to ensure the user understands it refers to reaching other users on the same local network.
* Is "Internet" using the open internet, or Tor? I would have assumed there would be separate entries for each.
Related: #185https://code.briarproject.org/briar/briar/-/issues/198Refactor out pattern of list with empty view and progress wheel2018-06-12T11:32:35ZTorsten GroteRefactor out pattern of list with empty view and progress wheelWe have many lists that need an empty view to be shown when no elements exist and a progress wheel when elements are loaded. This could be re-factored out since it is a common pattern.We have many lists that need an empty view to be shown when no elements exist and a progress wheel when elements are loaded. This could be re-factored out since it is a common pattern.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/199Use Floating Action Button (FAB) for adding new contact2018-06-12T11:32:35ZTorsten GroteUse Floating Action Button (FAB) for adding new contactCurrently, there's an icon in the action bar for adding new contacts. However, this action is a prime candidate to be implemented with a Floating Action Button (FAB).
There's basically two options for the implementation:
* [Design Su...Currently, there's an icon in the action bar for adding new contacts. However, this action is a prime candidate to be implemented with a Floating Action Button (FAB).
There's basically two options for the implementation:
* [Design Support Library](http://android-developers.blogspot.com.br/2015/05/android-design-support-library.html)
* @str4d's [FloatingActionButton library](https://github.com/str4d/android-floating-action-button)Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/200Duplicate entries in ContactList2018-06-12T11:32:35ZakwizgranDuplicate entries in ContactListAfter merging !38 I've started to see duplicate entries in the contact list. To reproduce:
* Touch a contact to enter ConversationActivity
* Receive a message from the contact
* Wait a minute so the time shown for the new message is...After merging !38 I've started to see duplicate entries in the contact list. To reproduce:
* Touch a contact to enter ConversationActivity
* Receive a message from the contact
* Wait a minute so the time shown for the new message is different from the time shown for the previous message
* Press the back button
* Two entries are shown in the contact list
* Repeat to create more duplicates
I'm guessing this might have something to do with RecyclerView recycling views that should have been replaced.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/201Messages that arrive while a conversation is open should not be shown as unread2018-06-12T11:32:35ZakwizgranMessages that arrive while a conversation is open should not be shown as unreadRelated: #195, #196.Related: #195, #196.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/202Extend ContactListActivity to show which contacts are linked with which ident...2018-06-12T11:32:35Zstr4dExtend ContactListActivity to show which contacts are linked with which identity/identities> [@akwizgran] the main use case is posting to forums/blogs under a different identity from the one(s) you use with your contacts
> [@akwizgran] following on from that is a secondary use case: add contacts using an identity that was i...> [@akwizgran] the main use case is posting to forums/blogs under a different identity from the one(s) you use with your contacts
> [@akwizgran] following on from that is a secondary use case: add contacts using an identity that was initially created for posting to forums/blogs - for example, if you meet someone irl who knows you via your forum/blog handle
> [@akwizgran] they could also be used for grouping contacts into 'circles' but we haven't gone into that in detail yet
> [@str4d] Right, was about to say that the contacts page should expose that information somehow.
> [@akwizgran] yup, good point
> [@akwizgran] see also #34
> [@str4d] If the intent of identities is for them to appear (at least initially) to be different people, the UI needs to remind the user which of their contacts know which of their identities