瀏覽代碼

Merge pull request #10384 from olebittner/master

Check account in onResume fixing #7887
Álvaro Brey 2 年之前
父節點
當前提交
5386aa9229

+ 7 - 0
app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt

@@ -133,4 +133,11 @@ class SessionMixin constructor(
         val account = accountManager.currentAccount
         setAccount(account)
     }
+
+    override fun onResume() {
+        super.onResume()
+        if (currentAccount == null) {
+            swapToDefaultAccount()
+        }
+    }
 }

+ 3 - 1
app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java

@@ -89,7 +89,9 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
     @Override
     protected void onResume() {
         super.onResume();
-        mixinRegistry.onResume();
+        if (enableAccountHandling) {
+            mixinRegistry.onResume();
+        }
         paused = false;
 
         if (themeChangePending) {

+ 19 - 4
app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt

@@ -23,10 +23,12 @@ package com.nextcloud.client.mixins
 import android.app.Activity
 import android.content.ContentResolver
 import com.nextcloud.client.account.UserAccountManager
+import junit.framework.Assert.assertNull
 import org.junit.Before
 import org.junit.Test
 import org.mockito.Mock
 import org.mockito.Mockito.same
+import org.mockito.Mockito.spy
 import org.mockito.MockitoAnnotations
 import org.mockito.kotlin.verify
 
@@ -46,10 +48,12 @@ class SessionMixinTest {
     @Before
     fun setUp() {
         MockitoAnnotations.initMocks(this)
-        session = SessionMixin(
-            activity,
-            contentResolver,
-            userAccountManager
+        session = spy(
+            SessionMixin(
+                activity,
+                contentResolver,
+                userAccountManager
+            )
         )
     }
 
@@ -64,4 +68,15 @@ class SessionMixinTest {
         //      account manager receives parent activity
         verify(userAccountManager).startAccountCreation(same(activity))
     }
+
+    @Test
+    fun `trigger accountCreation on resume when currentAccount is null`() {
+        // WHEN
+        //      start onResume and currentAccount is null
+        assertNull(session.currentAccount)
+        session.onResume()
+        // THEN
+        //      accountCreation flow is started
+        verify(session).startAccountCreation()
+    }
 }