11/*
22 * Nextcloud Talk - Android Client
33 *
4- * SPDX-FileCopyrightText: 2023 Marcel Hibbe <dev@mhibbe.de>
5- * SPDX-FileCopyrightText: 2022 Andy Scherzinger <info@andy-scherzinger.de>
6- * SPDX-FileCopyrightText: 2017 Mario Danic <mario@lovelyhq.com>
4+ * SPDX-FileCopyrightText: 2017-2026 Nextcloud GmbH and Nextcloud contributors
75 * SPDX-License-Identifier: GPL-3.0-or-later
86 */
97package com.nextcloud.talk.account
@@ -33,9 +31,6 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_BASE_URL
3331import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_IS_ACCOUNT_IMPORT
3432import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_TOKEN
3533import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_USERNAME
36- import eu.davidea.flexibleadapter.FlexibleAdapter
37- import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
38- import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
3934import org.osmdroid.config.Configuration
4035import java.net.CookieManager
4136import javax.inject.Inject
@@ -54,30 +49,10 @@ class SwitchAccountActivity : BaseActivity() {
5449 @Inject
5550 lateinit var cookieManager: CookieManager
5651
57- private var adapter: FlexibleAdapter < AbstractFlexibleItem < * >> ? = null
58- private val userItems: MutableList <AbstractFlexibleItem < * > > = ArrayList ()
52+ private var adapter: AccountItemAdapter ? = null
53+ private val userItems: MutableList <AdvancedUserItem > = ArrayList ()
5954 private var isAccountImport = false
6055
61- private val onImportItemClickListener = FlexibleAdapter .OnItemClickListener { _, position ->
62- if (userItems.size > position) {
63- val account = (userItems[position] as AdvancedUserItem ).account
64- reauthorizeFromImport(account)
65- }
66- true
67- }
68-
69- private val onSwitchItemClickListener = FlexibleAdapter .OnItemClickListener { _, position ->
70- if (userItems.size > position) {
71- val user = (userItems[position] as AdvancedUserItem ).user
72-
73- if (userManager.setUserAsActive(user!! ).blockingGet()) {
74- cookieManager.cookieStore.removeAll()
75- finish()
76- }
77- }
78- true
79- }
80-
8156 @SuppressLint(" SourceLockedOrientationActivity" )
8257 override fun onCreate (savedInstanceState : Bundle ? ) {
8358 super .onCreate(savedInstanceState)
@@ -117,7 +92,17 @@ class SwitchAccountActivity : BaseActivity() {
11792 super .onResume()
11893
11994 if (adapter == null ) {
120- adapter = FlexibleAdapter (userItems, this , false )
95+ adapter = AccountItemAdapter { item ->
96+ if (isAccountImport) {
97+ reauthorizeFromImport(item.account)
98+ } else {
99+ if (userManager.setUserAsActive(item.user!! ).blockingGet()) {
100+ cookieManager.cookieStore.removeAll()
101+ finish()
102+ }
103+ }
104+ }
105+
121106 var participant: Participant
122107
123108 if (! isAccountImport) {
@@ -132,11 +117,9 @@ class SwitchAccountActivity : BaseActivity() {
132117 participant.actorType = Participant .ActorType .USERS
133118 participant.actorId = userId
134119 participant.displayName = user.displayName
135- userItems.add(AdvancedUserItem (participant, user, null , viewThemeUtils, 0 ))
120+ userItems.add(AdvancedUserItem (participant, user, null , 0 ))
136121 }
137122 }
138- adapter!! .addListener(onSwitchItemClickListener)
139- adapter!! .updateDataSet(userItems, false )
140123 } else {
141124 var account: Account
142125 var importAccount: ImportAccount
@@ -150,18 +133,16 @@ class SwitchAccountActivity : BaseActivity() {
150133 participant.displayName = importAccount.getUsername()
151134 user = User ()
152135 user.baseUrl = importAccount.getBaseUrl()
153- userItems.add(AdvancedUserItem (participant, user, account, viewThemeUtils, 0 ))
136+ userItems.add(AdvancedUserItem (participant, user, account, 0 ))
154137 }
155- adapter!! .addListener(onImportItemClickListener)
156- adapter!! .updateDataSet(userItems, false )
157138 }
139+ adapter!! .submitList(userItems)
158140 }
159141 prepareViews()
160142 }
161143
162144 private fun prepareViews () {
163- val layoutManager: LinearLayoutManager = SmoothScrollLinearLayoutManager (this )
164- binding.recyclerView.layoutManager = layoutManager
145+ binding.recyclerView.layoutManager = LinearLayoutManager (this )
165146 binding.recyclerView.setHasFixedSize(true )
166147 binding.recyclerView.adapter = adapter
167148 }
0 commit comments