ClassCastException when opening conversation with contact who supports images
- Android version: 9
- Phone model: Xiaomi Mi A1
- Briar version: 1.1.7 (37d0b61d)
Stacktrace:
java.lang.ClassCastException: org.briarproject.briar.android.view.TextSendController cannot be cast to org.briarproject.briar.android.view.TextAttachmentController
at org.briarproject.briar.android.conversation.ConversationActivity.showImageOnboarding(ConversationActivity.java:730)
at org.briarproject.briar.android.conversation.ConversationActivity.lambda$tKsX2hu-pmpHBYdC5ev_sWoOCXk(Unknown Source:0)
at org.briarproject.briar.android.conversation.-$$Lambda$ConversationActivity$tKsX2hu-pmpHBYdC5ev_sWoOCXk.run(Unknown Source:2)
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:6762)
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:858)
The crash is caused by failing to check the image attachments feature flag before calling showImageOnboarding(). This is fixed on master but will happen for Briar 1.1.7 (and possibly some earlier releases) when contacts upgrade to a version that supports image attachments, including 1.2 and 1.3 alpha releases.
Fortunately I've found a sneaky workaround: we bump the client minor version to 2. Briar 1.1.7 only considers that a contact supports image attachments if the minor version is exactly 1 (this is also fixed on master, but fortunately didn't make it into the 1.1.7 release).