For now, instead to measure height mixed from xml and compose, assume a fixed height for the xml views (callInfosLinearLayout and callControls) to limit the grid height.
They is not a nice solution and should be replaced once everything is migrated to compose.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
SSLSocketFactoryCompat relies on SSLContext.getInstance("TLS"), which is
called from componentApplication.inject(this) in NextcloudTalkApplication
.onCreate() - before Conscrypt is set as the provider.
This caused issues on Android 7.0 devices when connecting to Nextcloud's
push notification server. The result was a handshake error, because
Android 7.0's native implementation only supports TLSv1.2 and the
secp256r1 group, while the server supports only secp384r1.
Setting Conscrypt as a provider earlier ensures that the native
implementation is not used and the connection completes successfully.
Call stack:
<init>:44, SSLSocketFactoryCompat (com.nextcloud.talk.utils.ssl)
provideSslSocketFactoryCompat:156, RestModule (com.nextcloud.talk.dagger.modules)
provideSslSocketFactoryCompat:56, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules)
get:46, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules)
get:14, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules)
getSynchronized:54, DoubleCheck (dagger.internal)
get:45, DoubleCheck (dagger.internal)
get:69, RestModule_ProvideHttpClientFactory (com.nextcloud.talk.dagger.modules)
get:19, RestModule_ProvideHttpClientFactory (com.nextcloud.talk.dagger.modules)
getSynchronized:54, DoubleCheck (dagger.internal)
get:45, DoubleCheck (dagger.internal)
injectNextcloudTalkApplication:1393, DaggerNextcloudTalkApplicationComponent$NextcloudTalkApplicationComponentImpl (com.nextcloud.talk.application)
inject:867, DaggerNextcloudTalkApplicationComponent$NextcloudTalkApplicationComponentImpl (com.nextcloud.talk.application)
onCreate:145, NextcloudTalkApplication (com.nextcloud.talk.application)
Signed-off-by: Viktor Balogh <viktor.balogh45@gmail.com>
- Updated api with getContextForChatMessages
- Added ContextChatCompose for viewing the context of messages
- Added ComposeChatAdapter, a reimplementation of chat adapter
- Helper functions
- Added new date header
- Added a better Shimmer
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
There were crash reports for:
Exception java.lang.RuntimeException:
...
Caused by com.nextcloud.talk.utils.NoSupportedApiException:
at com.nextcloud.talk.utils.ApiUtils.getConversationApiVersion (ApiUtils.kt:134)
at com.nextcloud.talk.contacts.ContactsRepositoryImpl.<init> (ContactsRepositoryImpl.kt:28)
This could happen because of missing capabilities for user and should be fixed.
As a fallback, API v4 is guessed
Adding this as comment in the code as the root cause must be found..
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
For v21.0.0, the following crash was reported:
Exception java.lang.NullPointerException: null cannot be cast to non-null type com.nextcloud.talk.chat.data.model.ChatMessage
at com.nextcloud.talk.chat.ChatActivity.onLoadMore (ChatActivity.kt:3107)
at com.stfalcon.chatkit.messages.MessagesListAdapter.onLoadMore (MessagesListAdapter.java:148)
at com.stfalcon.chatkit.messages.RecyclerScrollMoreListener.onScrolled (RecyclerScrollMoreListener.java:82)
at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled (RecyclerView.java:5688)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3 (RecyclerView.java:4741)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout (RecyclerView.java:4367)
at androidx.recyclerview.widget.RecyclerView.onLayout (RecyclerView.java:4919)
This is now improved:
- lastOrNull prevents exceptions if no matching item is found
- as? is a safe cast that returns null if the cast fails
Whole expression becomes null-safe, and id will be null if anything along the way doesn't match. Only when not null, onLoadMore continues.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
to be discussed: does it make sense to show a dialog instead? At least when it's created via 1:1 conversation
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
snackbars disaapear with the switch to a different screen. Toasts survive the switch so they are visible during the activities switch
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
switch video capture for calls between 4:3 and 16:9 ratio depending on portrait/landscape mode
Also: simplify placement of self video view (it was buggy) as well as applying the ratio there as well
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The new photo picker does not need files permission. For other features, the permissions are already checked elsewhere
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
for ConversationInfoActivity, the old ContactsActivity was still used to add participants. This is now replaced by the ContactsActivityCompose, so ContactsActivity is now deleted
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
SetStatusBarColor() was called outside of the MaterialTheme() block
Also, "surface" has to be used to get the 'light primary color'
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>