briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-06-12T11:32:36Zhttps://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 Ahttps://code.briarproject.org/briar/briar/-/issues/167Replace TransportConfig with namespaced Settings2018-06-12T11:32:36ZakwizgranReplace TransportConfig with namespaced SettingsThe Tor and Bluetooth plugins use a mixture of Settings and TransportConfig to store their configuration. No other plugins use TransportConfig.
Add namespaces to Settings so all components can use them without treading on each other's...The Tor and Bluetooth plugins use a mixture of Settings and TransportConfig to store their configuration. No other plugins use TransportConfig.
Add namespaces to Settings so all components can use them without treading on each other's toes, and remove TransportConfig.
Plugins should be able to access their settings through the PluginCallback, as they currently can for TransportConfig. Perhaps the PluginManager should also push updated settings to the plugins so they don't have to listen on the EventBus?Milestone BSantiago Torres-AriasSantiago Torres-Ariashttps://code.briarproject.org/briar/briar/-/issues/166Upgrade Tor to 0.2.7.62018-06-12T11:32:36ZakwizgranUpgrade Tor to 0.2.7.6Also update the GeoIP database.Also update the GeoIP database.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/165Research upgrading the dependency injection framework2018-06-12T11:32:36ZakwizgranResearch upgrading the dependency injection frameworkCurrently we use Roboguice 2. Investigate whether Roboguice 3 or Dagger would offer advantages, and how much work would be involved in the upgrade. Whatever we choose must work for briar-desktop as well as briar-android.Currently we use Roboguice 2. Investigate whether Roboguice 3 or Dagger would offer advantages, and how much work would be involved in the upgrade. Whatever we choose must work for briar-desktop as well as briar-android.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/162Build with latest Android SDK2018-06-12T11:32:36ZakwizgranBuild with latest Android SDKThe project is currently built with SDK version 22, which isn't bundled with Android Studio by default. This creates an extra hurdle for people to build the code. Build with the latest SDK (23) while keeping 22 as the target.The project is currently built with SDK version 22, which isn't bundled with Android Studio by default. This creates an extra hurdle for people to build the code. Build with the latest SDK (23) while keeping 22 as the target.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/161Error creating hidden service with Tor 0.2.7.52018-06-12T11:32:36ZakwizgranError creating hidden service with Tor 0.2.7.5Tor fails to create a hidden service after a fresh install with Tor 0.2.7.5.
Logcat output:
```
I/TorPlugin(17807): Starting Tor
I/TorPlugin(17807): Dec 08 11:19:43.535 [notice] Tor v0.2.7.5 running on Linux with Libevent 2.0.22-st...Tor fails to create a hidden service after a fresh install with Tor 0.2.7.5.
Logcat output:
```
I/TorPlugin(17807): Starting Tor
I/TorPlugin(17807): Dec 08 11:19:43.535 [notice] Tor v0.2.7.5 running on Linux with Libevent 2.0.22-stable, OpenSSL 1.0.2e and Zlib 1.2.7.
I/TorPlugin(17807): Dec 08 11:19:43.537 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
I/TorPlugin(17807): Dec 08 11:19:43.537 [notice] Read configuration file "/data/data/org.briarproject/app_tor/torrc".
I/TorPlugin(17807): Dec 08 11:19:43.557 [notice] Opening Control listener on 127.0.0.1:59051
I/TorPlugin(17807): Dec 08 11:19:43.558 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
I/PluginManagerImpl(17807): Starting TorPlugin took 5565 ms
I/LifecycleManagerImpl(17807): Starting org.briarproject.plugins.PluginManagerImpl took 5689 ms
I/TorPlugin(17807): Online: true
I/TorPlugin(17807): Country code: GB
I/TorPlugin(17807): Enabling network: true
I/TorPlugin(17807): NOTICE Opening Socks listener on 127.0.0.1:59050
I/TorPlugin(17807): Creating hidden service
I/TorPlugin(17807): WARN Permissions on directory /data/data/org.briarproject/app_tor are too permissive.
I/TorPlugin(17807): WARN Controller gave us config lines that didn't validate: Failed to configure rendezvous options. See logs for details.
W/TorPlugin(17807): net.freehaven.tor.control.TorControlError: Error reply: Unacceptable option value: Failed to configure rendezvous options. See logs for details.
W/TorPlugin(17807): net.freehaven.tor.control.TorControlError: Error reply: Unacceptable option value: Failed to configure rendezvous options. See logs for details.
W/TorPlugin(17807): at net.freehaven.tor.control.TorControlConnection.sendAndWaitForResponse(TorControlConnection.java:195)
W/TorPlugin(17807): at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:378)
W/TorPlugin(17807): at org.briarproject.plugins.tor.TorPlugin.publishHiddenService(TorPlugin.java:403)
W/TorPlugin(17807): at org.briarproject.plugins.tor.TorPlugin.access$700(TorPlugin.java:57)
W/TorPlugin(17807): at org.briarproject.plugins.tor.TorPlugin$1$1.run(TorPlugin.java:371)
W/TorPlugin(17807): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
W/TorPlugin(17807): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
W/TorPlugin(17807): at java.lang.Thread.run(Thread.java:841)
I/TorPlugin(17807): Hidden service
I/TorPlugin(17807): NOTICE Bootstrapped 5%: Connecting to directory server
I/TorPlugin(17807): OR connection LAUNCHED
```Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/160Improve .gitignore2018-06-12T11:32:36ZErnir ErlingssonImprove .gitignoreImprove the .gitignore to clean up the change-listImprove the .gitignore to clean up the change-listMilestone Ahttps://code.briarproject.org/briar/briar/-/issues/159Improve error messages on setup page2018-06-12T11:32:36Zstr4dImprove error messages on setup pageTwo parts:
* "Password is too weak" is displayed while typing password even after the password's strength exceeds the minimum; the message only disappears once you shift focus to another text box.
* Error messages should be errors on...Two parts:
* "Password is too weak" is displayed while typing password even after the password's strength exceeds the minimum; the message only disappears once you shift focus to another text box.
* Error messages should be errors on the relevant text boxes, not a separate label.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/158Support Android 6 Permission Model2018-06-12T11:32:36ZTorsten GroteSupport Android 6 Permission ModelCurrently, the app is built for API level 22 and does not yet support the new permission model of Android 6 (API 23).
This affects at least the permission `ACCESS_COARSE_LOCATION`. We need to ask for this permission before adding cont...Currently, the app is built for API level 22 and does not yet support the new permission model of Android 6 (API 23).
This affects at least the permission `ACCESS_COARSE_LOCATION`. We need to ask for this permission before adding contacts via Bluetooth. For details see #223.
See https://developer.android.com/training/permissions/requesting.html for more information.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/156Turn off Bluetooth again when not required anymore2018-06-12T11:32:36ZTorsten GroteTurn off Bluetooth again when not required anymoreWhen Bluetooth was disabled on the device and we turned it on (e.g. for adding a contact), we should disable it again after it is not needed anymore.When Bluetooth was disabled on the device and we turned it on (e.g. for adding a contact), we should disable it again after it is not needed anymore.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/155Change Notification Icon to be less similar to the Superuser/root icon2018-06-12T11:32:36ZTorsten GroteChange Notification Icon to be less similar to the Superuser/root iconThe current Notification Icon looks very similar to the icon of the Superuser app that signals that an app is currently using root privileges. This might confuse users.
An alternative would be to use a white circle with a black hash c...The current Notification Icon looks very similar to the icon of the Superuser app that signals that an app is currently using root privileges. This might confuse users.
An alternative would be to use a white circle with a black hash cut out, rather than a white hash.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/154Test Requirement of Foreground and Permanent Notification Icon2018-06-12T11:32:36ZTorsten GroteTest Requirement of Foreground and Permanent Notification IconShowing a permanent notification icon is discouraged and many people's notification bar is incredibly cluttered with notification icons already. I'd like to raise the question whether we really need to show the icon to signal the user th...Showing a permanent notification icon is discouraged and many people's notification bar is incredibly cluttered with notification icons already. I'd like to raise the question whether we really need to show the icon to signal the user that she is signed into Briar at the moment.
The notification icon is shown for the app to run in the foreground and for preventing it from getting killed. However, we should experiment to see whether running in the foreground is definitely necessary. (It's more likely to be necessary on devices with less memory, so that's the place to test.)Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/153Improve Forum Sharing UI when sharing with selected contacts2018-06-12T11:32:37ZTorsten GroteImprove Forum Sharing UI when sharing with selected contactsWhen sharing only with chosen contacts, checking the contact's checkbox and pressing Done nothing happens and the forum is not shared. An additional click on "Share Forum" is necessary to actually share.
I would either share the forum...When sharing only with chosen contacts, checking the contact's checkbox and pressing Done nothing happens and the forum is not shared. An additional click on "Share Forum" is necessary to actually share.
I would either share the forum right away when the contacts have been selected or show the list of contacts directly in the View below the "chosen contacts" radio button and not in a separate dialog. Both solutions would remove the confusion I had when using the existing UI for the first time.
This is a sub-ticket of #121.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/151Explain what "account creation" means on first run2018-06-12T11:32:37Zstr4dExplain what "account creation" means on first runWhen I first started the app after building it, I saw the initial screen and immediately got nervous, thinking "ooh, I'd better not use my actual username because 'Create Account' could break my pseudonymity by talking to a server over t...When I first started the app after building it, I saw the initial screen and immediately got nervous, thinking "ooh, I'd better not use my actual username because 'Create Account' could break my pseudonymity by talking to a server over the clearnet". This was despite knowing *full well* that Briar is a distributed app, and therefore logically the 'Create Account' button should only set up the local app, and not talk to anything. I expect that other new users could also feel anxious about the lack of explanation of what is happening (somewhat related: #94).
Perhaps the fix is as simple as changing the "Create Account" text, to something that isn't so closely associated by users with the client-server model. Or adding some text at the top to explain what is happening. Or maybe it's just me :smile:Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/150Clear the password field if wrong password is entered2018-06-12T11:32:37ZakwizgranClear the password field if wrong password is enteredMilestone Ahttps://code.briarproject.org/briar/briar/-/issues/149Use control port to create Tor hidden service2018-06-12T11:32:37ZakwizgranUse control port to create Tor hidden serviceHidden services can now be created via the control port, with the controller storing the private key. This will enable us to store the private key in the encrypted database.Hidden services can now be created via the control port, with the controller storing the private key. This will enable us to store the private key in the encrypted database.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/148Upgrade Tor to 0.2.7.52018-06-12T11:32:37ZakwizgranUpgrade Tor to 0.2.7.5Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/147Implement crypto_secretbox with Spongy Castle2018-06-12T11:32:37ZakwizgranImplement crypto_secretbox with Spongy CastleThis is a simple combination of XSalsa20 and Poly1305. Use libsodium or tweetnacl to generate test vectors.This is a simple combination of XSalsa20 and Poly1305. Use libsodium or tweetnacl to generate test vectors.Milestone Ahttps://code.briarproject.org/briar/briar/-/issues/146Upgrade Spongy Castle to 1.532018-06-12T11:32:37ZakwizgranUpgrade Spongy Castle to 1.53Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/145Briar development roadmap2018-06-12T11:32:37ZakwizgranBriar development roadmapCreate a roadmap page on the website describing the milestones leading to the 1.0 release.Create a roadmap page on the website describing the milestones leading to the 1.0 release.Milestone Aakwizgranakwizgran