mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
Added network checks and display error dialog
Signed-off-by: Bhavesh Kumawat <kumawatbhavesh1000@gmail.com> Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
6709fefd09
commit
bde1c3a48d
@ -21,6 +21,8 @@ import android.content.Intent
|
|||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
|
import android.net.ConnectivityManager
|
||||||
|
import android.net.NetworkCapabilities
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@ -679,6 +681,9 @@ class ConversationsListActivity :
|
|||||||
fun fetchRooms() {
|
fun fetchRooms() {
|
||||||
val includeStatus = isUserStatusAvailable(userManager.currentUser.blockingGet())
|
val includeStatus = isUserStatusAvailable(userManager.currentUser.blockingGet())
|
||||||
|
|
||||||
|
// checks internet connection before fetching rooms
|
||||||
|
if (isNetworkAvailable(context)) {
|
||||||
|
Log.d(TAG, "Internet connection available")
|
||||||
dispose(null)
|
dispose(null)
|
||||||
isRefreshing = true
|
isRefreshing = true
|
||||||
conversationItems = ArrayList()
|
conversationItems = ArrayList()
|
||||||
@ -735,6 +740,10 @@ class ConversationsListActivity :
|
|||||||
binding?.swipeRefreshLayoutView?.isRefreshing = false
|
binding?.swipeRefreshLayoutView?.isRefreshing = false
|
||||||
isRefreshing = false
|
isRefreshing = false
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Log.d(TAG, "No internet connection detected")
|
||||||
|
showNetworkErrorDialog()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fetchPendingInvitations() {
|
private fun fetchPendingInvitations() {
|
||||||
@ -840,6 +849,42 @@ class ConversationsListActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showNetworkErrorDialog() {
|
||||||
|
binding.floatingActionButton.let {
|
||||||
|
val dialogBuilder = MaterialAlertDialogBuilder(it.context)
|
||||||
|
.setIcon(
|
||||||
|
viewThemeUtils.dialog.colorMaterialAlertDialogIcon(
|
||||||
|
context,
|
||||||
|
R.drawable.ic_baseline_error_outline_24dp
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.setTitle(R.string.nc_check_your_internet)
|
||||||
|
.setCancelable(false)
|
||||||
|
.setNegativeButton(R.string.close, null)
|
||||||
|
.setNeutralButton(R.string.nc_refresh) { _, _ ->
|
||||||
|
fetchRooms()
|
||||||
|
fetchPendingInvitations()
|
||||||
|
}
|
||||||
|
|
||||||
|
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(it.context, dialogBuilder)
|
||||||
|
val dialog = dialogBuilder.show()
|
||||||
|
viewThemeUtils.platform.colorTextButtons(
|
||||||
|
dialog.getButton(AlertDialog.BUTTON_POSITIVE),
|
||||||
|
dialog.getButton(AlertDialog.BUTTON_NEGATIVE),
|
||||||
|
dialog.getButton(AlertDialog.BUTTON_NEUTRAL)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("ReturnCount")
|
||||||
|
private fun isNetworkAvailable(context: Context): Boolean {
|
||||||
|
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||||
|
val network = connectivityManager.activeNetwork ?: return false
|
||||||
|
val capabilities = connectivityManager.getNetworkCapabilities(network) ?: return false
|
||||||
|
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
|
||||||
|
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
|
||||||
|
}
|
||||||
|
|
||||||
private fun sortConversations(conversationItems: MutableList<AbstractFlexibleItem<*>>) {
|
private fun sortConversations(conversationItems: MutableList<AbstractFlexibleItem<*>>) {
|
||||||
conversationItems.sortWith { o1: AbstractFlexibleItem<*>, o2: AbstractFlexibleItem<*> ->
|
conversationItems.sortWith { o1: AbstractFlexibleItem<*>, o2: AbstractFlexibleItem<*> ->
|
||||||
val conversation1 = (o1 as ConversationItem).model
|
val conversation1 = (o1 as ConversationItem).model
|
||||||
|
@ -380,6 +380,8 @@ How to translate with transifex:
|
|||||||
<string name="openConversations">Open conversations</string>
|
<string name="openConversations">Open conversations</string>
|
||||||
<string name="error_loading_chats">There was a problem loading your chats</string>
|
<string name="error_loading_chats">There was a problem loading your chats</string>
|
||||||
<string name="close">Close</string>
|
<string name="close">Close</string>
|
||||||
|
<string name="nc_refresh">Refresh</string>
|
||||||
|
<string name="nc_check_your_internet">Please check your internet connection</string>
|
||||||
|
|
||||||
<!-- Chat -->
|
<!-- Chat -->
|
||||||
<string name="nc_hint_enter_a_message">Enter a message …</string>
|
<string name="nc_hint_enter_a_message">Enter a message …</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user