mirror of
https://github.com/nextcloud/android.git
synced 2024-11-21 20:55:31 +03:00
Merge pull request #13902 from nextcloud/bugfix/first-run-activity-not-launching
Fix: Launching LauncherActivity & FirstRunActivity properly
This commit is contained in:
commit
ad8da72554
6 changed files with 29 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2023 TSI-mc
|
* SPDX-FileCopyrightText: 2023-2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
||||||
*/
|
*/
|
||||||
|
@ -19,8 +19,10 @@ import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.nextcloud.client.onboarding.FirstRunActivity;
|
||||||
import com.nextcloud.common.NextcloudClient;
|
import com.nextcloud.common.NextcloudClient;
|
||||||
import com.nextcloud.utils.extensions.AccountExtensionsKt;
|
import com.nextcloud.utils.extensions.AccountExtensionsKt;
|
||||||
|
import com.nmc.android.ui.LauncherActivity;
|
||||||
import com.owncloud.android.MainApp;
|
import com.owncloud.android.MainApp;
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.authentication.AuthenticatorActivity;
|
import com.owncloud.android.authentication.AuthenticatorActivity;
|
||||||
|
@ -398,6 +400,10 @@ public class UserAccountManagerImpl implements UserAccountManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startAccountCreation(final Activity activity) {
|
public void startAccountCreation(final Activity activity) {
|
||||||
|
|
||||||
|
// skipping AuthenticatorActivity redirection when user is on Launcher or FirstRun Activity
|
||||||
|
if (activity instanceof LauncherActivity || activity instanceof FirstRunActivity) return;
|
||||||
|
|
||||||
Intent intent = new Intent(context, AuthenticatorActivity.class);
|
Intent intent = new Intent(context, AuthenticatorActivity.class);
|
||||||
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
||||||
|
* SPDX-FileCopyrightText: 2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
||||||
*/
|
*/
|
||||||
package com.nextcloud.client.onboarding
|
package com.nextcloud.client.onboarding
|
||||||
|
@ -42,7 +43,7 @@ internal class OnboardingServiceImpl constructor(
|
||||||
|
|
||||||
override val isFirstRun: Boolean
|
override val isFirstRun: Boolean
|
||||||
get() {
|
get() {
|
||||||
return accountProvider.currentAccount == null
|
return accountProvider.user.isAnonymous
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldShowWhatsNew(callingContext: Context): Boolean {
|
override fun shouldShowWhatsNew(callingContext: Context): Boolean {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2023 Alper Ozturk <alper.ozturk@nextcloud.com>
|
* SPDX-FileCopyrightText: 2023 Alper Ozturk <alper.ozturk@nextcloud.com>
|
||||||
* SPDX-FileCopyrightText: 2023 Andy Scherzinger <info@andy-scherzinger.de>
|
* SPDX-FileCopyrightText: 2023 Andy Scherzinger <info@andy-scherzinger.de>
|
||||||
* SPDX-FileCopyrightText: 2023 TSI-mc
|
* SPDX-FileCopyrightText: 2023-2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
||||||
*/
|
*/
|
||||||
package com.nmc.android.ui
|
package com.nmc.android.ui
|
||||||
|
@ -18,6 +18,7 @@ import androidx.annotation.VisibleForTesting
|
||||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||||
import com.nextcloud.client.preferences.AppPreferences
|
import com.nextcloud.client.preferences.AppPreferences
|
||||||
import com.owncloud.android.R
|
import com.owncloud.android.R
|
||||||
|
import com.owncloud.android.authentication.AuthenticatorActivity
|
||||||
import com.owncloud.android.databinding.ActivitySplashBinding
|
import com.owncloud.android.databinding.ActivitySplashBinding
|
||||||
import com.owncloud.android.ui.activity.BaseActivity
|
import com.owncloud.android.ui.activity.BaseActivity
|
||||||
import com.owncloud.android.ui.activity.FileDisplayActivity
|
import com.owncloud.android.ui.activity.FileDisplayActivity
|
||||||
|
@ -65,6 +66,8 @@ class LauncherActivity : BaseActivity() {
|
||||||
Handler(Looper.getMainLooper()).postDelayed({
|
Handler(Looper.getMainLooper()).postDelayed({
|
||||||
if (user.isPresent) {
|
if (user.isPresent) {
|
||||||
startActivity(Intent(this, FileDisplayActivity::class.java))
|
startActivity(Intent(this, FileDisplayActivity::class.java))
|
||||||
|
} else {
|
||||||
|
startActivity(Intent(this, AuthenticatorActivity::class.java))
|
||||||
}
|
}
|
||||||
finish()
|
finish()
|
||||||
}, SPLASH_DURATION)
|
}, SPLASH_DURATION)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2023 TSI-mc
|
* SPDX-FileCopyrightText: 2023-2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-FileCopyrightText: 2019-2021 Tobias Kaminsky <tobias@kaminsky.me>
|
* SPDX-FileCopyrightText: 2019-2021 Tobias Kaminsky <tobias@kaminsky.me>
|
||||||
* SPDX-FileCopyrightText: 2018 Andy Scherzinger <info@andy-scherzinger>
|
* SPDX-FileCopyrightText: 2018 Andy Scherzinger <info@andy-scherzinger>
|
||||||
* SPDX-FileCopyrightText: 2017 Mario Danic <mario@lovelyhq.com>
|
* SPDX-FileCopyrightText: 2017 Mario Danic <mario@lovelyhq.com>
|
||||||
|
@ -1364,14 +1364,13 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
private void endSuccess() {
|
private void endSuccess() {
|
||||||
if (onlyAdd) {
|
if (!onlyAdd) {
|
||||||
finish();
|
|
||||||
} else {
|
|
||||||
Intent i = new Intent(this, FileDisplayActivity.class);
|
Intent i = new Intent(this, FileDisplayActivity.class);
|
||||||
i.setAction(FileDisplayActivity.RESTART);
|
i.setAction(FileDisplayActivity.RESTART);
|
||||||
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
startActivity(i);
|
startActivity(i);
|
||||||
}
|
}
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getUserCapabilitiesAndFinish() {
|
private void getUserCapabilitiesAndFinish() {
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
|
||||||
|
* SPDX-FileCopyrightText: 2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
||||||
*/
|
*/
|
||||||
package com.owncloud.android.ui.activity;
|
package com.owncloud.android.ui.activity;
|
||||||
|
@ -115,8 +116,10 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
|
||||||
protected void onRestart() {
|
protected void onRestart() {
|
||||||
Log_OC.v(TAG, "onRestart() start");
|
Log_OC.v(TAG, "onRestart() start");
|
||||||
super.onRestart();
|
super.onRestart();
|
||||||
|
if (enableAccountHandling) {
|
||||||
mixinRegistry.onRestart();
|
mixinRegistry.onRestart();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void onThemeSettingsModeChanged() {
|
private void onThemeSettingsModeChanged() {
|
||||||
if (paused) {
|
if (paused) {
|
||||||
|
|
|
@ -2,13 +2,15 @@
|
||||||
* Nextcloud - Android Client
|
* Nextcloud - Android Client
|
||||||
*
|
*
|
||||||
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
* SPDX-FileCopyrightText: 2019 Chris Narkiewicz <hello@ezaquarii.com>
|
||||||
|
* SPDX-FileCopyrightText: 2024 TSI-mc <surinder.kumar@t-systems.com>
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
|
||||||
*/
|
*/
|
||||||
package com.nextcloud.client.onboarding
|
package com.nextcloud.client.onboarding
|
||||||
|
|
||||||
import android.accounts.Account
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import com.nextcloud.client.account.AnonymousUser
|
||||||
import com.nextcloud.client.account.CurrentAccountProvider
|
import com.nextcloud.client.account.CurrentAccountProvider
|
||||||
|
import com.nextcloud.client.account.User
|
||||||
import com.nextcloud.client.preferences.AppPreferences
|
import com.nextcloud.client.preferences.AppPreferences
|
||||||
import org.junit.Assert.assertFalse
|
import org.junit.Assert.assertFalse
|
||||||
import org.junit.Assert.assertTrue
|
import org.junit.Assert.assertTrue
|
||||||
|
@ -30,7 +32,7 @@ class OnboardingServiceTest {
|
||||||
private lateinit var currentAccountProvider: CurrentAccountProvider
|
private lateinit var currentAccountProvider: CurrentAccountProvider
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var account: Account
|
private lateinit var user: User
|
||||||
|
|
||||||
private lateinit var onboardingService: OnboardingServiceImpl
|
private lateinit var onboardingService: OnboardingServiceImpl
|
||||||
|
|
||||||
|
@ -43,13 +45,16 @@ class OnboardingServiceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `first run flag toggles with current current account`() {
|
fun `first run flag toggles with current current account`() {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// current account is not set
|
// current account is anonymous
|
||||||
|
whenever(currentAccountProvider.user).thenReturn(AnonymousUser("dummy"))
|
||||||
|
|
||||||
|
// THEN
|
||||||
// first run flag is true
|
// first run flag is true
|
||||||
assertTrue(onboardingService.isFirstRun)
|
assertTrue(onboardingService.isFirstRun)
|
||||||
|
|
||||||
// WHEN
|
// WHEN
|
||||||
// current account is set
|
// current account is set
|
||||||
whenever(currentAccountProvider.currentAccount).thenReturn(account)
|
whenever(currentAccountProvider.user).thenReturn(user)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
// first run flag toggles
|
// first run flag toggles
|
||||||
|
|
Loading…
Reference in a new issue