Эх сурвалжийг харах

add ability to set status type

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 3 жил өмнө
parent
commit
45cfbc7257

+ 6 - 0
app/src/main/java/com/nextcloud/talk/api/NcApi.java

@@ -472,4 +472,10 @@ public interface NcApi {
                                   @Field("statusIcon") String statusIcon,
                                   @Field("message") String message,
                                   @Field("clearAt") Long clearAt);
+
+    @FormUrlEncoded
+    @PUT
+    Observable<GenericOverall> setStatusType(@Header("Authorization") String authorization,
+                                                      @Url String url,
+                                                      @Field("statusType") String statusType);
 }

+ 14 - 13
app/src/main/java/com/nextcloud/talk/ui/dialog/SetStatusDialogFragment.kt

@@ -352,19 +352,20 @@ class SetStatusDialogFragment :
     private fun setStatus(statusType: StatusType) {
         visualizeStatus(statusType)
 
-        // asyncRunner.postQuickTask(
-        //     SetStatusTask(
-        //         statusType,
-        //         accountManager.currentOwnCloudAccount?.savedAccount,
-        //         context
-        //     ),
-        //     {
-        //         if (!it) {
-        //             clearTopStatus()
-        //         }
-        //     },
-        //     { clearTopStatus() }
-        // )
+        ncApi.setStatusType(credentials, ApiUtils.getUrlForSetStatusType(currentUser?.baseUrl), statusType.string)
+            .subscribeOn(Schedulers
+            .io())
+            .observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<GenericOverall> {
+                override fun onSubscribe(d: Disposable) {}
+                override fun onNext(statusOverall: GenericOverall) {
+                    Log.d(TAG, "statusType successfully set")
+                }
+                override fun onError(e: Throwable) {
+                    Log.e(logTag, "Failed to set statusType", e)
+                    clearTopStatus()
+                }
+                override fun onComplete() {}
+            })
     }
 
     private fun visualizeStatus(statusType: String) {

+ 4 - 0
app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java

@@ -425,6 +425,10 @@ public class ApiUtils {
         return baseUrl + ocsApiVersion + "/apps/user_status/api/v1/user_status";
     }
 
+    public static String getUrlForSetStatusType(String baseUrl) {
+        return getUrlForStatus(baseUrl) + "/status";
+    }
+
     public static String getUrlForPredefinedStatuses(String baseUrl) {
         return baseUrl + ocsApiVersion + "/apps/user_status/api/v1/predefined_statuses";
     }