add backup message in the predefined status list

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-11-04 23:20:50 +01:00
parent 27aafda59f
commit d08b4f51b8
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220
5 changed files with 52 additions and 57 deletions

View File

@ -24,7 +24,7 @@ class PredefinedStatusViewHolder(private val binding: PredefinedStatusBinding) :
binding.icon.text = status.icon binding.icon.text = status.icon
binding.name.text = status.message binding.name.text = status.message
binding.resetStatusButton.visibility = if(position == 0) View.VISIBLE else View.GONE binding.resetStatusButton.visibility = if (position == 0) View.VISIBLE else View.GONE
if (status.clearAt == null) { if (status.clearAt == null) {
binding.clearAt.text = context.getString(R.string.dontClear) binding.clearAt.text = context.getString(R.string.dontClear)

View File

@ -25,5 +25,5 @@ data class UserStatusCapability(
var supportsEmoji: Boolean var supportsEmoji: Boolean
) : Parcelable { ) : Parcelable {
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
constructor() : this(false, false,false) constructor() : this(false, false, false)
} }

View File

@ -18,7 +18,7 @@ data class PredefinedStatus(
@JsonField(name = ["id"]) @JsonField(name = ["id"])
var id: String, var id: String,
@JsonField(name = ["icon"]) @JsonField(name = ["icon"])
var icon: String, var icon: String?,
@JsonField(name = ["message"]) @JsonField(name = ["message"])
var message: String, var message: String,
@JsonField(name = ["clearAt"]) @JsonField(name = ["clearAt"])

View File

@ -115,26 +115,26 @@ class SetStatusDialogFragment :
currentStatus = it.getParcelable(ARG_CURRENT_STATUS_PARAM) currentStatus = it.getParcelable(ARG_CURRENT_STATUS_PARAM)
credentials = ApiUtils.getCredentials(currentUser?.username, currentUser?.token)!! credentials = ApiUtils.getCredentials(currentUser?.username, currentUser?.token)!!
checkBackupStatus()
fetchPredefinedStatuses()
}
}
private fun fetchPredefinedStatuses() {
ncApi.getPredefinedStatuses(credentials, ApiUtils.getUrlForPredefinedStatuses(currentUser?.baseUrl!!)) ncApi.getPredefinedStatuses(credentials, ApiUtils.getUrlForPredefinedStatuses(currentUser?.baseUrl!!))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<ResponseBody> { .subscribe(object : Observer<ResponseBody> {
override fun onSubscribe(d: Disposable) {}
override fun onSubscribe(d: Disposable) {
// unused atm
}
override fun onNext(responseBody: ResponseBody) { override fun onNext(responseBody: ResponseBody) {
val predefinedStatusOverall: PredefinedStatusOverall = LoganSquare.parse( val predefinedStatusOverall: PredefinedStatusOverall = LoganSquare.parse(
responseBody responseBody.string(),
.string(),
PredefinedStatusOverall::class.java PredefinedStatusOverall::class.java
) )
predefinedStatusOverall.ocs?.data?.let { it1 -> predefinedStatusesList.addAll(it1) } predefinedStatusOverall.ocs?.data?.let { predefinedStatusesList.addAll(it) }
if (currentStatus?.messageIsPredefined == true && if (currentStatus?.messageIsPredefined == true && currentStatus?.messageId?.isNotEmpty() == true) {
currentStatus?.messageId?.isNotEmpty() == true
) {
val messageId = currentStatus!!.messageId val messageId = currentStatus!!.messageId
selectedPredefinedStatus = predefinedStatusesList.firstOrNull { ps -> messageId == ps.id } selectedPredefinedStatus = predefinedStatusesList.firstOrNull { ps -> messageId == ps.id }
} }
@ -146,42 +146,41 @@ class SetStatusDialogFragment :
Log.e(TAG, "Error while fetching predefined statuses", e) Log.e(TAG, "Error while fetching predefined statuses", e)
} }
override fun onComplete() { override fun onComplete() {}
// unused atm
}
}) })
} }
private fun checkBackupStatus() {
ncApi.backupStatus(credentials, ApiUtils.getUrlForBackupStatus(currentUser?.baseUrl!!, currentUser?.userId!!))
}
fun backupStatus(){
ncApi.backupStatus(credentials, ApiUtils.getUrlForBackupStatus(currentUser?.baseUrl!!,currentUser?.userId!!))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<StatusOverall> { .subscribe(object : Observer<StatusOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
} }
override fun onNext(statusOverall:StatusOverall) { override fun onNext(statusOverall: StatusOverall) {
val status = statusOverall if (statusOverall.ocs?.meta?.statusCode == 200) {
Log.d("TAG","$status") val status = statusOverall.ocs?.data
if (status?.messageIsPredefined == false) {
val backupPredefinedStatus = PredefinedStatus(
status?.userId!!,
status.icon,
status.message!!,
ClearAt(type = "period", time = status.clearAt.toString())
)
predefinedStatusesList.add(0, backupPredefinedStatus)
}
}
} }
override fun onError(e: Throwable) { override fun onError(e: Throwable) {
Log.e(TAG, "Error while fetching predefined statuses", e) Log.e(TAG, "Error while fetching predefined statuses", e)
} }
override fun onComplete() { override fun onComplete() {
// unused atm
} }
}) })
} }
@SuppressLint("InflateParams") @SuppressLint("InflateParams")
@ -434,10 +433,6 @@ class SetStatusDialogFragment :
}) })
} }
private fun getBackupStatus(){
}
private fun visualizeStatus(statusType: String) { private fun visualizeStatus(statusType: String) {
StatusType.values().firstOrNull { it.name == statusType.uppercase(Locale.ROOT) }?.let { visualizeStatus(it) } StatusType.values().firstOrNull { it.name == statusType.uppercase(Locale.ROOT) }?.let { visualizeStatus(it) }
} }

View File

@ -483,8 +483,8 @@ object ApiUtils {
} }
@JvmStatic @JvmStatic
fun getUrlForBackupStatus(baseUrl:String, userId:String):String{ fun getUrlForBackupStatus(baseUrl: String, userId: String): String {
return "$baseUrl$OCS_API_VERSION/apps/user_status/api/v1/user_status/_$userId" return "$baseUrl$OCS_API_VERSION/apps/user_status/api/v1/statuses/_$userId"
} }
fun getUrlForSetStatusType(baseUrl: String): String { fun getUrlForSetStatusType(baseUrl: String): String {