mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 11:39:42 +01:00
handle reset status button
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
ec01a049c8
commit
9fbb3886ab
@ -10,4 +10,5 @@ import com.nextcloud.talk.models.json.status.predefined.PredefinedStatus
|
|||||||
|
|
||||||
interface PredefinedStatusClickListener {
|
interface PredefinedStatusClickListener {
|
||||||
fun onClick(predefinedStatus: PredefinedStatus)
|
fun onClick(predefinedStatus: PredefinedStatus)
|
||||||
|
fun revertStatus()
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,9 @@ class PredefinedStatusViewHolder(private val binding: PredefinedStatusBinding) :
|
|||||||
if (position == 0) {
|
if (position == 0) {
|
||||||
binding.clearAt.text = context.getString(R.string.previously_set)
|
binding.clearAt.text = context.getString(R.string.previously_set)
|
||||||
}
|
}
|
||||||
|
binding.resetStatusButton.setOnClickListener{
|
||||||
|
clickListener.revertStatus()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -286,6 +286,9 @@ public interface NcApi {
|
|||||||
@GET
|
@GET
|
||||||
Observable<UserProfileOverall> getUserData(@Header("Authorization") String authorization, @Url String url);
|
Observable<UserProfileOverall> getUserData(@Header("Authorization") String authorization, @Url String url);
|
||||||
|
|
||||||
|
@DELETE
|
||||||
|
Observable<GenericOverall> revertStatus(@Header("Authentication") String authorization, @Url String url);
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@PUT
|
@PUT
|
||||||
Observable<GenericOverall> setUserData(@Header("Authorization") String authorization,
|
Observable<GenericOverall> setUserData(@Header("Authorization") String authorization,
|
||||||
|
@ -28,6 +28,7 @@ import autodagger.AutoInjector
|
|||||||
import com.bluelinelabs.logansquare.LoganSquare
|
import com.bluelinelabs.logansquare.LoganSquare
|
||||||
import com.google.android.material.card.MaterialCardView
|
import com.google.android.material.card.MaterialCardView
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.PredefinedStatusClickListener
|
import com.nextcloud.talk.adapters.PredefinedStatusClickListener
|
||||||
@ -88,6 +89,7 @@ class SetStatusDialogFragment :
|
|||||||
|
|
||||||
private var currentUser: User? = null
|
private var currentUser: User? = null
|
||||||
private var currentStatus: Status? = null
|
private var currentStatus: Status? = null
|
||||||
|
private lateinit var backupStatus: Status
|
||||||
|
|
||||||
val predefinedStatusesList = ArrayList<PredefinedStatus>()
|
val predefinedStatusesList = ArrayList<PredefinedStatus>()
|
||||||
|
|
||||||
@ -96,6 +98,7 @@ class SetStatusDialogFragment :
|
|||||||
private lateinit var popup: EmojiPopup
|
private lateinit var popup: EmojiPopup
|
||||||
private var isBackupStatusAvailable = false
|
private var isBackupStatusAvailable = false
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var ncApi: NcApi
|
lateinit var ncApi: NcApi
|
||||||
|
|
||||||
@ -167,13 +170,13 @@ class SetStatusDialogFragment :
|
|||||||
@SuppressLint("NotifyDataSetChanged")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
override fun onNext(statusOverall: StatusOverall) {
|
override fun onNext(statusOverall: StatusOverall) {
|
||||||
if (statusOverall.ocs?.meta?.statusCode == 200) {
|
if (statusOverall.ocs?.meta?.statusCode == 200) {
|
||||||
val status = statusOverall.ocs?.data
|
backupStatus = statusOverall.ocs?.data!!
|
||||||
isBackupStatusAvailable = true
|
isBackupStatusAvailable = true
|
||||||
val backupPredefinedStatus = PredefinedStatus(
|
val backupPredefinedStatus = PredefinedStatus(
|
||||||
status?.userId!!,
|
backupStatus?.userId!!,
|
||||||
status.icon,
|
backupStatus.icon,
|
||||||
status.message!!,
|
backupStatus.message!!,
|
||||||
ClearAt(type = "period", time = status.clearAt.toString())
|
ClearAt(type = "period", time = backupStatus.clearAt.toString())
|
||||||
)
|
)
|
||||||
adapter.isBackupStatusAvailable = true
|
adapter.isBackupStatusAvailable = true
|
||||||
predefinedStatusesList.add(0, backupPredefinedStatus)
|
predefinedStatusesList.add(0, backupPredefinedStatus)
|
||||||
@ -221,7 +224,6 @@ class SetStatusDialogFragment :
|
|||||||
binding.clearStatus.setOnClickListener { clearStatus() }
|
binding.clearStatus.setOnClickListener { clearStatus() }
|
||||||
binding.setStatus.setOnClickListener { setStatusMessage() }
|
binding.setStatus.setOnClickListener { setStatusMessage() }
|
||||||
binding.emoji.setOnClickListener { openEmojiPopup() }
|
binding.emoji.setOnClickListener { openEmojiPopup() }
|
||||||
|
|
||||||
popup = EmojiPopup(
|
popup = EmojiPopup(
|
||||||
rootView = view,
|
rootView = view,
|
||||||
editText = binding.emoji,
|
editText = binding.emoji,
|
||||||
@ -282,6 +284,42 @@ class SetStatusDialogFragment :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun revertStatus(){
|
||||||
|
ncApi.revertStatus(credentials, ApiUtils.getUrlForRevertStatus(currentUser?.baseUrl!!, currentStatus?.messageId))
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(object : Observer<GenericOverall> {
|
||||||
|
|
||||||
|
override fun onSubscribe(d: Disposable) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
|
override fun onNext(genericOverall:GenericOverall) {
|
||||||
|
Log.d(TAG,"$genericOverall")
|
||||||
|
if(genericOverall.ocs?.meta?.statusCode == 200){
|
||||||
|
Snackbar.make(
|
||||||
|
binding.root,
|
||||||
|
R.string.status_reverted,
|
||||||
|
Snackbar.LENGTH_LONG
|
||||||
|
).show()
|
||||||
|
adapter.isBackupStatusAvailable = false
|
||||||
|
predefinedStatusesList.removeAt(0)
|
||||||
|
adapter.notifyDataSetChanged()
|
||||||
|
currentStatus = backupStatus
|
||||||
|
setupCurrentStatus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override fun onError(e: Throwable) {
|
||||||
|
Log.e(TAG, "Error while fetching predefined statuses", e)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onComplete() {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupGeneralStatusOptions() {
|
private fun setupGeneralStatusOptions() {
|
||||||
binding.onlineStatus.setOnClickListener { setStatus(StatusType.ONLINE) }
|
binding.onlineStatus.setOnClickListener { setStatus(StatusType.ONLINE) }
|
||||||
binding.dndStatus.setOnClickListener { setStatus(StatusType.DND) }
|
binding.dndStatus.setOnClickListener { setStatus(StatusType.DND) }
|
||||||
|
@ -487,6 +487,10 @@ object ApiUtils {
|
|||||||
return "$baseUrl$OCS_API_VERSION/apps/user_status/api/v1/statuses/_$userId"
|
return "$baseUrl$OCS_API_VERSION/apps/user_status/api/v1/statuses/_$userId"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getUrlForRevertStatus(baseUrl:String, messageId:String?):String{
|
||||||
|
return "$baseUrl$OCS_API_VERSION/apps/user_status/api/v1/user_status/revert/$messageId"
|
||||||
|
}
|
||||||
|
|
||||||
fun getUrlForSetStatusType(baseUrl: String): String {
|
fun getUrlForSetStatusType(baseUrl: String): String {
|
||||||
return getUrlForStatus(baseUrl) + "/status"
|
return getUrlForStatus(baseUrl) + "/status"
|
||||||
}
|
}
|
||||||
|
@ -829,4 +829,5 @@ How to translate with transifex:
|
|||||||
<string name="unarchive_hint">Once a conversation is unarchived, it will be shown by default again.</string>
|
<string name="unarchive_hint">Once a conversation is unarchived, it will be shown by default again.</string>
|
||||||
<string name="previously_set">Previously set</string>
|
<string name="previously_set">Previously set</string>
|
||||||
<string name="conversation_read_only_failed">Failed to set conversation Read-only</string>
|
<string name="conversation_read_only_failed">Failed to set conversation Read-only</string>
|
||||||
|
<string name="status_reverted">Status Reverted</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user