show maintenance warning in conv list on top

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2025-03-06 12:12:59 +01:00 committed by sowjanyakch
parent 5650a14781
commit af0294bb00
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220
3 changed files with 19 additions and 39 deletions

View File

@ -1045,6 +1045,10 @@ class ConversationsListActivity :
binding.chatListConnectionLost.visibility = if (show) View.VISIBLE else View.GONE binding.chatListConnectionLost.visibility = if (show) View.VISIBLE else View.GONE
} }
private fun showMaintenanceModeWarning(show: Boolean) {
binding.chatListMaintenanceWarning.visibility = if (show) View.VISIBLE else View.GONE
}
private fun handleUI(show: Boolean) { private fun handleUI(show: Boolean) {
binding.floatingActionButton.isEnabled = show binding.floatingActionButton.isEnabled = show
binding.searchText.isEnabled = show binding.searchText.isEnabled = show
@ -1133,6 +1137,8 @@ class ConversationsListActivity :
private fun prepareViews() { private fun prepareViews() {
hideLogoForBrandedClients() hideLogoForBrandedClients()
showMaintenanceModeWarning(false)
layoutManager = SmoothScrollLinearLayoutManager(this) layoutManager = SmoothScrollLinearLayoutManager(this)
binding.recyclerView.layoutManager = layoutManager binding.recyclerView.layoutManager = layoutManager
binding.recyclerView.setHasFixedSize(true) binding.recyclerView.setHasFixedSize(true)
@ -1156,6 +1162,7 @@ class ConversationsListActivity :
false false
} }
binding.swipeRefreshLayoutView.setOnRefreshListener { binding.swipeRefreshLayoutView.setOnRefreshListener {
showMaintenanceModeWarning(false)
fetchRooms() fetchRooms()
fetchPendingInvitations() fetchPendingInvitations()
} }
@ -1931,44 +1938,7 @@ class ConversationsListActivity :
private fun showServiceUnavailableDialog(httpException: HttpException) { private fun showServiceUnavailableDialog(httpException: HttpException) {
if (httpException.response()?.headers()?.get(MAINTENANCE_MODE_HEADER_KEY) == "1") { if (httpException.response()?.headers()?.get(MAINTENANCE_MODE_HEADER_KEY) == "1") {
binding.floatingActionButton.let { showMaintenanceModeWarning(true)
val dialogBuilder = MaterialAlertDialogBuilder(it.context)
.setIcon(
viewThemeUtils.dialog.colorMaterialAlertDialogIcon(
context,
R.drawable.ic_info_white_24dp
)
)
.setTitle(R.string.nc_dialog_maintenance_mode)
.setMessage(R.string.nc_dialog_maintenance_mode_description)
.setCancelable(false)
.setNegativeButton(R.string.nc_settings_remove_account) { _, _ ->
deleteUserAndRestartApp()
}
if (resources!!.getBoolean(R.bool.multiaccount_support) && userManager.users.blockingGet().size > 1) {
dialogBuilder.setPositiveButton(R.string.nc_switch_account) { _, _ ->
val newFragment: DialogFragment = ChooseAccountDialogFragment.newInstance()
newFragment.show(supportFragmentManager, ChooseAccountDialogFragment.TAG)
}
}
if (resources!!.getBoolean(R.bool.multiaccount_support)) {
dialogBuilder.setNeutralButton(R.string.nc_account_chooser_add_account) { _, _ ->
val intent = Intent(this, ServerSelectionActivity::class.java)
intent.putExtra(ADD_ADDITIONAL_ACCOUNT, true)
startActivity(intent)
}
}
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)
)
}
} else { } else {
showErrorDialog() showErrorDialog()
} }

View File

@ -37,6 +37,17 @@
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" /> tools:visibility="visible" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/chat_list_maintenance_warning"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/hwSecurityRed"
android:gravity="center"
android:text="@string/nc_dialog_maintenance_mode_description"
android:textColor="@color/white"
android:visibility="gone"
tools:visibility="visible" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/search_toolbar" android:id="@+id/search_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -652,7 +652,6 @@ How to translate with transifex:
<string name="nc_dialog_outdated_client_description">The app is too old and no longer supported by this server. Please update.</string> <string name="nc_dialog_outdated_client_description">The app is too old and no longer supported by this server. Please update.</string>
<string name="nc_dialog_outdated_client_option_update">Update</string> <string name="nc_dialog_outdated_client_option_update">Update</string>
<string name="nc_switch_account">Switch account</string> <string name="nc_switch_account">Switch account</string>
<string name="nc_dialog_maintenance_mode">Maintenance mode</string>
<string name="nc_dialog_maintenance_mode_description">Server is currently in maintenance mode.</string> <string name="nc_dialog_maintenance_mode_description">Server is currently in maintenance mode.</string>
<!-- Take photo --> <!-- Take photo -->