briar issueshttps://code.briarproject.org/groups/briar/-/issues2020-11-15T20:10:45Zhttps://code.briarproject.org/briar/briar/-/issues/1401Make transport indicators usable by colourblind users2020-11-15T20:10:45ZakwizgranMake transport indicators usable by colourblind usersUser feedback: "For productivity purposes I use my phone in greyscale mode, it's at the same time a simulation of color blindness. I've noticed that it's hard to distinguish the internet/WiFi/Bluetooth indicators' active green from the i...User feedback: "For productivity purposes I use my phone in greyscale mode, it's at the same time a simulation of color blindness. I've noticed that it's hard to distinguish the internet/WiFi/Bluetooth indicators' active green from the inactive grey. The solution could be putting a dot/underscore to indicate WiFi is enabled."https://code.briarproject.org/briar/briar/-/issues/1400Explain that if Tor is turned off, nothing will be sent via the internet2020-11-15T20:11:59ZakwizgranExplain that if Tor is turned off, nothing will be sent via the internetUser feedback: "Settings should indicate that if Tor is turned off, messages will not be sent via the internet (there is no non-Tor P2P WAN option)."User feedback: "Settings should indicate that if Tor is turned off, messages will not be sent via the internet (there is no non-Tor P2P WAN option)."CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1399IllegalArgumentException after stopping UnlockActivity2022-06-13T14:54:58ZakwizgranIllegalArgumentException after stopping UnlockActivity* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
* User feedback: "Blank screen."
Stacktrace:
```
java.lang.IllegalArgumentException: View=DecorView@47d51c6[] not attached to window manager
...* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
* User feedback: "Blank screen."
Stacktrace:
```
java.lang.IllegalArgumentException: View=DecorView@47d51c6[] not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:485)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:380)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:101)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3728)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```
The log seems to show navigation between screens with BriarRecyclerViews leading up to the crash:
```
09-25 14:23:10.402 I/RenewableWakeLock: Acquiring wake lock LocationManagerService
09-25 14:23:10.402 I/RenewableWakeLock: Already acquired
09-25 14:23:35.872 I/Poller: Polling plugin org.briarproject.bramble.tor
09-25 14:23:56.187 I/BriarRecyclerView: Adding Handler Callback
09-25 14:23:56.238 I/BriarRecyclerView: Removing Handler Callback
09-25 14:23:56.310 I/BriarRecyclerView: Adding Handler Callback
09-25 14:23:56.554 I/BriarRecyclerView: Removing Handler Callback
09-25 14:23:58.197 I/BriarRecyclerView: Adding Handler Callback
09-25 14:24:01.792 I/BriarRecyclerView: Removing Handler Callback
09-25 14:24:03.169 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-25 14:24:03.841 I/BriarRecyclerView: Adding Handler Callback
```
Judging by the short stacktrace, this looks like a platform bug without a place where we could insert a workaround. Therefore I'm not adding this to the current milestone unless we get more reports.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1398IndexOutOfBoundsException in contact list2021-11-04T11:03:43ZakwizgranIndexOutOfBoundsException in contact list* Android version: 7.0
* Briar version: 1.1.1 (9476782)
* Phone model: AGM A8 (T88Q_14)
* User feedback: "Spontaneously crashes by itself. The impact of any third-party applications is not noticed. I cannot name any apparent reasons."
S...* Android version: 7.0
* Briar version: 1.1.1 (9476782)
* Phone model: AGM A8 (T88Q_14)
* User feedback: "Spontaneously crashes by itself. The impact of any third-party applications is not noticed. I cannot name any apparent reasons."
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{91bdea4 position=3 id=-1, old Pos=3, pLpos:-1 scrap [attachedScrap] tmpDetached no parent} android.support.v7.widget.RecyclerView{63190e8 VFED.V... .F....I. 0,0-720,1120 #7f09012d app:id/recyclerView}, adapter:org.briarproject.briar.android.contact.ContactListAdapter@cb5480b, layout:android.support.v7.widget.LinearLayoutManager@8a536e8, context:org.briarproject.briar.android.navdrawer.NavDrawerActivity@679576e
at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5610)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5792)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:3763)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3527)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1855)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1171)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6307)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6086)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/1397Quote private message when replying2022-09-30T11:22:02ZakwizgranQuote private message when replyingUser feedback: "Please add the ability to quote the messages of the interlocutor."
Related to #81.User feedback: "Please add the ability to quote the messages of the interlocutor."
Related to #81.https://code.briarproject.org/briar/briar/-/issues/1396AssertionError due to SetupActivity being created when signing out2022-05-26T15:47:12ZakwizgranAssertionError due to SetupActivity being created when signing out* Android version: 4.3
* Briar version: 1.1.1 (9476782)
* Phone Model: Galaxy Nexus (yakju)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.login.SetupActivity.onCreate(SetupActivity.java:46)
a...* Android version: 4.3
* Briar version: 1.1.1 (9476782)
* Phone Model: Galaxy Nexus (yakju)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.login.SetupActivity.onCreate(SetupActivity.java:46)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
```
Log snippet:
```
9-17 18:28:50.420 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:29:14.080 I/BriarService: Trim memory: running low
09-17 18:29:15.360 I/BriarService: Trim memory: running low
09-17 18:29:21.323 I/BriarService: Trim memory: running low
09-17 18:29:50.424 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:30:01.283 I/BriarService: Trim memory: running low
09-17 18:30:50.429 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:31:50.433 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:32:45.038 I/Poller: Polling plugin org.briarproject.bramble.tor
09-17 18:32:45.050 I/ConnectionRegistryImpl: 0 contacts connected: org.briarproject.bramble.tor
09-17 18:32:45.051 I/TorPlugin: Connecting to dif[scrubbed]
09-17 18:32:45.663 I/TorPlugin: Could not connect to dif[scrubbed]: java.io.IOException: Connection failed: Host unreachable
09-17 18:32:45.665 I/TorPlugin: NOTICE Closing stream for '[scrubbed].onion': hidden service is unavailable (try again later).
09-17 18:32:50.438 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:33:23.524 I/Poller: Polling plugin org.briarproject.bramble.lan
09-17 18:33:23.537 I/ConnectionRegistryImpl: 0 contacts connected: org.briarproject.bramble.lan
09-17 18:33:23.537 I/TcpPlugin: Connecting to /192.168.0.6
09-17 18:33:25.868 I/TcpPlugin: Could not connect to /192.168.0.6
09-17 18:33:50.443 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:34:50.448 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:35:50.453 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:36:50.458 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:37:50.462 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:38:50.466 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:38:54.012 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
09-17 18:38:54.014 I/TorPlugin: Online: true, wifi: true
09-17 18:38:54.014 I/TorPlugin: Country code: GB
09-17 18:38:54.014 I/TorPlugin: Enabling network, not using bridges
09-17 18:38:54.015 I/AndroidLanTcpPlugin: Connected to wifi
09-17 18:38:54.018 I/BriarService: Trim memory: running low
09-17 18:38:54.064 I/RenewableWakeLock: Acquiring wake lock LocationManagerService
09-17 18:38:54.064 I/RenewableWakeLock: Already acquired
09-17 18:38:56.832 I/BriarRecyclerView: Adding Handler Callback
09-17 18:39:00.314 I/BriarRecyclerView: Adding Handler Callback
09-17 18:39:00.899 I/BriarRecyclerView: Removing Handler Callback
09-17 18:39:02.579 I/BriarControllerImpl: Shutting down service
09-17 18:39:02.657 I/BriarService: Destroyed
09-17 18:39:02.659 I/LifecycleManagerImpl: Stopping services
09-17 18:39:02.660 I/PluginManagerImpl: Stopping simplex plugins
09-17 18:39:02.660 I/PluginManagerImpl: Stopping duplex plugins
09-17 18:39:02.660 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.tor
09-17 18:39:02.661 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.bluetooth
09-17 18:39:02.661 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.tor
09-17 18:39:02.661 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.bluetooth
09-17 18:39:02.661 I/TorPlugin: Stopping Tor
09-17 18:39:02.662 I/TorPlugin: java.net.SocketException: Socket closed
09-17 18:39:02.666 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.lan
09-17 18:39:02.666 I/TcpPlugin: java.net.SocketException: Socket closed
09-17 18:39:02.666 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.lan
09-17 18:39:02.666 I/PluginManagerImpl: Waiting for all the plugins to stop
09-17 18:39:02.698 I/AndroidAccountManager: No database key in preferences
09-17 18:39:02.700 I/AccountManagerImpl: Found database key in primary file
09-17 18:39:02.707 I/RenewableWakeLock: Releasing wake lock LocationManagerService
09-17 18:39:02.709 I/TorPlugin: NOTICE Closing no-longer-configured Socks listener on 127.0.0.1:59050
09-17 18:39:02.709 I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
09-17 18:39:02.709 I/TorPlugin: NOTICE Closing old Socks listener on 127.0.0.1:59050
09-17 18:39:02.720 I/TorPlugin: OR connection CLOSED $D7D905184504739AA790FFF32DF882CD5D34CF69~bauruine55
```
The crash happened when signing out after leaving Briar running in the foreground for a long time. Shutdown seems to be proceeding normally before the crash. The log shows several trim memory calls, but not at a severe enough level to hide the UI.
May be related to #1189.https://code.briarproject.org/briar/briar/-/issues/1395IllegalStateException when hiding UI due to low memory2018-10-08T12:03:31ZakwizgranIllegalStateException when hiding UI due to low memory* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
Stacktrace:
```
java.lang.RuntimeException: Unable to stop activity {org.briarproject.briar.android/org.briarproject.briar.android.logout.Hid...* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
Stacktrace:
```
java.lang.RuntimeException: Unable to stop activity {org.briarproject.briar.android/org.briarproject.briar.android.logout.HideUiActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4369)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
... 9 more
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
... 9 more
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1394Confirmation dialog isn't shown when connecting panic button app2020-11-17T16:07:07ZakwizgranConfirmation dialog isn't shown when connecting panic button appSteps to reproduce:
* Uninstall and reinstall Briar and Ripple so they're definitely not connected
* Start Briar, create an account, go to "Settings > Panic button setup > Panic Button App"
* Choose Ripple as the panic button app
* Expe...Steps to reproduce:
* Uninstall and reinstall Briar and Ripple so they're definitely not connected
* Start Briar, create an account, go to "Settings > Panic button setup > Panic Button App"
* Choose Ripple as the panic button app
* Expected: A dialog is shown to confirm that Ripple is allowed to trigger destructive actions
* Action: No dialog is shown, Ripple can trigger destructive actionshttps://code.briarproject.org/briar/briar/-/issues/1393Error page is shown when trying to install Ripple from Google Play2019-06-12T10:45:27ZakwizgranError page is shown when trying to install Ripple from Google PlayWhen no panic button app is installed, touching the "Panic Button App" preference automatically opens a market:// link to install Ripple. If the device has Google Play but not F-Droid, a Play Store error page is shown. This may be confus...When no panic button app is installed, touching the "Panic Button App" preference automatically opens a market:// link to install Ripple. If the device has Google Play but not F-Droid, a Play Store error page is shown. This may be confusing for the user, as we haven't given any indication that we're about to search for an app on Google Play.
If the device has both Google Play and F-Droid, an app chooser is shown. Choosing Google Play leads to the error page.
![device-2018-09-28-110048](/uploads/5eb85f3d601c31b661f9071d70638c20/device-2018-09-28-110048.png)Android 1.1https://code.briarproject.org/briar/briar/-/issues/1392List of panic button apps isn't updated after installing app2019-02-21T10:34:00ZakwizgranList of panic button apps isn't updated after installing appSteps to reproduce:
* Uninstall Ripple
* Start Briar
* Go to "Settings > Panic button setup > Panic Button App"
* A dialog opens showing "None" as the only choice
* An app chooser opens to install Ripple (if you only have one market app...Steps to reproduce:
* Uninstall Ripple
* Start Briar
* Go to "Settings > Panic button setup > Panic Button App"
* A dialog opens showing "None" as the only choice
* An app chooser opens to install Ripple (if you only have one market app, perhaps it opens automatically?)
* Install Ripple from F-Droid
* Press back to return to Briar
* Expected:
* The dialog has closed
* Pressing "Panic Button App" again shows a list that includes Ripple
* Pressing "Panic Button App" again doesn't open the app chooser to install Ripple again
* Actual:
* The dialog is still open showing "None" as the only choice
* Pressing "Panic Button App" again shows a list with "None" as the only choice
* Pressing "Panic Button App" again opens the app chooser to install Ripple againAndroid 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1391Layout issues with author view on Android 4.0.42018-09-28T09:48:57ZakwizgranLayout issues with author view on Android 4.0.4There seem to be some problems with the author layout on the Sony Xperia Tipo (Android 4.0.4):
![device-2018-09-26-173540](/uploads/08c9d86a38c69feacd229d1428c43f5f/device-2018-09-26-173540.png)
![device-2018-09-26-175901](/uploads/cd4...There seem to be some problems with the author layout on the Sony Xperia Tipo (Android 4.0.4):
![device-2018-09-26-173540](/uploads/08c9d86a38c69feacd229d1428c43f5f/device-2018-09-26-173540.png)
![device-2018-09-26-175901](/uploads/cd43908e618a05c10cf1725a58508f8e/device-2018-09-26-175901.png)Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1390PasswordActivity is shown after backing out of crash report, can't back out o...2019-06-18T16:51:50ZakwizgranPasswordActivity is shown after backing out of crash report, can't back out of PasswordActivitySteps to reproduce:
* Sign into Briar (debug build)
* Go to Settings > Crash
* Choose "Send Report"
* Back out of the report creation screen
* Expected behaviour: Return to home screen
* Actual behaviour: PasswordActivity is shown
* Pre...Steps to reproduce:
* Sign into Briar (debug build)
* Go to Settings > Crash
* Choose "Send Report"
* Back out of the report creation screen
* Expected behaviour: Return to home screen
* Actual behaviour: PasswordActivity is shown
* Press back button
* Expected behaviour: Return to home screen
* Actual behaviour: PasswordActivity remains visible (or maybe another instance immediately appears?)Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1389Shadows are missing below system message bubbles2018-11-15T11:38:59ZakwizgranShadows are missing below system message bubblesThe shadows below system message bubbles are rendered wrongly on the Moto G 4G (Android 5.1):
![device-2018-09-26-173458](/uploads/b049831c8e5ff944dbf6b68b89381e63/device-2018-09-26-173458.png)The shadows below system message bubbles are rendered wrongly on the Moto G 4G (Android 5.1):
![device-2018-09-26-173458](/uploads/b049831c8e5ff944dbf6b68b89381e63/device-2018-09-26-173458.png)Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1388Discussion: Only poll contacts if necessary2021-12-13T14:13:45ZBen WieDiscussion: Only poll contacts if necessaryFor some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.For some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.https://code.briarproject.org/briar/briar/-/issues/1387Keep persistent log messages2020-11-17T15:47:48ZTorsten GroteKeep persistent log messagesIt might be useful to have logs that persist across restarts (e.g. to find out why users get signed out). But that would require one of the following solutions:
* write logs to an encrypted file that we can read back after restarting...It might be useful to have logs that persist across restarts (e.g. to find out why users get signed out). But that would require one of the following solutions:
* write logs to an encrypted file that we can read back after restarting
* write logs to the system log, use the `READ_LOGS` permission to read them back after restarting - this results in a scary permission warning at installation time on API < 23
* write logs to the system log, read them back without the `READ_LOGS` permission - this only works on API >= 16, but that's nearly all our users, so we could just live without this feature on API 15. the bigger issue with using the system log is that the logs are stored in plaintexthttps://code.briarproject.org/briar/briar/-/issues/1386App locks after signing out2018-09-20T11:06:10ZTorsten GroteApp locks after signing outThe app inactivity timeout even kicks in after signing out.
Steps to reproduce:
* activate app lock in settings
* set timeout to 1 minute
* sign out
* wait for one minute
* observe the new locked notification that you can only remove by...The app inactivity timeout even kicks in after signing out.
Steps to reproduce:
* activate app lock in settings
* set timeout to 1 minute
* sign out
* wait for one minute
* observe the new locked notification that you can only remove by signing in againAndroid 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1385Link in error message for adding contacts doesn't cover entire word2019-02-21T10:34:00ZakwizgranLink in error message for adding contacts doesn't cover entire wordLooks like there's an off-by-one error in the code that turns "send feedback" into a link:
![device-2018-09-19-165301](/uploads/179050fb18775c1832076056acf8cf93/device-2018-09-19-165301.png)Looks like there's an off-by-one error in the code that turns "send feedback" into a link:
![device-2018-09-19-165301](/uploads/179050fb18775c1832076056acf8cf93/device-2018-09-19-165301.png)Android 1.1https://code.briarproject.org/briar/briar/-/issues/1384Off-by-one error in expiry calculation2018-12-19T12:24:43ZakwizgranOff-by-one error in expiry calculationWhen there are no messages to offer or send, DuplexOutgoingSession waits until the time returned by `DatabaseComponent#getNextSendTime()` before checking again. That method returns the next expiry time, and the message won't become senda...When there are no messages to offer or send, DuplexOutgoingSession waits until the time returned by `DatabaseComponent#getNextSendTime()` before checking again. That method returns the next expiry time, and the message won't become sendable until that time has passed. If DuplexOutgoingSession's check takes less than a millisecond, it may find that the expiry time has been reached but not passed, so the message isn't sendable yet. In that case the message won't be sent until the next keepalive is sent, which could take up to a minute.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1383Installation fails on Android v5.0.22020-02-05T11:57:13ZZoomInstallation fails on Android v5.0.2Installation fails on rooted Android v5.0.2, kernel 3.10.54 with "unknown error".
Briar versions tested: 1.1, 1.0.
Tried both the F-Droid and briar.apk.
Some lines from Logcat output which may be relevant:
```
D/PackageManager( 665): ...Installation fails on rooted Android v5.0.2, kernel 3.10.54 with "unknown error".
Briar versions tested: 1.1, 1.0.
Tried both the F-Droid and briar.apk.
Some lines from Logcat output which may be relevant:
```
D/PackageManager( 665): Renaming /data/app/vmdl103775440.tmp to /data/app/org.briarproject.briar.android-1
I/PackageManager( 665): Start installation for package: null
D/PackageManager( 665): installNewPackageLI: Package{3a782ce1 org.briarproject.briar.android}
D/installd( 161): do_install : org.briarproject.briar.android 10089 10089 default
D/PackageParser( 665): isLcaROM() return false
I/PackageManager( 665): Linking native library dir for /data/app/org.briarproject.briar.android-1
I/PackageManager( 665): Perform pre-dex opt for package: org.briarproject.briar.android
W/mtkdebug( 665): performDexOptLI path : /data/app/org.briarproject.briar.android-1/base.apk
I/art ( 665): DexFile_isDexOptNeeded failed to open oat file '/data/dalvik-cache/arm/data@app@org.briarproject.briar.android-1@base.apk@classes.dex' for file location '/data/app/org.briarproject.briar.android-1/base.apk': Failed to open oat filename for reading: No such file or directory
I/art ( 665): DexFile_isDexOptNeeded failed to open oat file '/data/app/org.briarproject.briar.android-1/arm/base.odex' for file location '/data/app/org.briarproject.briar.android-1/base.apk': Failed to open oat filename for reading: No such file or directory
I/PackageManager( 665): Running dexopt on: /data/app/org.briarproject.briar.android-1/base.apk pkg=org.briarproject.briar.android isa=arm vmSafeMode=false
D/installd( 161): do_dexopt : /data/app/org.briarproject.briar.android-1/base.apk 50089 1 org.briarproject.briar.android arm 0
I/BufferQueueProducer( 146): [com.android.packageinstaller/com.android.packageinstaller.InstallAppProgress](this:0xb87204c8,id:581,api:1,p:18537,c:146) queueBuffer: fps=59.11 dur=1015.09 max=19.31 min=13.48
I/dex2oat (18566): /system/bin/dex2oat --zip-fd=11 --zip-location=/data/app/org.briarproject.briar.android-1/base.apk --oat-fd=12 --oat-location=/data/dalvik-cache/arm/data@app@org.briarproject.briar.android-1@base.apk@classes.dex --instruction-set=arm --instruction-set-features=div --runtime-arg -Xms64m --runtime-arg -Xmx512m
E/installd( 161): DexInv: --- END '/data/app/org.briarproject.briar.android-1/base.apk' --- status=0x000b, process failed
I/PackageManager( 665): Dexopt done on: org.briarproject.briar.android
D/installd( 161): do_remove : org.briarproject.briar.android 0
D/installd( 161): uninstall : org.briarproject.briar.android
W/PackageManager( 665): Package couldn't be installed in /data/app/org.briarproject.briar.android-1
I/PackageManager( 665): Installation done for package: null
```https://code.briarproject.org/briar/briar/-/issues/1382Update links in F-Droid repo2018-11-16T13:04:07ZakwizgranUpdate links in F-Droid repoThe source code and issue tracker links in the F-Droid repo still point to the old project path, akwizgran/briar.The source code and issue tracker links in the F-Droid repo still point to the old project path, akwizgran/briar.Android 1.1Torsten GroteTorsten Grote