Explorar el Código

Merge pull request #8833 from nextcloud/fixNPE

catch AccountNotFoundException from createNextcloudClient
Tobias Kaminsky hace 3 años
padre
commit
8090cd0e13

+ 10 - 2
src/main/java/com/nextcloud/ui/ClearStatusTask.kt

@@ -25,12 +25,20 @@ package com.nextcloud.ui
 import android.accounts.Account
 import android.content.Context
 import com.owncloud.android.lib.common.OwnCloudClientFactory
+import com.owncloud.android.lib.common.accounts.AccountUtils
+import com.owncloud.android.lib.common.utils.Log_OC
 import com.owncloud.android.lib.resources.users.ClearStatusMessageRemoteOperation
 
 public class ClearStatusTask(val account: Account?, val context: Context?) : Function0<Boolean> {
     override fun invoke(): Boolean {
-        val client = OwnCloudClientFactory.createNextcloudClient(account, context)
+        return try {
+            val client = OwnCloudClientFactory.createNextcloudClient(account, context)
 
-        return ClearStatusMessageRemoteOperation().execute(client).isSuccess
+            ClearStatusMessageRemoteOperation().execute(client).isSuccess
+        } catch (e: AccountUtils.AccountNotFoundException) {
+            Log_OC.e(this, "Error clearing status", e)
+
+            false
+        }
     }
 }

+ 10 - 2
src/main/java/com/nextcloud/ui/SetPredefinedCustomStatusTask.kt

@@ -25,6 +25,8 @@ package com.nextcloud.ui
 import android.accounts.Account
 import android.content.Context
 import com.owncloud.android.lib.common.OwnCloudClientFactory
+import com.owncloud.android.lib.common.accounts.AccountUtils
+import com.owncloud.android.lib.common.utils.Log_OC
 import com.owncloud.android.lib.resources.users.SetPredefinedCustomStatusMessageRemoteOperation
 
 public class SetPredefinedCustomStatusTask(
@@ -34,8 +36,14 @@ public class SetPredefinedCustomStatusTask(
     val context: Context?
 ) : Function0<Boolean> {
     override fun invoke(): Boolean {
-        val client = OwnCloudClientFactory.createNextcloudClient(account, context)
+        return try {
+            val client = OwnCloudClientFactory.createNextcloudClient(account, context)
 
-        return SetPredefinedCustomStatusMessageRemoteOperation(messageId, clearAt).execute(client).isSuccess
+            SetPredefinedCustomStatusMessageRemoteOperation(messageId, clearAt).execute(client).isSuccess
+        } catch (e: AccountUtils.AccountNotFoundException) {
+            Log_OC.e(this, "Error setting predefined status", e)
+
+            false
+        }
     }
 }

+ 10 - 2
src/main/java/com/nextcloud/ui/SetStatusTask.kt

@@ -25,6 +25,8 @@ package com.nextcloud.ui
 import android.accounts.Account
 import android.content.Context
 import com.owncloud.android.lib.common.OwnCloudClientFactory
+import com.owncloud.android.lib.common.accounts.AccountUtils
+import com.owncloud.android.lib.common.utils.Log_OC
 import com.owncloud.android.lib.resources.users.SetStatusRemoteOperation
 import com.owncloud.android.lib.resources.users.StatusType
 
@@ -34,8 +36,14 @@ class SetStatusTask(
     val context: Context?
 ) : Function0<Boolean> {
     override fun invoke(): Boolean {
-        val client = OwnCloudClientFactory.createNextcloudClient(account, context)
+        return try {
+            val client = OwnCloudClientFactory.createNextcloudClient(account, context)
 
-        return SetStatusRemoteOperation(statusType).execute(client).isSuccess
+            SetStatusRemoteOperation(statusType).execute(client).isSuccess
+        } catch (e: AccountUtils.AccountNotFoundException) {
+            Log_OC.e(this, "Error setting status", e)
+
+            false
+        }
     }
 }

+ 10 - 2
src/main/java/com/nextcloud/ui/SetUserDefinedCustomStatusTask.kt

@@ -25,6 +25,8 @@ package com.nextcloud.ui
 import android.accounts.Account
 import android.content.Context
 import com.owncloud.android.lib.common.OwnCloudClientFactory
+import com.owncloud.android.lib.common.accounts.AccountUtils
+import com.owncloud.android.lib.common.utils.Log_OC
 import com.owncloud.android.lib.resources.users.SetUserDefinedCustomStatusMessageRemoteOperation
 
 public class SetUserDefinedCustomStatusTask(
@@ -35,8 +37,14 @@ public class SetUserDefinedCustomStatusTask(
     val context: Context?
 ) : Function0<Boolean> {
     override fun invoke(): Boolean {
-        val client = OwnCloudClientFactory.createNextcloudClient(account, context)
+        return try {
+            val client = OwnCloudClientFactory.createNextcloudClient(account, context)
 
-        return SetUserDefinedCustomStatusMessageRemoteOperation(message, icon, clearAt).execute(client).isSuccess
+            return SetUserDefinedCustomStatusMessageRemoteOperation(message, icon, clearAt).execute(client).isSuccess
+        } catch (e: AccountUtils.AccountNotFoundException) {
+            Log_OC.e(this, "Error setting user defined custom status", e)
+
+            false
+        }
     }
 }