briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-06-12T11:32:35Zhttps://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/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/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/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/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/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/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/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/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/180Remove DatabaseCleaner and message expiry logic2018-06-12T11:32:35ZakwizgranRemove DatabaseCleaner and message expiry logicRemove the old message expiry code. Leave the infrastructure for measuring free disk space intact, we'll need it later.
Subtask of #112.Remove the old message expiry code. Leave the infrastructure for measuring free disk space intact, we'll need it later.
Subtask of #112.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/179Bluetooth diagram is too large to load2018-06-12T11:32:36ZakwizgranBluetooth diagram is too large to loadWhen adding a contact on the Galaxy Nexus (Android 4.3), the Bluetooth diagram isn't shown. Log output:
```
12-15 15:51:10.740 5971-5971/org.briarproject W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (2162x760, max...When adding a contact on the Galaxy Nexus (Android 4.3), the Bluetooth diagram isn't shown. Log output:
```
12-15 15:51:10.740 5971-5971/org.briarproject W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (2162x760, max=2048x2048)
```
Funnily enough this doesn't happen on much older and less capable devices.
The image should be scaled appropriately for each class of screen (mdpi, hdpi, etc).Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/178Bluetooth Setting Not Initialized2018-06-12T11:32:36ZTorsten GroteBluetooth Setting Not InitializedWhen starting the app for the first time, the Bluetooth setting shows "Only when adding contacts". However the value is set to always enabled.
The fix would be to properly set enabled to false.When starting the app for the first time, the Bluetooth setting shows "Only when adding contacts". However the value is set to always enabled.
The fix would be to properly set enabled to false.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/177org.briarproject.api.db.DbException2018-06-12T11:32:36ZTorsten Groteorg.briarproject.api.db.DbExceptionSince the latest merge in master (~ bd426614), I am getting this crash after entering my password:
```
org.briarproject W/LifecycleManagerImpl: org.briarproject.api.db.DbException
...Since the latest merge in master (~ bd426614), I am getting this crash after entering my password:
```
org.briarproject W/LifecycleManagerImpl: org.briarproject.api.db.DbException
org.briarproject.api.db.DbException
at org.briarproject.db.JdbcDatabase.open(JdbcDatabase.java:358)
at org.briarproject.db.H2Database.open(H2Database.java:42)
at org.briarproject.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:137)
at org.briarproject.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:72)
at org.briarproject.android.BriarService$1.run(BriarService.java:95)
```Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/176SetupActivity warnings are blank on Android 2.3.32018-06-12T11:32:36ZakwizgranSetupActivity warnings are blank on Android 2.3.3On the HTC Wildfire S (Android 2.3.3), the warning messages in SetupActivity (for weak password and non-matching passwords) are blank. Also, the warnings appear and disappear with alternate keystrokes.On the HTC Wildfire S (Android 2.3.3), the warning messages in SetupActivity (for weak password and non-matching passwords) are blank. Also, the warnings appear and disappear with alternate keystrokes.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/174Rename classes, methods, fields with BSP nomenclature2018-04-16T16:24:37ZakwizgranRename classes, methods, fields with BSP nomenclatureThis is going to touch a lot of code, but shouldn't make any functional changes.
Subtask of #112.This is going to touch a lot of code, but shouldn't make any functional changes.
Subtask of #112.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/173Create interface between UI and ForumClient2018-06-12T11:32:36ZakwizgranCreate interface between UI and ForumClientSubtask of #112.Subtask of #112.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/172Create interface between UI and MessagingClient2018-06-12T11:32:36ZakwizgranCreate interface between UI and MessagingClientSubtask of #112.Subtask of #112.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/171Create interface between UI and TransportClient2018-06-12T11:32:36ZakwizgranCreate interface between UI and TransportClientSubtask of #112.Subtask of #112.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/169Switch KDF from SHA-256 to BLAKE22018-06-12T11:32:36ZakwizgranSwitch KDF from SHA-256 to BLAKE2Subtask of #111.Subtask of #111.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/168PasswordActivity causes crash on Android 2.3.32018-06-12T11:32:36ZakwizgranPasswordActivity causes crash on Android 2.3.3Briar crashes on the HTC Wildfire S (Android 2.3.3) when PasswordActivity is shown:
```
E/AndroidRuntime(10948): FATAL EXCEPTION: main
E/AndroidRuntime(10948): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.b...Briar crashes on the HTC Wildfire S (Android 2.3.3) when PasswordActivity is shown:
```
E/AndroidRuntime(10948): FATAL EXCEPTION: main
E/AndroidRuntime(10948): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject/org.briarproject.android.PasswordActivity}: android.view.InflateException: Binary XML file line #51: Error inflating class <unknown>
E/AndroidRuntime(10948): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1821)
E/AndroidRuntime(10948): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842)
E/AndroidRuntime(10948): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
E/AndroidRuntime(10948): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
E/AndroidRuntime(10948): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(10948): at android.os.Looper.loop(Looper.java:143)
E/AndroidRuntime(10948): at android.app.ActivityThread.main(ActivityThread.java:4268)
E/AndroidRuntime(10948): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(10948): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(10948): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(10948): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(10948): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(10948): Caused by: android.view.InflateException: Binary XML file line #51: Error inflating class <unknown>
E/AndroidRuntime(10948): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
E/AndroidRuntime(10948): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
E/AndroidRuntime(10948): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
E/AndroidRuntime(10948): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
E/AndroidRuntime(10948): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
E/AndroidRuntime(10948): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(10948): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime(10948): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
E/AndroidRuntime(10948): at android.app.Activity.setContentView(Activity.java:1728)
E/AndroidRuntime(10948): at org.briarproject.android.PasswordActivity.onCreate(PasswordActivity.java:56)
E/AndroidRuntime(10948): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E/AndroidRuntime(10948): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785)
E/AndroidRuntime(10948): ... 11 more
E/AndroidRuntime(10948): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(10948): at java.lang.reflect.Constructor.constructNative(Native Method)
E/AndroidRuntime(10948): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
E/AndroidRuntime(10948): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
E/AndroidRuntime(10948): ... 22 more
E/AndroidRuntime(10948): Caused by: android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x2/d=0x101009b a=-1}
E/AndroidRuntime(10948): at android.content.res.Resources.loadColorStateList(Resources.java:1822)
E/AndroidRuntime(10948): at android.content.res.TypedArray.getColorStateList(TypedArray.java:342)
E/AndroidRuntime(10948): at android.widget.TextView.<init>(TextView.java:692)
E/AndroidRuntime(10948): at android.widget.TextView.<init>(TextView.java:381)
E/AndroidRuntime(10948): ... 25 more
W/ActivityManager( 124): Activity pause timeout for HistoryRecord{40aebf68 org.briarproject/.android.PasswordActivity}
I/Process (10948): Sending signal. PID: 10948 SIG: 9
I/ActivityManager( 124): Process org.briarproject (pid 10948) has died.
```Milestone A