diff --git a/app/src/main/java/jp/panta/misskeyandroidclient/ui/main/IntentToAddAccountHandler.kt b/app/src/main/java/jp/panta/misskeyandroidclient/ui/main/IntentToAddAccountHandler.kt index 758dc675c6..2f85c2b6fc 100644 --- a/app/src/main/java/jp/panta/misskeyandroidclient/ui/main/IntentToAddAccountHandler.kt +++ b/app/src/main/java/jp/panta/misskeyandroidclient/ui/main/IntentToAddAccountHandler.kt @@ -4,6 +4,7 @@ import android.content.Intent import jp.panta.misskeyandroidclient.BuildConfig import jp.panta.misskeyandroidclient.ui.main.viewmodel.MainViewModel import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import net.pantasystem.milktea.model.account.Account import net.pantasystem.milktea.model.account.AccountRepository @@ -46,7 +47,14 @@ internal class IntentToAddAccountHandler( val token = intent.getStringExtra("token") ?: return@launch val remoteId = intent.getStringExtra("remoteId") ?: return@launch - accountRepository.add( + val state = mainViewModel.accountState.first() + if (state.state.accounts.any { + it.userName == username && it.instanceDomain == host + }) { + return@launch + } + + mainViewModel.accountStore.addAccount( Account( remoteId = remoteId, instanceDomain = host, @@ -54,7 +62,7 @@ internal class IntentToAddAccountHandler( token = token, instanceType = Account.InstanceType.MISSKEY, ) - ).getOrThrow() + ) } finally { mainViewModel.setShouldWaitForAuthentication(false) } diff --git a/app/src/main/java/jp/panta/misskeyandroidclient/ui/tab/TabFragment.kt b/app/src/main/java/jp/panta/misskeyandroidclient/ui/tab/TabFragment.kt index 7912210c6f..54c9899b38 100644 --- a/app/src/main/java/jp/panta/misskeyandroidclient/ui/tab/TabFragment.kt +++ b/app/src/main/java/jp/panta/misskeyandroidclient/ui/tab/TabFragment.kt @@ -103,6 +103,7 @@ class TabFragment : Fragment(R.layout.fragment_tab) { viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) { mTabViewModel.pages.collect { pages -> + requireActivity().reportFullyDrawn() mPages = pages mPagerAdapter.setList( pages.sortedBy {