diff --git a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt index e557074e526df756d307aa70188b38de576ef65c..0fd78b3fb8e2d1212b01613ce3d4deec9d9f38b6 100644 --- a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt @@ -13,27 +13,17 @@ import org.futo.circles.core.databinding.FragmentRoomsBinding import org.futo.circles.core.extensions.navigateSafe import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeResponse +import org.futo.circles.core.view.EmptyTabPlaceholderView import org.futo.circles.feature.circles.list.CirclesListAdapter import org.futo.circles.model.CircleListItem import org.futo.circles.model.RequestCircleListItem -import org.futo.circles.core.view.EmptyTabPlaceholderView @AndroidEntryPoint class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) { private val viewModel by viewModels<CirclesViewModel>() private val binding by viewBinding(FragmentRoomsBinding::bind) - private val listAdapter by lazy { - CirclesListAdapter( - onRoomClicked = { roomListItem -> onRoomListItemClicked(roomListItem) }, - onInviteClicked = { roomListItem, isAccepted -> - onInviteClicked(roomListItem, isAccepted) - }, - onRequestClicked = { roomListItem, isAccepted -> - onRequestClicked(roomListItem, isAccepted) - } - ) - } + private var listAdapter: CirclesListAdapter? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -41,13 +31,26 @@ class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) setupObservers() } + override fun onDestroyView() { + super.onDestroyView() + listAdapter = null + } + private fun setupViews() { binding.rvRooms.apply { setEmptyView(EmptyTabPlaceholderView(requireContext()).apply { setText(getString(R.string.circles_empty_message)) }) addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) - adapter = listAdapter + adapter = CirclesListAdapter( + onRoomClicked = { roomListItem -> onRoomListItemClicked(roomListItem) }, + onInviteClicked = { roomListItem, isAccepted -> + onInviteClicked(roomListItem, isAccepted) + }, + onRequestClicked = { roomListItem, isAccepted -> + onRequestClicked(roomListItem, isAccepted) + } + ).also { listAdapter = it } bindToFab(binding.fbAddRoom) } binding.fbAddRoom.setOnClickListener { navigateToCreateRoom() } @@ -55,7 +58,7 @@ class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) private fun setupObservers() { viewModel.roomsLiveData.observeData(this) { - listAdapter.submitList(it) + listAdapter?.submitList(it) binding.rvRooms.notifyItemsChanged() } viewModel.inviteResultLiveData.observeResponse(this) diff --git a/auth/src/main/java/org/futo/circles/auth/bsspeke/BSSpekeClient.kt b/auth/src/main/java/org/futo/circles/auth/bsspeke/BSSpekeClient.kt index 47612374f9aa3f1d41104706f941172a38752463..4cf3f8d746b90a79aa3feb16861b296c011f9395 100644 --- a/auth/src/main/java/org/futo/circles/auth/bsspeke/BSSpekeClient.kt +++ b/auth/src/main/java/org/futo/circles/auth/bsspeke/BSSpekeClient.kt @@ -63,12 +63,6 @@ class BSSpekeClient( return Base64.encodeToString(verifier, Base64.NO_WRAP) } - fun verifyServer(verifier: ByteArray): Boolean { - assert(verifier.size == 32) - val rc = BSSpekeUtils.clientVerifyServer(verifier, clientContext) - return rc == 0 - } - fun generateHashKey(message: String): ByteArray { val k = ByteArray(32) { 0 } val messageByteArray = message.toByteArray()