briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-11-25T13:27:06Zhttps://code.briarproject.org/briar/briar/-/issues/1805Briar pairing with mailbox2021-11-25T13:27:06ZakwizgranBriar pairing with mailboxDesign and implement UI and backend for pairing with a mailbox.
Depends on #1804.Design and implement UI and backend for pairing with a mailbox.
Depends on #1804.Mailbox: Pairing2022-10-31https://code.briarproject.org/briar/briar/-/issues/1807Upload data to mailbox2022-08-17T10:10:33ZakwizgranUpload data to mailboxWrite backend code to create a temporary file, write a simplex stream to the file, and upload the file to the user's own mailbox or a contact's mailbox.
Depends on #1804.Write backend code to create a temporary file, write a simplex stream to the file, and upload the file to the user's own mailbox or a contact's mailbox.
Depends on #1804.Mailbox2022-10-31https://code.briarproject.org/briar/briar/-/issues/1808Download data from mailbox2022-08-17T10:10:55ZakwizgranDownload data from mailboxWrite backend code to download a file from the user's own mailbox or a contact's mailbox into a temporary directory, try to read a simplex stream from the local file, and delete the file from the mailbox and the temporary directory.
Dep...Write backend code to download a file from the user's own mailbox or a contact's mailbox into a temporary directory, try to read a simplex stream from the local file, and delete the file from the mailbox and the temporary directory.
Depends on #1804.Mailbox2022-10-31https://code.briarproject.org/briar/briar/-/issues/1809Subscribe to RSS feeds offered by mailbox2022-11-17T14:30:38ZakwizgranSubscribe to RSS feeds offered by mailboxDesign and implement a UI and backend for viewing the list of RSS feeds offered by the user's mailbox and subscribing to feeds.
Depends on #1804.Design and implement a UI and backend for viewing the list of RSS feeds offered by the user's mailbox and subscribing to feeds.
Depends on #1804.RSS import2022-10-31https://code.briarproject.org/briar/briar/-/issues/1810Download RSS feeds from mailbox2022-11-17T14:30:25ZakwizgranDownload RSS feeds from mailboxWrite backend code for downloading RSS feeds offered by the mailbox, parsing the feeds and creating Briar blog posts for any new feed items.
Only feeds the user has subscribed to (see #1809) should be downloaded.
Depends on #1804.Write backend code for downloading RSS feeds offered by the mailbox, parsing the feeds and creating Briar blog posts for any new feed items.
Only feeds the user has subscribed to (see #1809) should be downloaded.
Depends on #1804.RSS import2022-10-31https://code.briarproject.org/briar/briar/-/issues/1811Update Bramble protocol stack to support syncing via mailbox2022-08-17T10:09:50ZakwizgranUpdate Bramble protocol stack to support syncing via mailboxWhen communicating via mailboxes, the max latency and thus the retransmission interval are very long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO ...When communicating via mailboxes, the max latency and thus the retransmission interval are very long, so we need to be careful about any circumstances that could cause messages to be lost.
On the sender side, if an error (such as an IO error, app crash or device crash) occurs while we're writing messages to a file, we need to ensure that those messages can be sent again after recovering from the error. Ideally this should apply to acks too.
On the receiver side, if an error occurs while we're reading messages from a file, we need to ensure that the file can be read again after recovering from the error.Mailbox2022-10-31https://code.briarproject.org/briar/briar/-/issues/1812Update own mailbox's contact list when contacts are added or removed2022-08-12T12:44:40ZakwizgranUpdate own mailbox's contact list when contacts are added or removedWhen a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.When a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.Mailbox: Contact management API2022-10-31https://code.briarproject.org/briar/briar/-/issues/1816Research multi-hop communication via social mesh2023-09-15T16:49:27ZakwizgranResearch multi-hop communication via social meshIdentify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of p...Identify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance (e.g. fraction of messages delivered, delivery latency, bandwidth and battery use) taking the current single-hop sync as a baseline. Recommend whether any of the solutions should be incorporated into Briar.2022-12-31https://code.briarproject.org/briar/briar/-/issues/1817Research communication via public mesh2022-07-20T10:38:58ZakwizgranResearch communication via public meshDevelop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encrypti...Develop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encryption is assumed.
Each concept must include solutions for:
* Discovering nearby peers
* Connecting to peers
* Deciding which data to sync with each peer
* Providing an API for user-facing components (e.g. messaging) to insert data into the mesh and be notified when relevant data is received
Concepts must be suitable for use on unrooted Android devices (taking into account current restrictions on device discovery). Ideally concepts should also be suitable for use on iOS and allow communication between Android and iOS.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance taking Briar's "social mesh" as a baseline.Public mesh research2023-04-30https://code.briarproject.org/briar/briar/-/issues/1819Crash if screen is rotated during setup and "Create Account" is tapped twice2021-07-06T10:03:53ZakwizgranCrash if screen is rotated during setup and "Create Account" is tapped twiceI got the following crash on the Nokia 3.1 (Android 10) while trying to reproduce another bug. During setup, I rotated the screen to landscape and back to portrait after tapping "Create Account", which caused the progress wheel to disapp...I got the following crash on the Nokia 3.1 (Android 10) while trying to reproduce another bug. During setup, I rotated the screen to landscape and back to portrait after tapping "Create Account", which caused the progress wheel to disappear and the "Create Account" button to reappear. I tapped the button again and Briar crashed:
```
2020-10-29 10:58:16.219 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying StartupActivity
2020-10-29 10:58:16.224 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SplashScreenActivity
2020-10-29 10:58:16.229 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SplashScreenActivity
2020-10-29 10:58:28.199 10998-11087/org.briarproject.briar.android.debug I/SetupControllerImpl: Creating account
2020-10-29 10:58:28.380 10998-11087/org.briarproject.briar.android.debug I/IdentityManagerImpl: Creating identity took 178 ms
2020-10-29 10:58:28.381 10998-11087/org.briarproject.briar.android.debug I/IdentityManagerImpl: Identity registered
2020-10-29 10:58:29.328 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Pausing SetupActivity
2020-10-29 10:58:29.343 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SetupActivity
2020-10-29 10:58:29.412 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SetupActivity
2020-10-29 10:58:29.614 10998-11087/org.briarproject.briar.android.debug I/ScryptKdf: KDF cost parameter 8192
2020-10-29 10:58:30.015 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Creating SetupActivity
2020-10-29 10:58:30.087 10998-11087/org.briarproject.briar.android.debug I/ScryptKdf: Deriving key from password took 472 ms
2020-10-29 10:58:30.213 10998-11087/org.briarproject.briar.android.debug I/AndroidKeyStrengthener: Loaded key from keystore
2020-10-29 10:58:30.338 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Storing database key in file
2020-10-29 10:58:30.341 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Created database key directory
2020-10-29 10:58:30.344 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Stored database key in backup file
2020-10-29 10:58:30.345 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Renamed backup file to primary
2020-10-29 10:58:30.347 10998-11087/org.briarproject.briar.android.debug I/AccountManagerImpl: Stored second copy of database key in backup file
2020-10-29 10:58:30.354 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Starting SetupActivity
2020-10-29 10:58:30.366 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Resuming SetupActivity
2020-10-29 10:58:33.257 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Pausing SetupActivity
2020-10-29 10:58:33.261 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Stopping SetupActivity
2020-10-29 10:58:33.288 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Destroying SetupActivity
2020-10-29 10:58:33.623 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Creating SetupActivity
2020-10-29 10:58:33.968 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Starting SetupActivity
2020-10-29 10:58:33.980 10998-10998/org.briarproject.briar.android.debug I/BaseActivity: Resuming SetupActivity
2020-10-29 10:58:36.130 10998-11087/org.briarproject.briar.android.debug I/SetupControllerImpl: Creating account
2020-10-29 10:58:36.132 10998-11087/org.briarproject.briar.android.debug E/AndroidRuntime: FATAL EXCEPTION: pool-3-thread-1
Process: org.briarproject.briar.android.debug, PID: 10998
java.lang.AssertionError: Already have a database key
at org.briarproject.bramble.account.AccountManagerImpl.createAccount(AccountManagerImpl.java:169)
at org.briarproject.briar.android.account.SetupControllerImpl.lambda$createAccount$0$SetupControllerImpl(SetupControllerImpl.java:111)
at org.briarproject.briar.android.account.-$$Lambda$SetupControllerImpl$bM_lMydguKzowB8BXIvR9b0joQw.run(Unknown Source:8)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
```Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1820Use briar-debug alongside briar: tor socket already in use2022-02-25T15:05:47ZToni MarschallUse briar-debug alongside briar: tor socket already in useHello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Bri...Hello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Briar can't connect to the Internet". In the debug log i can read that a server socket is already bound and a connection to some local ips in not possible (tor?).
Is there a workaround?
```
...
2020-10-30 10:09:28.762 6449-9468/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.80 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.78 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.48 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.253 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.82 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 10.0.0.10 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.175 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
...
2020-10-30 10:09:29.009 6449-9464/org.briarproject.briar.android.debug I/TcpPlugin: Server socket already bound
...
```
My home network is 192.168.8.x
Thankshttps://code.briarproject.org/briar/briar/-/issues/1821Bluetooth setup screen2021-08-31T13:11:23ZakwizgranBluetooth setup screenReflected transport properties should enable most devices to learn their own Bluetooth addresses, but there's still a bootstrapping problem when a group of two or more contacts are all running Android 8.1+ and none of them added each oth...Reflected transport properties should enable most devices to learn their own Bluetooth addresses, but there's still a bootstrapping problem when a group of two or more contacts are all running Android 8.1+ and none of them added each other via Bluetooth.
We could solve this by adding a "Bluetooth setup" workflow. If the user activates the Bluetooth plugin and we don't know the device's address, we tell the user that Bluetooth needs to be set up and that they need a contact nearby to help with this. When both users are ready, we perform discovery, show a list of devices, and ask the users to pick each other's devices. If the devices succeed in making a connection they'll learn each other's addresses and exchange them via reflected transport properties.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1822Import RSS feeds shared by other apps2023-03-15T12:35:33ZakwizgranImport RSS feeds shared by other appsImport RSS feeds shared as XML files by other apps.
This should use the same parsing and import logic as #1810.Import RSS feeds shared as XML files by other apps.
This should use the same parsing and import logic as #1810.RSS import2023-02-28https://code.briarproject.org/briar/briar/-/issues/1823ViewModel migration2021-07-06T09:59:04ZakwizgranViewModel migrationhttps://code.briarproject.org/briar/briar/-/issues/1824Adapt to power management restrictions2021-04-30T13:42:29ZakwizgranAdapt to power management restrictionsAdapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1825Unspecific 500 Server Error when adding already existing pending contact2021-05-05T16:15:44ZNicoUnspecific 500 Server Error when adding already existing pending contact@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the respon...@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the response by Briar Headless is always just `500: Internal server error`. I get this when adding a pending contact after
* it has already been added seconds before and the peer is offline
* it has already been added more than 4 days before (manually changed system time) and the peer was offline all the time
* the pending contact got already added days before and left the pending state
* the link is invalid (I think so, just changed some characters)
* and for sure there are more errors
The problem is that [in this line](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt#L96) `contactManager.addPendingContact` gets called without catching its exceptions. Looking [at its implementation](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java#L136), there are at least `DbException, FormatException, GeneralSecurityException` that get thrown.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1826Finish migrating SettingsFragment to ViewModel2021-04-01T13:22:18ZakwizgranFinish migrating SettingsFragment to ViewModelA ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of ...A ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of #1823.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1827Raise target API level to 302021-05-05T16:08:09ZakwizgranRaise target API level to 30Adapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1828Update messaging client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate messaging client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1829Update introduction client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate introduction client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1830Update blog and forum sharing clients to include a self-destruct timer in eac...2020-11-30T12:45:14ZakwizgranUpdate blog and forum sharing clients to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1831Update private group sharing client to include a self-destruct timer in each ...2020-11-30T12:45:14ZakwizgranUpdate private group sharing client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1832Store self-destruct timer duration2020-12-16T12:58:10ZakwizgranStore self-destruct timer durationFor each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer dur...For each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer duration. There should also be methods for setting the duration manually and querying the duration when sending a message.
Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1833Delete messages when their self-destruct timers expire2021-03-11T12:25:31ZakwizgranDelete messages when their self-destruct timers expireCreate a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for...Create a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for calling back into the client when a message is due to be deleted. This will allow the client to take any necessary steps before deletion, such as declining an open introduction.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1837Conversation settings screen2021-04-13T11:49:41ZakwizgranConversation settings screenAdd a per-conversation settings screen, accessible via the conversation screen's menu.
The screen will initially have one setting: a switch that enables or disables self-destructing messages, with an explanation of the timer duration an...Add a per-conversation settings screen, accessible via the conversation screen's menu.
The screen will initially have one setting: a switch that enables or disables self-destructing messages, with an explanation of the timer duration and the fact that changes made by the contact will be followed automatically.
Subtask of #804Self-destructing messagesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1838Show a bomb icon on messages with self-destruct timers2020-12-03T14:02:14ZakwizgranShow a bomb icon on messages with self-destruct timersSubtask of #804Subtask of #804Self-destructing messagesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1839ConversationActivityNotSignedInTest requires manual account setup2020-11-11T16:01:14ZakwizgranConversationActivityNotSignedInTest requires manual account setupConversationActivityNotSignedInTest fails unless an account has been created on the device/emulator before running the test. The account is subsequently deleted during the setup of NavDrawerActivityTest.ConversationActivityNotSignedInTest fails unless an account has been created on the device/emulator before running the test. The account is subsequently deleted during the setup of NavDrawerActivityTest.https://code.briarproject.org/briar/briar/-/issues/1840NavDrawerActivityTest fails to find drawer layout2020-11-11T16:03:58ZakwizgranNavDrawerActivityTest fails to find drawer layoutNavDrawerActivityTest fails to find a view with ID `R.id.drawer_layout`, possibly due to StartupActivity being shown.NavDrawerActivityTest fails to find a view with ID `R.id.drawer_layout`, possibly due to StartupActivity being shown.https://code.briarproject.org/briar/briar/-/issues/1841NavDrawerActivityTest fails with InitializationError on API 162020-11-11T16:56:24ZakwizgranNavDrawerActivityTest fails with InitializationError on API 16NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be...NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be loaded.
at androidx.test.ext.junit.runners.AndroidJUnit4.throwInitializationError(AndroidJUnit4.java:92)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:82)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:51)
at androidx.test.ext.junit.runners.AndroidJUnit4.<init>(AndroidJUnit4.java:46)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at androidx.test.internal.runner.TestLoader$ScanningRunnerBuilder.runnerForClass(TestLoader.java:143)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:793)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:547)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:390)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:72)
... 18 more
Caused by: java.lang.NoClassDefFoundError: javax/inject/Inject
at java.lang.reflect.Field.getDeclaredAnnotations(Native Method)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:204)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:138)
at org.junit.runners.model.FrameworkField.getAnnotations(FrameworkField.java:31)
at org.junit.runners.model.TestClass.addToAnnotationLists(TestClass.java:84)
at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:71)
at org.junit.runners.model.TestClass.<init>(TestClass.java:57)
at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:43)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:48)
... 21 more
Caused by: java.lang.ClassNotFoundException: javax.inject.Inject
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
... 33 more
```Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1842Add message ID of profile picture to Identity, Contact and AuthorInfo classes2020-12-11T10:34:39ZakwizgranAdd message ID of profile picture to Identity, Contact and AuthorInfo classesThis field will be null for identities without a profile picture, or those whose profile picture is unknown.
Subtask of #214This field will be null for identities without a profile picture, or those whose profile picture is unknown.
Subtask of #214Profile picturesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1843Create sync client to exchange profile pictures with contacts2020-11-30T12:31:03ZakwizgranCreate sync client to exchange profile pictures with contactsThis client will sync single-block messages initially, pending large message support.
Subtask of #214.This client will sync single-block messages initially, pending large message support.
Subtask of #214.Profile picturesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1844Add core method for loading a profile picture2020-11-30T12:31:04ZakwizgranAdd core method for loading a profile pictureAdd a core method for loading a profile picture as an InputStream, give the message ID and content type. This will be similar to MessagingManager#getAttachment(), so consider whether that method and the Attachment and AttachmentHeader cl...Add a core method for loading a profile picture as an InputStream, give the message ID and content type. This will be similar to MessagingManager#getAttachment(), so consider whether that method and the Attachment and AttachmentHeader classes should be factored out.
Subtask of #214.Profile picturesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1845Show profile picture in AuthorView using Glide2020-12-11T10:34:26ZakwizgranShow profile picture in AuthorView using GlideIf an AuthorInfo specifies a profile picture, AuthorView should load it using Glide instead of showing an identicon.
Depends on #1842 and #1844. Subtask of #214.If an AuthorInfo specifies a profile picture, AuthorView should load it using Glide instead of showing an identicon.
Depends on #1842 and #1844. Subtask of #214.Profile picturesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1846Refactor image compression code for reuse outside messaging client2020-12-07T11:49:19ZakwizgranRefactor image compression code for reuse outside messaging clientFactor out AttachmentCreationTask#compressImage() so it can be reused when storing the user's profile picture.
Subtask of #214.Factor out AttachmentCreationTask#compressImage() so it can be reused when storing the user's profile picture.
Subtask of #214.Profile picturesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1847UI for choosing profile picture2020-12-11T10:34:02ZakwizgranUI for choosing profile pictureAdd an item to the settings screen that shows the user's current profile picture (if any) with a button for choosing a new picture.
Create a new confirmation screen that shows the chosen picture cropped to a circle, with an explanation ...Add an item to the settings screen that shows the user's current profile picture (if any) with a button for choosing a new picture.
Create a new confirmation screen that shows the chosen picture cropped to a circle, with an explanation that the picture will only be visible to contacts and buttons to confirm or cancel the choice.
Depends on #1844, #1846. Subtask of #214.Profile picturesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1848Test performance of profile picture loading and caching2020-12-11T10:34:16ZakwizgranTest performance of profile picture loading and cachingCheck that performance is acceptable when loading a conversation with a large number of profile pictures (eg a forum with posts from many contacts).
Depends on #1845. Subtask of #214.Check that performance is acceptable when loading a conversation with a large number of profile pictures (eg a forum with posts from many contacts).
Depends on #1845. Subtask of #214.Profile picturesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1849Upgrade Tor to 0.3.5.122020-11-16T16:52:46ZakwizgranUpgrade Tor to 0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1850Import Blog RSS Feed from hidden service (.onion address)2022-04-18T11:59:44ZMarcin OssowskiImport Blog RSS Feed from hidden service (.onion address)Hi!
It would be AWESOME if Briar could import RSS Feeds over Tor network, using a hidden service (the .onion address). This would allow for very private publishing using a feed over hidden service!
I just tested with recent Briar on A...Hi!
It would be AWESOME if Briar could import RSS Feeds over Tor network, using a hidden service (the .onion address). This would allow for very private publishing using a feed over hidden service!
I just tested with recent Briar on Android, and it is not possible - a generic failure message is displayed.https://code.briarproject.org/briar/briar/-/issues/1834Automatically decline incoming introduction requests when they self-destruct2021-05-05T16:17:22ZakwizgranAutomatically decline incoming introduction requests when they self-destructWhen an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be sh...When an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804
Test instructions:
* Use three devices, users A, B and C
* Enable self-destructing messages in the conversations A-B and A-C
* Let A introduce contacts B and C
* Expect invitation messages to arrive at B and C about the invitation
* Expect the invitation messages to have a auto-delete timers
* Let those timers expire. Expect that to trigger an automatic decline of the invitation, i.e. on all three devices it is visible that the introduction failed (due to the expired response)
* Expect all messages from that interaction to destroy after each message's timer expires
* Let A introduce B and C again. Expect this *not* to fail due to an introduction that is already going on (because none should be going on any longer)
* Let B and C accept the introduction
* Expect the introduction to work
* Confirm that B and C have each other in the contact list
* Expect all messages involved in the transaction to have auto-delete timers
* Let those timers expire and expect all those messages to disappearSelf-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1835Automatically decline incoming blog/forum invitations when they self-destruct2021-07-06T09:56:40ZakwizgranAutomatically decline incoming blog/forum invitations when they self-destructWhen an incoming blog/forum invitation self-destructs without being answered, automatically decline the invitation. This may require a protocol update (coordinated with #1830) to flag the decline as an automatic response that shouldn't b...When an incoming blog/forum invitation self-destructs without being answered, automatically decline the invitation. This may require a protocol update (coordinated with #1830) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1851Move media related classes and interfaces from AttachmentModule into dedicate...2021-02-19T17:58:09ZSebastianMove media related classes and interfaces from AttachmentModule into dedicated MediaModuleWhile working on #1846 the idea came up to further refactor the attachment package and module by creating a dedicated media or image module that would be a new home for the various classes and interfaces dealing with images that might de...While working on #1846 the idea came up to further refactor the attachment package and module by creating a dedicated media or image module that would be a new home for the various classes and interfaces dealing with images that might deserve their own package now that they are also being used for other purposes. We decided to handle that further refactoring separately to not interfere too much with the ongoing work on #214Profile picturesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1852A blog comment should have a higher timestamp than the post/comment it replie...2020-12-02T12:27:25ZakwizgranA blog comment should have a higher timestamp than the post/comment it replies toWhen devices have inaccurate clocks, a blog comment can have a lower timestamp than the post/comment it replies to. We should fake the timestamp in this situation to preserve causal order, like we do when replying to forum posts.When devices have inaccurate clocks, a blog comment can have a lower timestamp than the post/comment it replies to. We should fake the timestamp in this situation to preserve causal order, like we do when replying to forum posts.https://code.briarproject.org/briar/briar/-/issues/1853Show a notice in the conversation when one party changes self-destruct timer2021-07-06T09:57:04ZTorsten GroteShow a notice in the conversation when one party changes self-destruct timerSort the conversation message items/headers by timestamp, work through them in order, and whenever the local or remote timer duration changes, insert a notice into the list.Sort the conversation message items/headers by timestamp, work through them in order, and whenever the local or remote timer duration changes, insert a notice into the list.Self-destructing messagesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1854Provide Tor/obfsproxy arm binaries for Linux2023-01-25T11:44:13ZNicoProvide Tor/obfsproxy arm binaries for Linux_Let's properly document all the ARM binary stuff for Briar Headless._
Briar Headless currently only includes binaries for `linux-x86_64`. While Briar Android works on ARM, we need a special binary for (plain) Linux systems and [enable ..._Let's properly document all the ARM binary stuff for Briar Headless._
Briar Headless currently only includes binaries for `linux-x86_64`. While Briar Android works on ARM, we need a special binary for (plain) Linux systems and [enable them in code](https://code.briarproject.org/briar/briar/-/blob/8d735b30237aaf8212bb42d37783134a56d6e9b6/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java#L99).
Here is a table with required flags for specified target devices:
| command | `-march=` | other flags | target devices |
| ------ | ------ | ------ | ------ |
| `arm-linux-gnueabi-gcc` | `armv6` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabi-gcc` | `armv6zk` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabi-gcc` | `armv6zk+fp` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabihf-gcc` | `armv7-a+fp` | `-mmusl` | Google Nexus 5 (postmarketOS) |
| `arm-linux-gnueabihf-gcc` | `armv7ve+simd` | `-marm` | Raspberry Pi 2 Model B (not tested) |
| `arm-linux-gnueabihf-gcc` | unknown | unknown | Raspberry Pi Model 3 (not tested) |
| `aarch64-linux-gnu-gcc` | `armv8-a+crc+simd` | `-marm` | Raspberry Pi 4 Model B (not tested) |
| `aarch64-linux-gnu-gcc` | `armv8-a+crypto+crc` | - | Purism Librem 5 (not tested) |
To add information on another device, the following commands are helpful:
```bash
cat /proc/cpuinfo
gcc -c -Q -march=native --help=target
gcc -v
```
Python also gives interesting information (enter these commands after starting `python3`; you can exit with ctrl + d):
```python
import platform
platform.architecture()
platform.machine()
```
For detecting your device properly, we depend on Java to tell us which is it:
```java
public class Arch {
public static void main(String[] args) {
System.out.println(System.getProperty("os.arch"));
}
}
```
Please compile it with `javac Arch.java` and post the output of `java Arch`.
Once you have that information, feel free to post the output to this issues. Your work will help getting Briar run on your device.
You can further help by trying to do a test compile. Using the following `briar.c`...
```c
#include <stdio.h>
int main() {
float a = 3.33 + 6.66;
printf("Briar rocks, %f!", a);
return 0;
}
```
...you can compile the program using e.g. `arm-linux-gnueabi-gcc test.c -o test.out -march=armv6zk+fp -marm`. Under Debian, there are `gcc-arm-linux-gnueabihf` and `gcc-arm-linux-gnueabi` available as cross-compilers. Please compile the program on your desktop device using the right compiler flags, copy the _test.out_ binary to your target device and try to execute it there. If it works, you can additionally provide the exact compile command that worked for you.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1855Update profile pictures in contact list2020-12-16T13:01:41ZSebastianUpdate profile pictures in contact listMake sure that the profile pictures update in the contact list automatically when one of the contacts changes their avatar.Make sure that the profile pictures update in the contact list automatically when one of the contacts changes their avatar.Profile picturesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1856Update profile picture in current chat's app bar2020-12-16T12:59:18ZSebastianUpdate profile picture in current chat's app barLike #1855 we need to update the avatar once it changesLike #1855 we need to update the avatar once it changesProfile picturesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1857Statistics screen2020-12-09T17:01:45ZakwizgranStatistics screenA user asked for a statistics screen showing how many messages are waiting to be sent, and when messages have been successfully sent and received.
Possibly related to #26.A user asked for a statistics screen showing how many messages are waiting to be sent, and when messages have been successfully sent and received.
Possibly related to #26.https://code.briarproject.org/briar/briar/-/issues/1858Sending feedback/crash reports times out with many contacts2020-12-10T15:28:58ZTorsten GroteSending feedback/crash reports times out with many contactsWhen sending feedback through the app or a crash report after the app starts, often fails with a `SocketTimeoutException: Read timed out` when there's lots of contacts (~100 here).
It might be that TorPlugin doesn't work as expected wh...When sending feedback through the app or a crash report after the app starts, often fails with a `SocketTimeoutException: Read timed out` when there's lots of contacts (~100 here).
It might be that TorPlugin doesn't work as expected when there's that many circuits being built all the time.https://code.briarproject.org/briar/briar/-/issues/1859Menu item to enable/disable disappearing messages2020-12-11T10:45:21ZSebastianMenu item to enable/disable disappearing messagesSelf-destructing messagesSebastianSebastian2021-01-31https://code.briarproject.org/briar/briar/-/issues/1860Include sign-in time in crash reports2020-12-11T13:40:45ZTorsten GroteInclude sign-in time in crash reportsCurrently, we include the app start time in crash reports, but we register a boot receiver in order to show the sign-in reminder, so the application instance may be created shortly after boot, even if the user doesn't launch the app unti...Currently, we include the app start time in crash reports, but we register a boot receiver in order to show the sign-in reminder, so the application instance may be created shortly after boot, even if the user doesn't launch the app until much later. It would also be worth recording a launch time (e.g. the first time an activity's created) or a sign-in time (e.g. the time when BriarService starts).https://code.briarproject.org/briar/briar/-/issues/1861Remove calls to WifiManager#getConfiguredNetworks()2021-01-06T12:31:58ZakwizgranRemove calls to WifiManager#getConfiguredNetworks()AndroidSecureRandomProvider calls WifiManager#getConfiguredNetworks() at startup. This call requires ACCESS_FINE_LOCATION on API 30. Remove this call, and any other calls to this method.
Subtask of #1827.AndroidSecureRandomProvider calls WifiManager#getConfiguredNetworks() at startup. This call requires ACCESS_FINE_LOCATION on API 30. Remove this call, and any other calls to this method.
Subtask of #1827.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1862Show a bomb icon on the send button when the self-destruct timer is enabled2021-07-06T09:56:55ZakwizgranShow a bomb icon on the send button when the self-destruct timer is enabledSubtask of #804.Subtask of #804.Self-destructing messagesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1863IllegalArgumentException when creating group invitation2021-04-15T15:24:24ZTorsten GroteIllegalArgumentException when creating group invitation
```
java.lang.IllegalArgumentException
at org.briarproject.bramble.db.DatabaseComponentImpl.mergeGroupMetadata(DatabaseComponentImpl.java:756)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(C...
```
java.lang.IllegalArgumentException
at org.briarproject.bramble.db.DatabaseComponentImpl.mergeGroupMetadata(DatabaseComponentImpl.java:756)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(ClientHelperImpl.java:217)
at org.briarproject.briar.autodelete.AutoDeleteManagerImpl.getAutoDeleteTimer(AutoDeleteManagerImpl.java:109)
at org.briarproject.briar.android.privategroup.creation.CreateGroupControllerImpl.createInvitationContexts(CreateGroupControllerImpl.java:174)
at org.briarproject.briar.android.privategroup.creation.CreateGroupControllerImpl.lambda$null$4(CreateGroupControllerImpl.java:155)
at org.briarproject.briar.android.privategroup.creation.CreateGroupControllerImpl.lambda$null$4$CreateGroupControllerImpl(CreateGroupControllerImpl.java)
at org.briarproject.briar.android.privategroup.creation.-$$Lambda$CreateGroupControllerImpl$UuIyBT5BPK-Ol5OSyYuTSxVHrEA.run(lambda)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:198)
at org.briarproject.briar.android.privategroup.creation.CreateGroupControllerImpl.lambda$sendInvitation$5(CreateGroupControllerImpl.java:151)
```Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1864Show warning dialog when the expected timer differs from the current timer2021-03-11T12:26:19ZTorsten GroteShow warning dialog when the expected timer differs from the current timerWe mirror the timer duration from our contact's messages. It is possible that we are writing a message and short before we hit send, the timer changes or gets turned off. To prevent this scenario, we should show a warning dialog that pop...We mirror the timer duration from our contact's messages. It is possible that we are writing a message and short before we hit send, the timer changes or gets turned off. To prevent this scenario, we should show a warning dialog that pops up if the timer when sending is different from the timer when we started typing the message.
Subtask of #804.Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1865Migrate SetupController to ViewModel2021-04-06T12:40:15ZTorsten GroteMigrate SetupController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1866Migrate BlogController and FeedController to ViewModel2021-10-29T12:05:09ZTorsten GroteMigrate BlogController and FeedController to ViewModelBoth controllers share code in BaseController.
Subtask of #1800Both controllers share code in BaseController.
Subtask of #1800Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1867Introduce ViewModel for ContactListFragment2021-04-06T12:39:54ZTorsten GroteIntroduce ViewModel for ContactListFragmentThe ContactListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.The ContactListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1868Migrate ContactSelectorController to ViewModel2021-04-30T13:37:26ZTorsten GroteMigrate ContactSelectorController to ViewModelThere's some code sharing going on here with various places. Also related to #1867
Subtask of #1800There's some code sharing going on here with various places. Also related to #1867
Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1869Introduce ViewModel for ForumListFragment2021-04-06T12:40:53ZTorsten GroteIntroduce ViewModel for ForumListFragmentThe ForumListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.The ForumListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1870Migrate ForumController to ViewModel2021-04-06T12:40:10ZTorsten GroteMigrate ForumController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1871Introduce ViewModel for IntroductionActivity (and ContactChooserFragment)2021-05-05T16:08:46ZTorsten GroteIntroduce ViewModel for IntroductionActivity (and ContactChooserFragment)The IntroductionActivity and its two fragments do lots of work on the UI level, this should be migrated to a ViewModel scoped to the activity that both fragments also access.
Subtask of #1823.
Test instructions:
1. Check that contact ...The IntroductionActivity and its two fragments do lots of work on the UI level, this should be migrated to a ViewModel scoped to the activity that both fragments also access.
Subtask of #1823.
Test instructions:
1. Check that contact list used displays correctly
* Go into a conversation
* menu → make introduction
* check that list does not contain the contact you're introducing
2. Check that contact list used updates properly
* On some device (A) repeat steps from 1.
* While the contact selection list is open: use a different device (B) and sent a message to (A). Make sure the number of unread messages displayed on (A) updates and also the contact moves up to the top as it now is the contact with the last recent message
3. Check that selecting a contact works
* Repeat steps from 1.
* select a contact and check that the next screen show the expected contacts
4. Make sure going back to contact selection and repeatedly selecting contacts works as expected
* Repeat steps from 3.
* Navigate back to the list of contacts to introduce your contact to
* Select a different contact than before, check that the next screen show the contact selected the second time
* Just to be sure, try again with a third contact
5. Check screen rotation doesn't break anything
* Repeat steps from 4.
* During navigation, rotate device at different times during the processAdapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1872Finish migrating KeyAgreementActivity to ViewModel2021-05-05T16:08:47ZTorsten GroteFinish migrating KeyAgreementActivity to ViewModelThe `KeyAgreementActivity` is abstract and only implemented by `ContactExchangeActivity`. See if both can be merged and more logic moved into `ContactExchangeViewModel`.
`KeyAgreementFragment` is doing lots of work and interactions with...The `KeyAgreementActivity` is abstract and only implemented by `ContactExchangeActivity`. See if both can be merged and more logic moved into `ContactExchangeViewModel`.
`KeyAgreementFragment` is doing lots of work and interactions with briar-core. This should also be moved into the ViewModel.
Subtask of #1823.Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1873Migrate GroupController to ViewModel2021-04-06T12:40:04ZTorsten GroteMigrate GroupController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1874Migrate CreateGroupController to ViewModel2021-04-30T13:37:10ZTorsten GroteMigrate CreateGroupController to ViewModelSubtask of #1800Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1875Migrate InvitationControllers to ViewModel2021-04-30T13:36:37ZTorsten GroteMigrate InvitationControllers to ViewModelThere's three controllers sharing code:
* [ ] ForumInvitationController
* [ ] GroupInvitationController
* [ ] BlogInvitationController
Subtask of #1800There's three controllers sharing code:
* [ ] ForumInvitationController
* [ ] GroupInvitationController
* [ ] BlogInvitationController
Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1876Migrate GroupMemberListController to ViewModel2021-04-30T13:36:32ZTorsten GroteMigrate GroupMemberListController to ViewModelSubtask of #1800Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1877Migrate RevealContactsController to ViewModel2021-04-30T13:36:28ZTorsten GroteMigrate RevealContactsController to ViewModelSubtask of #1800Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1878Migrate ShareBlogController to ViewModel2021-04-30T13:36:10ZTorsten GroteMigrate ShareBlogController to ViewModelSubtask of #1800Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1879Migrate ShareForumController to ViewModel2021-04-30T13:36:05ZTorsten GroteMigrate ShareForumController to ViewModelSubtask of #1800Subtask of #1800https://code.briarproject.org/briar/briar/-/issues/1880Introduce ViewModel for SharingStatusActivity2021-04-30T13:36:01ZTorsten GroteIntroduce ViewModel for SharingStatusActivitySubtask of #1823.Subtask of #1823.https://code.briarproject.org/briar/briar/-/issues/1881Migrate ThreadListController to ViewModel2021-04-06T12:40:00ZTorsten GroteMigrate ThreadListController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1882Get rid of legacy code after ViewModel migration2021-04-30T13:35:56ZTorsten GroteGet rid of legacy code after ViewModel migrationA list of things we might not need anymore after the ViewModel migration is complete:
* [ ] `ActivityComponent`
* [ ] `BaseEventFragment`
* [ ] most of `BaseFragment`
* [ ] part of `BaseFragmentListener`
* [ ] `BriarActivity#runOnDbThre...A list of things we might not need anymore after the ViewModel migration is complete:
* [ ] `ActivityComponent`
* [ ] `BaseEventFragment`
* [ ] most of `BaseFragment`
* [ ] part of `BaseFragmentListener`
* [ ] `BriarActivity#runOnDbThread()`
* [ ] `BriarActivity#finishOnUiThread()`
* [ ] `VersionedAdapter` and its implementationhttps://code.briarproject.org/briar/briar/-/issues/1884Why keep a chat history?2022-02-25T15:04:46ZWuukoWhy keep a chat history?Why history appears?Why history appears?https://code.briarproject.org/briar/briar/-/issues/1886Quotation from text in the chat2021-01-07T10:13:20ZGhost UserQuotation from text in the chatHi,
i have a feature request. I wish me the possibility to quote text within a 1:1 chat. As far as i know almost every android messenger has this function and it makes chatting much easier if you write about different topics with your c...Hi,
i have a feature request. I wish me the possibility to quote text within a 1:1 chat. As far as i know almost every android messenger has this function and it makes chatting much easier if you write about different topics with your chat partner.
Thanks in advance for implementation.https://code.briarproject.org/briar/briar/-/issues/1887Status about Image support in 1:1 chat2022-02-25T15:04:26ZGhost UserStatus about Image support in 1:1 chatHi,
i think the title says all. I know that the devs worked on that topic in the past but i would appreciate some infos about the current state.
Thanks in advanceHi,
i think the title says all. I know that the devs worked on that topic in the past but i would appreciate some infos about the current state.
Thanks in advancehttps://code.briarproject.org/briar/briar/-/issues/1888Blog feed takes a long time to load2021-01-07T10:39:30ZWuukoBlog feed takes a long time to loadBlog section opens in 1 minuteBlog section opens in 1 minutehttps://code.briarproject.org/briar/briar/-/issues/1889Import / Export profile2021-01-05T11:45:00ZivahoeImport / Export profileCreate functional to be able to export / import profile (contacts, messages) to a file, to transfer the app to another phone.Create functional to be able to export / import profile (contacts, messages) to a file, to transfer the app to another phone.https://code.briarproject.org/briar/briar/-/issues/1890Support adding administrators to private groups2021-01-07T21:10:29ZiljaSupport adding administrators to private groupsCurrently it seems that only creator of private group is able to add others to it. It should be possible to add other admins as otherwise losing access to creating account will make the group useless over time, etc.Currently it seems that only creator of private group is able to add others to it. It should be possible to add other admins as otherwise losing access to creating account will make the group useless over time, etc.https://code.briarproject.org/briar/briar/-/issues/1891Migrate SharingController to ViewModel2021-04-26T12:53:15ZTorsten GroteMigrate SharingController to ViewModelUsed by blogs and forums.Used by blogs and forums.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1892[Feature Request] A new ui2022-02-25T15:04:11Zfinrelemos[Feature Request] A new uithe current ui of the app is really basic, and for the masses to switch to a new app from say whatsapp or signal they must be able to see the visual appeal cause for most of people the real features of briar (privacy and security) are no...the current ui of the app is really basic, and for the masses to switch to a new app from say whatsapp or signal they must be able to see the visual appeal cause for most of people the real features of briar (privacy and security) are not visible, a better ui would be useful to convince the masses to use briar.https://code.briarproject.org/briar/briar/-/issues/1893Provide explanation when self-destruct timer gets changed2021-03-11T12:26:30ZTorsten GroteProvide explanation when self-destruct timer gets changedWhen self-destruct timer gets changed initially and later, we should provide a way to get more information about this feature for users that don't understand it, yet.
This could be as simple as making the timer changed message bubble ta...When self-destruct timer gets changed initially and later, we should provide a way to get more information about this feature for users that don't understand it, yet.
This could be as simple as making the timer changed message bubble tapable "Tap here to change" and bring the user to the settings screen for self-destructing messages that has further explanation #1837Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1894Introduce ViewModel for RssFeed*Activity2021-05-05T16:08:09ZTorsten GroteIntroduce ViewModel for RssFeed*ActivityThere's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.There's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1895Introduce ViewModel for WriteBlogPostActivity2021-05-11T15:06:42ZTorsten GroteIntroduce ViewModel for WriteBlogPostActivityThe `WriteBlogPostActivity` could either be turned into a fragment and re-use BlogViewModel or have its own ViewModel.
Subtask of #1823
Depends on #1866The `WriteBlogPostActivity` could either be turned into a fragment and re-use BlogViewModel or have its own ViewModel.
Subtask of #1823
Depends on #1866https://code.briarproject.org/briar/briar/-/issues/1896Blog post toolbar title resets from Blogs to app name2021-01-12T17:40:19ZTorsten GroteBlog post toolbar title resets from Blogs to app namesteps to reproduce:
1. open blog feed
2. click on a blog post (not the author name)
3. rotate screen
4. observe toolbar title saying Briar (Debug)steps to reproduce:
1. open blog feed
2. click on a blog post (not the author name)
3. rotate screen
4. observe toolbar title saying Briar (Debug)https://code.briarproject.org/briar/briar/-/issues/1897Groups/forums/blogs are shown as "already sharing" if initial connection to c...2023-01-20T14:33:34ZakwizgranGroups/forums/blogs are shown as "already sharing" if initial connection to contact is lostIf the initial connection to a contact is lost before client versioning messages are exchanged, any group/forum/blog we try to share with the contact will be shown as "already sharing".If the initial connection to a contact is lost before client versioning messages are exchanged, any group/forum/blog we try to share with the contact will be shown as "already sharing".Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2070Unit test for transport key agreement validator2021-06-23T14:08:44ZakwizgranUnit test for transport key agreement validatorTransfer content securely via SD cards and USB memory sticksTorsten GroteTorsten Grote2021-07-31https://code.briarproject.org/briar/briar/-/issues/1898OOM error at startup2023-08-24T14:06:26ZakwizgranOOM error at startupI'm opening a new ticket for this because it doesn't seem to have the same cause as #1607.
* Android version: 9
* Phone model: Motorola Moto Z4 (foles)
* Briar version: 1.2.7 (eb562f8)
* System memory: 3629 MiB total, 1421 MiB free, 291...I'm opening a new ticket for this because it doesn't seem to have the same cause as #1607.
* Android version: 9
* Phone model: Motorola Moto Z4 (foles)
* Briar version: 1.2.7 (eb562f8)
* System memory: 3629 MiB total, 1421 MiB free, 291 MiB threshold
* VM memory: 6 MiB allocated, 3 MiB free, 128 MiB maximum
Stacktrace:
```
java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available
```
Log:
```
05-07 02:51:43.754 I/BriarApplicationImpl: Created
05-07 02:51:43.769 I/CryptoComponentImpl: Default SecureRandom: AndroidOpenSSL SHA1PRNG
05-07 02:51:43.889 I/CryptoComponentImpl: Installed SecureRandom: UnixPRNG SHA1PRNG
05-07 02:51:44.047 I/LifecycleManagerImpl: Registering executor TimeLoggingExecutor
05-07 02:51:44.047 I/LifecycleManagerImpl: Registering executor ThreadPoolExecutor
05-07 02:51:44.047 I/LifecycleManagerImpl: Registering executor ScheduledThreadPoolExecutor
05-07 02:51:44.047 I/LifecycleManagerImpl: Registering service AndroidNetworkManager
05-07 02:51:44.048 I/LifecycleManagerImpl: Registering service AndroidBatteryManager
05-07 02:51:44.048 I/LifecycleManagerImpl: Registering service KeyManagerImpl
05-07 02:51:44.049 I/LifecycleManagerImpl: Registering open database hook IdentityManagerImpl
05-07 02:51:44.049 I/LifecycleManagerImpl: Registering executor TimeLoggingExecutor
05-07 02:51:44.057 I/LifecycleManagerImpl: Registering service ValidationManagerImpl
05-07 02:51:44.059 I/LifecycleManagerImpl: Registering open database hook ClientVersioningManagerImpl
05-07 02:51:44.059 I/LifecycleManagerImpl: Registering service ClientVersioningManagerImpl
05-07 02:51:44.060 I/LifecycleManagerImpl: Registering open database hook TransportPropertyManagerImpl
05-07 02:51:44.061 I/LifecycleManagerImpl: Registering service PluginManagerImpl
05-07 02:51:44.061 I/LifecycleManagerImpl: Registering service RendezvousPollerImpl
05-07 02:51:44.065 I/LifecycleManagerImpl: Registering open database hook BlogManagerImpl
05-07 02:51:44.067 I/LifecycleManagerImpl: Registering open database hook FeedManagerImpl
05-07 02:51:44.072 I/LifecycleManagerImpl: Registering open database hook GroupInvitationManagerImpl
05-07 02:51:44.073 I/LifecycleManagerImpl: Registering open database hook MessagingManagerImpl
05-07 02:51:44.076 I/LifecycleManagerImpl: Registering open database hook ForumSharingManagerImpl
05-07 02:51:44.077 I/LifecycleManagerImpl: Registering open database hook BlogSharingManagerImpl
05-07 02:51:44.080 I/LifecycleManagerImpl: Registering open database hook IntroductionManagerImpl
05-07 02:51:44.081 I/LifecycleManagerImpl: Registering service AndroidNotificationManagerImpl
05-07 02:51:44.082 I/LifecycleManagerImpl: Registering service ScreenFilterMonitorImpl
05-07 02:51:44.082 I/LifecycleManagerImpl: Registering service NetworkUsageLogger
05-07 02:51:44.082 I/LifecycleManagerImpl: Registering service DozeWatchdogImpl
05-07 02:51:44.085 I/LifecycleManagerImpl: Registering service LockManagerImpl
05-07 02:51:44.086 I/LifecycleManagerImpl: Registering open database hook RecentEmojiImpl
05-07 02:51:44.209 I/BaseActivity: Starting SplashScreenActivity
05-07 02:51:44.868 I/BaseActivity: Starting NavDrawerActivity
05-07 02:51:44.915 I/AccountManagerImpl: Found database key in primary file
05-07 02:51:44.917 I/BaseActivity: Starting StartupActivity
05-07 02:51:46.391 I/BaseActivity: Stopping NavDrawerActivity
05-07 02:51:46.400 I/BaseActivity: Stopping SplashScreenActivity
05-07 02:51:56.059 I/AccountManagerImpl: Found database key in primary file
```
Looks like the app threw an OOM while showing the password screen, with only 6 MB of 128 MB allocated. :shrug:Android 1.4https://code.briarproject.org/briar/briar/-/issues/1899NPE in BluetoothSocket#connect()2021-03-11T18:11:31ZakwizgranNPE in BluetoothSocket#connect()* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.St...* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.android.bluetooth.btservice.AdapterService$ConnectRecord.packageName' on a null object reference
at android.os.Parcel.createException(Parcel.java:1959)
at android.os.Parcel.readException(Parcel.java:1921)
at android.os.Parcel.readException(Parcel.java:1871)
at android.bluetooth.IBluetooth$Stub$Proxy.shouldRefuseConn(IBluetooth.java:2108)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:400)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.connectTo(AndroidBluetoothPlugin.java:206)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.connect(BluetoothPlugin.java:318)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.createConnection(BluetoothPlugin.java:337)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.lambda$connect$1$BluetoothPlugin(BluetoothPlugin.java:290)
at org.briarproject.bramble.plugin.bluetooth.-$$Lambda$BluetoothPlugin$ll6XYbG2pnImYnbEJhWCfN150gw.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
```
Last lines of log:
```
08-17 23:11:37.677 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
08-17 23:11:37.694 I/ConnectionRegistryImpl: 2 contacts connected or better: org.briarproject.bramble.blue
tooth
08-17 23:11:37.699 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.700 I/BluetoothPlugin: Connecting to A8:[scrubbed]:A9
08-17 23:11:37.702 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.702 I/BluetoothPlugin: Connecting to AC:[scrubbed]:EE
08-17 23:11:37.703 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.703 I/BluetoothPlugin: Connecting to 10:[scrubbed]:00
```
Looks like a bug in the Bluetooth stack that we could work around by catching the NPE and treating it as a failed connection attempt.Android 1.2https://code.briarproject.org/briar/briar/-/issues/1900Crash when scanning QR code2021-11-04T11:03:25ZakwizgranCrash when scanning QR code* Android version: 4.2.2
* Phone model: ThL W200S
* Briar version: 1.2.9
Stacktrace:
```
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at...* Android version: 4.2.2
* Phone model: ThL W200S
* Briar version: 1.2.9
Stacktrace:
```
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
Caused by: com.google.zxing.NotFoundException
com.google.zxing.NotFoundException
```
Edited log:
```
08-20 18:28:48.357 I/CameraView: Best size 960x540
08-20 18:28:48.380 I/CameraView: Video stabilisation enabled: true
08-20 18:28:48.380 I/CameraView: Scene mode: auto
08-20 18:28:48.380 I/CameraView: Focus mode: continuous-picture
08-20 18:28:48.380 I/CameraView: Flash mode: off
08-20 18:28:48.380 I/CameraView: Preview size: 960x540
08-20 18:28:48.398 I/ConnectionChooserImpl: Got connection for org.briarproject.bramble.lan
08-20 18:28:48.398 I/ConnectionChooserImpl: Already stopped
08-20 18:28:48.408 I/KeyAgreementConnector: Starting BQP listeners
08-20 18:28:48.408 I/BluetoothPlugin: Key agreement UUID f4ef05da-bb49-32d7-91d7-025efce30d3f
08-20 18:28:48.420 I/KeyAgreementConnector: Listening via org.briarproject.bramble.bluetooth
08-20 18:28:48.425 I/ConnectionChooserImpl: Got connection for org.briarproject.bramble.bluetooth
08-20 18:28:48.425 I/ConnectionChooserImpl: Already stopped
08-20 18:28:48.452 I/RenewableWakeLock: Releasing wake lock org.briarproject.briar.android
08-20 18:28:48.454 I/BluetoothConnectionLimiterImpl: Connection closed, 0 open
08-20 18:28:48.471 I/CameraView: Surface created
08-20 18:28:48.471 I/CameraView: Surface changed: 720x1118
08-20 18:28:48.479 I/CameraView: Best size 960x540
08-20 18:28:48.482 I/KeyAgreementConnector: Listening via org.briarproject.bramble.lan
08-20 18:28:48.489 I/CameraView: Video stabilisation enabled: true
08-20 18:28:48.489 I/CameraView: Scene mode: auto
08-20 18:28:48.489 I/CameraView: Focus mode: continuous-picture
08-20 18:28:48.489 I/CameraView: Flash mode: off
08-20 18:28:48.489 I/CameraView: Preview size: 960x540
08-20 18:28:48.489 I/CameraView: Starting preview
08-20 18:28:48.786 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:48.790 I/CameraView: Stopping preview
08-20 18:28:48.790 I/KeyAgreementConnector: Stopping BQP listeners
08-20 18:28:48.792 I/ConnectionChooserImpl: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
08-20 18:28:48.792 I/ConnectionChooserImpl: java.net.SocketException: Socket closed
08-20 18:28:48.793 I/ConnectionChooserImpl: Closing 0 unused connections
08-20 18:28:48.921 I/CameraView: Releasing camera
08-20 18:28:49.236 I/BluetoothConnectionLimiterImpl: Key agreement started
08-20 18:28:49.236 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:49.651 I/CameraView: Surface destroyed
08-20 18:28:49.677 W/BriarService: Trim memory: running critically low
08-20 18:28:53.718 I/CameraView: Setting preview consumer
08-20 18:28:53.719 I/CameraView: Opening camera
08-20 18:28:53.720 I/CameraView: Using back-facing camera
08-20 18:28:53.883 I/CameraView: Screen rotation 0 degrees, camera orientation 90 degrees
08-20 18:28:53.890 I/CameraView: Scene modes: [auto, portrait, landscape, night, night-portrait, theatre, beach, snow, sunset, steadyphoto, fireworks, sports, party, candlelight, hdr]
08-20 18:28:53.890 I/CameraView: Focus modes: [auto, macro, infinity, continuous-picture, continuous-video, manual, fullscan]
08-20 18:28:53.909 I/CameraView: Video stabilisation enabled: true
08-20 18:28:53.909 I/CameraView: Scene mode: auto
08-20 18:28:53.909 I/CameraView: Focus mode: continuous-picture
08-20 18:28:53.909 I/CameraView: Flash mode: off
08-20 18:28:53.909 I/CameraView: Preview size: 640x480
08-20 18:28:53.914 I/KeyAgreementConnector: Stopping BQP listeners
08-20 18:28:53.914 I/ConnectionChooserImpl: Closing 0 unused connections
08-20 18:28:53.914 I/KeyAgreementConnector: Starting BQP listeners
08-20 18:28:53.915 I/BluetoothPlugin: Key agreement UUID 5a6c42f2-82d3-3e9a-bdaa-8c685cc96898
08-20 18:28:53.931 I/KeyAgreementConnector: Listening via org.briarproject.bramble.bluetooth
08-20 18:28:53.962 I/KeyAgreementConnector: Listening via org.briarproject.bramble.lan
08-20 18:28:53.968 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:53.975 I/CameraView: Surface created
08-20 18:28:53.975 I/CameraView: Surface changed: 720x1118
08-20 18:28:53.979 I/CameraView: Best size 960x540
08-20 18:28:53.988 I/CameraView: Video stabilisation enabled: true
08-20 18:28:53.988 I/CameraView: Scene mode: auto
08-20 18:28:53.988 I/CameraView: Focus mode: continuous-picture
08-20 18:28:53.988 I/CameraView: Flash mode: off
08-20 18:28:53.988 I/CameraView: Preview size: 960x540
08-20 18:28:53.988 I/CameraView: Starting preview
08-20 18:28:54.251 I/BluetoothConnectionLimiterImpl: Key agreement started
08-20 18:28:54.251 I/KeyAgreementFragment: Local payload is 48 bytes
08-20 18:28:55.411 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/1901TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10...2021-03-24T16:19:49ZakwizgranTimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds* Android version: 6.0.1
* Phone model: ZTE Z837VL
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
at android.view.Threa...* Android version: 6.0.1
* Phone model: ZTE Z837VL
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
at android.view.ThreadedRenderer.nDeleteProxy(Native Method)
at android.view.ThreadedRenderer.finalize(ThreadedRenderer.java:413)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:202)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
at java.lang.Thread.run(Thread.java:818)
```
Edited log:
```
06-08 00:15:24.325 I/IdentityManagerImpl: Identity loaded
06-08 00:15:24.447 I/LifecycleManagerImpl: Starting services
06-08 00:15:24.467 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
06-08 00:15:24.656 I/PluginManagerImpl: Starting simplex plugins
06-08 00:15:24.656 I/PluginManagerImpl: Starting duplex plugins
06-08 00:15:24.974 I/BriarActivity: Recreating NavDrawerActivity after signing in
06-08 00:15:25.007 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:25.843 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:15:26.023 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:26.702 I/BaseActivity: Stopping StartupActivity
06-08 00:15:36.099 I/BaseActivity: Starting SettingsActivity
06-08 00:15:37.574 I/BaseActivity: Stopping SettingsActivity
06-08 00:15:43.860 I/BaseActivity: Starting SettingsActivity
06-08 00:15:44.606 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:15:51.527 I/DevReporterImpl: Sending reports to developers
06-08 00:15:51.531 I/FeedManagerImpl: Tor started, scheduling RSS feed fetcher
06-08 00:15:52.572 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:53.068 I/BaseActivity: Stopping SettingsActivity
06-08 00:15:56.591 I/BaseActivity: Starting ConversationActivity
06-08 00:15:56.836 I/ConversationActivity: Eagerly loading text for latest message
06-08 00:15:57.155 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:16:01.661 I/DevReporterImpl: Reports sent
06-08 00:16:51.538 I/FeedManagerImpl: Updating RSS feeds...
06-08 00:16:51.587 I/FeedManagerImpl: Done updating RSS feeds
06-08 00:17:32.023 I/ConnectionRegistryImpl: Incoming connection registered: org.briarproject.bramble.tor
06-08 00:17:32.023 I/ConnectionRegistryImpl: Contact connected
```
Looks like this may be a platform bug; recording it just in case.https://code.briarproject.org/briar/briar/-/issues/1902TransactionTooLargeException when writing very long private message2021-01-13T14:35:36ZakwizgranTransactionTooLargeException when writing very long private message* Android version: 9
* Phone model: Motorola Moto Z3 Play (beckham)
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I wanted to send a text that was too long."
Stacktrace:
```
java.lang.RuntimeException: android.os.TransactionTooLarg...* Android version: 9
* Phone model: Motorola Moto Z3 Play (beckham)
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I wanted to send a text that was too long."
Stacktrace:
```
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 4025580 bytes
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:160)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
Caused by: android.os.TransactionTooLargeException: data parcel size 4025580 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:1138)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:3964)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:144)
... 7 more
android.os.TransactionTooLargeException: data parcel size 4025580 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:1138)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:3964)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:144)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6923)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
```
Edited log:
```
11-09 19:33:43.995 I/BriarActivity: Recreating NavDrawerActivity after signing in
11-09 19:33:44.001 I/BaseActivity: Starting NavDrawerActivity
11-09 19:33:44.029 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:33:44.156 I/BaseActivity: Starting NavDrawerActivity
11-09 19:33:44.843 I/BaseActivity: Stopping StartupActivity
11-09 19:33:44.988 I/AccountManagerImpl: Found database key in primary file
11-09 19:33:47.541 I/BaseActivity: Starting ConversationActivity
11-09 19:33:47.714 I/ConversationActivity: Eagerly loading text for latest message
11-09 19:33:48.270 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:33:59.358 I/BaseActivity: Stopping ConversationActivity
11-09 19:34:39.957 I/BaseActivity: Starting ConversationActivity
11-09 19:34:48.386 I/BaseActivity: Starting NavDrawerActivity
11-09 19:34:49.305 I/BaseActivity: Stopping ConversationActivity
11-09 19:34:50.934 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.020 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.116 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:51.215 I/ContactListFragment: Conversation message received, updating item
11-09 19:34:57.231 I/BaseActivity: Starting ConversationActivity
11-09 19:34:57.374 I/ConversationActivity: Eagerly loading text for latest message
11-09 19:34:57.675 I/BaseActivity: Stopping NavDrawerActivity
11-09 19:35:11.617 I/BaseActivity: Stopping ConversationActivity
11-09 19:35:39.537 I/BaseActivity: Starting ConversationActivity
11-09 19:37:15.534 I/BaseActivity: Stopping ConversationActivity
```
Looks like there was 4 MB of text in the text field, and when the activity was stopped it tried to serialise its state.https://code.briarproject.org/briar/briar/-/issues/1903IllegalArgumentException when opening forum2021-11-04T11:03:23ZakwizgranIllegalArgumentException when opening forum* Android version: 9
* Phone model: OnePlus ONE A2003 (lineage_oneplus2)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at andro...* Android version: 9
* Phone model: OnePlus ONE A2003 (lineage_oneplus2)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3756)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
at android.app.Activity.startActivityForResult(Activity.java:4587)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
at android.app.Activity.startActivityForResult(Activity.java:4545)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
at android.app.Activity.startActivity(Activity.java:4906)
at android.app.Activity.startActivity(Activity.java:4874)
at org.briarproject.briar.android.forum.ForumListAdapter.lambda$onBindViewHolder$0$ForumListAdapter(ForumListAdapter.java:77)
at org.briarproject.briar.android.forum.-$$Lambda$ForumListAdapter$kAL6Ao0lW0KDG5V1g1qgxdCGy3I.onClick(Unknown Source:4)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25906)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.os.RemoteException: Remote stack trace:
at android.view.SurfaceControl.nativeCreate(Native Method)
at android.view.SurfaceControl.<init>(SurfaceControl.java:630)
at android.view.SurfaceControl.<init>(SurfaceControl.java:60)
at android.view.SurfaceControl$Builder.build(SurfaceControl.java:386)
at com.android.server.wm.WindowContainer.onParentSet(WindowContainer.java:184)
android.os.RemoteException: Remote stack trace:
at android.view.SurfaceControl.nativeCreate(Native Method)
at android.view.SurfaceControl.<init>(SurfaceControl.java:630)
at android.view.SurfaceControl.<init>(SurfaceControl.java:60)
at android.view.SurfaceControl$Builder.build(SurfaceControl.java:386)
at com.android.server.wm.WindowContainer.onParentSet(WindowContainer.java:184)
```
Edited log:
```
05-12 17:27:04.042 I/BaseActivity: Starting ForumActivity
05-12 17:27:04.091 I/ThreadListControllerImpl: Loaded last top visible message id MessageId(BF612DC59E492610586538167B84439EF006DC1023B5657A39A8C209E7547F5D)
05-12 17:27:05.922 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
05-12 17:27:05.932 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
05-12 17:27:06.895 I/BaseActivity: Starting NavDrawerActivity
05-12 17:27:07.458 I/BaseActivity: Stopping ForumActivity
05-12 17:27:30.902 I/BasePostFragment: Adding Handler Callback
05-12 17:27:30.903 I/BaseControllerImpl: Loaded header from cache
05-12 17:27:30.903 I/BaseControllerImpl: Loaded text from cache
05-12 17:28:03.454 I/BasePostFragment: Removing Handler Callback
05-12 17:28:12.397 I/BasePostFragment: Adding Handler Callback
05-12 17:28:12.397 I/BaseControllerImpl: Loaded header from cache
05-12 17:28:12.397 I/BaseControllerImpl: Loaded text from cache
05-12 17:28:13.457 I/BasePostFragment: Removing Handler Callback
05-12 17:28:23.866 I/BaseActivity: Stopping NavDrawerActivity
05-12 17:28:51.251 I/BaseActivity: Starting NavDrawerActivity
```
The crash happens when calling startActivity() to open ForumActivity. The extras are the group ID and forum name.
Note: on current master this call has moved to ForumViewHolder.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1904IllegalStateException when backing out of blog feed2021-02-17T17:19:39ZakwizgranIllegalStateException when backing out of blog feed* Android version: 4.4.4
* Phone model: Sony Xperia X
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I've pressed back button on Blogs page."
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveI...* Android version: 4.4.4
* Phone model: Sony Xperia X
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I've pressed back button on Blogs page."
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManagerImpl.checkStateLoss(FragmentManagerImpl.java:1536)
at androidx.fragment.app.FragmentManagerImpl.enqueueAction(FragmentManagerImpl.java:1558)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:317)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:282)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:331)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:315)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:310)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onBackPressed(NavDrawerActivity.java:277)
at android.app.Activity.onKeyUp(Activity.java:2193)
at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:137)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:133)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:558)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:2814)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3845)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3819)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3711)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2043)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1737)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1728)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2020)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:613)
at dalvik.system.NativeStart.main(Native Method)
```
Last lines of log:
```
10-18 21:06:06.210 I/BaseActivity: Starting NavDrawerActivity
10-18 21:06:06.247 I/BaseActivity: Stopping NavDrawerActivity
10-18 21:06:06.416 I/BaseActivity: Starting NavDrawerActivity
10-18 21:06:06.431 I/BaseActivity: Stopping NavDrawerActivity
```
This looks similar to #1423.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1905Use ContactListViewModel in ContactChooserFragment and IntroductionActivity2021-04-26T12:51:23ZSebastianUse ContactListViewModel in ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivityAdapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1906Make app less visible.2021-01-18T22:50:15ZVladislavMake app less visible.If it is possible to have an option, or another version of briar, that would be less visible in androd launcher.
So, in case, someone get acces to your phone, he will not find there secured messenger app, and will not insult you to logi...If it is possible to have an option, or another version of briar, that would be less visible in androd launcher.
So, in case, someone get acces to your phone, he will not find there secured messenger app, and will not insult you to login.
For example: Traccar android client app '''
In addition to standard version available on the Google Play, Traccar Client for Android comes in a special hidden version. It includes modifications to make the app less visible to the phone's owner. Name is changed from "Traccar Client" to "Device Settings". Default Android settings icon is used as an app icon. After first start, the app removes itself from the launcher on older versions of Android. To open it again dial 8722227 (TRACCAR).'''https://code.briarproject.org/briar/briar/-/issues/1907Identical messages are treated as duplicates2021-01-19T12:38:48ZakwizgranIdentical messages are treated as duplicatesUnder unlikely circumstances, different devices may create identical messages. If a device receives a message that's identical to one it created, it will treat it as a redundant copy of its own message.
We could prevent this by includin...Under unlikely circumstances, different devices may create identical messages. If a device receives a message that's identical to one it created, it will treat it as a redundant copy of its own message.
We could prevent this by including salt in each message at the client layer or the sync layer.https://code.briarproject.org/briar/briar/-/issues/1908Going offline2022-02-25T15:03:53ZWuukoGoing offlineI was online but I'm offline.I was online but I'm offline.https://code.briarproject.org/briar/briar/-/issues/1909When adding contact at distance, remind that both users need to send link2023-02-23T10:17:39ZIvanaWhen adding contact at distance, remind that both users need to send linkAs a new briar user, Ivana didn't find clear how to connect to other users via internet. These are the points that came up during the walk-through..
When a phone has no access to internet, or wifi, and the briar user select to add a co...As a new briar user, Ivana didn't find clear how to connect to other users via internet. These are the points that came up during the walk-through..
When a phone has no access to internet, or wifi, and the briar user select to add a contact, via 'at a distance' option, they are not warned about absence of internet connection...
- Should there be a message to the user that they are not connected to internet, therefore cannot use the 'connect at a distance option'?
- A sender then sends the code to a contacg via SMS.
- The recipient receives the code in an SMS and retrieves it (using copy/paste of the android phone - which to this user was not immediately clear as they were not familiar with copy/paste facility of the android phones
- The recipient then briar application, add new contact page, and pastes this code into the field provided.
(To a new user who receives a code with no explanation what to do with it, it may not be clear what it is for? this presuposes some familiarity with briar app)
- Then the user taps 'continue button'. What happens next is that they get the next screen where they are given a little green 'tick' that everything was correct, and they are asked to enter a nickname for their new contact.
- However, at this point, the recipient did not send their own code back to the the person who invited them. So alhough they are given the OK by the app, this new contact (on the recipient's phone) stays in the 'connecting', or 'waiting for the contact to come online'..; and nothign else happens.
- Of course the connection cannot be established because the first user (sender) did not receive their firend's (recipient's) code at this point.
Ther was a talk on mattermost about how this could be handled in a way that guides the recipient a bit more, so that connection is actually achieved.
Suggestions made were:
- popup box before the receiving user clicks on 'Continue' - that would remind them to send their code to the person who invited them. But this wqs thought to be quite annoying to the more experienced users - hving to dismiss this popup. To get around this annoyance, they could select, maybe, a checkbox that says: 'do not show this info again'.
- another suggestion was to include a little checkbox before enabling the continue button (like the checkboxes included in webpaged to signal that the user accepts the terms and conditions). It could say something like 'I sent my own code to the person who send me their own' or whatever makes more sense; This could be easy to use for experienced users, as it woudl just be a checkbox ont he screen, but for newbies, it would be guidance to follow the propoer procedure to establish a connection.
-https://code.briarproject.org/briar/briar/-/issues/1910IllegalStateException when adding contact remotely2021-02-17T17:19:12ZakwizgranIllegalStateException when adding contact remotely* Android version: 8.0.0
* Phone model: Samsung SM-A520F (a5y17ltexx)
* Briar version: 1.2.12 (54893d2)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.briar.android.contact.add.remote.AddContactViewModel.add...* Android version: 8.0.0
* Phone model: Samsung SM-A520F (a5y17ltexx)
* Briar version: 1.2.12 (54893d2)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.briar.android.contact.add.remote.AddContactViewModel.addContact(AddContactViewModel.java:104)
at org.briarproject.briar.android.contact.add.remote.NicknameFragment.onAddButtonClicked(NicknameFragment.java:127)
at org.briarproject.briar.android.contact.add.remote.NicknameFragment.lambda$onCreateView$0$NicknameFragment(NicknameFragment.java:88)
at org.briarproject.briar.android.contact.add.remote.-$$Lambda$NicknameFragment$DP4SKMB9Kkf7jxUQrVMBWLNcvuI.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12727)
at android.view.View$PerformClick.run(View.java:26101)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
```
Edited log:
```
01-14 16:53:22.538 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
01-14 16:53:33.404 I/BaseActivity: Creating NavDrawerActivity
01-14 16:53:33.504 I/BaseActivity: Starting NavDrawerActivity
01-14 16:53:33.512 I/BaseActivity: Resuming NavDrawerActivity
01-14 16:53:36.039 I/BaseActivity: Pausing NavDrawerActivity
01-14 16:53:36.059 I/BaseActivity: Creating AddContactActivity
01-14 16:53:36.114 I/BaseActivity: Starting AddContactActivity
01-14 16:53:36.779 I/BaseActivity: Resuming AddContactActivity
01-14 16:53:37.277 I/BaseActivity: Stopping NavDrawerActivity
01-14 16:53:37.298 I/BaseActivity: Destroying NavDrawerActivity
01-14 16:53:49.623 I/BaseActivity: Pausing AddContactActivity
01-14 16:53:49.643 I/BaseActivity: Stopping AddContactActivity
01-14 16:53:49.667 I/BaseActivity: Destroying AddContactActivity
01-14 16:53:53.323 I/BaseActivity: Creating AddContactActivity
01-14 16:53:53.399 I/BaseActivity: Starting AddContactActivity
01-14 16:53:53.405 I/BaseActivity: Resuming AddContactActivity
```Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1911Emoji Input does not work on LG-P875H (Android 4.4)2021-05-31T13:41:01ZTorsten GroteEmoji Input does not work on LG-P875H (Android 4.4)Clicking the emoji icon brings up the normal keyboard. The icon stays emoji. When clicking it again, it turns into a keyboard icon, but the keyboard itself is still shown without change.
Running Android 4.1.2Clicking the emoji icon brings up the normal keyboard. The icon stays emoji. When clicking it again, it turns into a keyboard icon, but the keyboard itself is still shown without change.
Running Android 4.1.2