Skip to content
Snippets Groups Projects
Verified Commit b34d4385 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Migrate ChatActivity to ViewBinding

parent ffe50356
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
package de.kuschku.quasseldroid.ui.chat package de.kuschku.quasseldroid.ui.chat
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
...@@ -34,15 +35,11 @@ import android.view.View ...@@ -34,15 +35,11 @@ import android.view.View
import android.widget.EditText import android.widget.EditText
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.ActionBarDrawerToggle import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.widget.Toolbar
import androidx.core.view.GravityCompat import androidx.core.view.GravityCompat
import androidx.drawerlayout.widget.DrawerLayout import androidx.drawerlayout.widget.DrawerLayout
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView
import butterknife.ButterKnife
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import de.kuschku.libquassel.connection.ConnectionState import de.kuschku.libquassel.connection.ConnectionState
...@@ -64,6 +61,7 @@ import de.kuschku.libquassel.util.flag.or ...@@ -64,6 +61,7 @@ import de.kuschku.libquassel.util.flag.or
import de.kuschku.libquassel.util.helper.* import de.kuschku.libquassel.util.helper.*
import de.kuschku.quasseldroid.Keys import de.kuschku.quasseldroid.Keys
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.databinding.ActivityMainBinding
import de.kuschku.quasseldroid.defaults.DefaultNetworkServer import de.kuschku.quasseldroid.defaults.DefaultNetworkServer
import de.kuschku.quasseldroid.persistence.dao.* import de.kuschku.quasseldroid.persistence.dao.*
import de.kuschku.quasseldroid.persistence.db.AccountDatabase import de.kuschku.quasseldroid.persistence.db.AccountDatabase
...@@ -111,21 +109,9 @@ import java.security.cert.CertificateExpiredException ...@@ -111,21 +109,9 @@ import java.security.cert.CertificateExpiredException
import java.security.cert.CertificateNotYetValidException import java.security.cert.CertificateNotYetValidException
import javax.inject.Inject import javax.inject.Inject
@SuppressLint("ResourceType")
class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenceChangeListener { class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
@BindView(R.id.drawer_layout) lateinit var binding: ActivityMainBinding
lateinit var drawerLayout: DrawerLayout
@BindView(R.id.toolbar)
lateinit var toolbar: Toolbar
@BindView(R.id.progress_bar)
lateinit var progressBar: MaterialContentLoadingProgressBar
@BindView(R.id.connection_status)
lateinit var connectionStatusDisplay: WarningBarView
@BindView(R.id.autocomplete_list)
lateinit var autoCompleteList: RecyclerView
@Inject @Inject
lateinit var modelHelper: ChatViewModelHelper lateinit var modelHelper: ChatViewModelHelper
...@@ -174,7 +160,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -174,7 +160,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
val text = intent.getCharSequenceExtra(Intent.EXTRA_TEXT) val text = intent.getCharSequenceExtra(Intent.EXTRA_TEXT)
if (text != null) { if (text != null) {
chatlineFragment?.replaceText(text) chatlineFragment?.replaceText(text)
drawerLayout.closeDrawers() binding.drawerLayout.closeDrawers()
} }
} }
intent.hasExtra(KEY_BUFFER_ID) -> { intent.hasExtra(KEY_BUFFER_ID) -> {
...@@ -197,7 +183,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -197,7 +183,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
intent.getStringExtra(KEY_AUTOCOMPLETE_TEXT), intent.getStringExtra(KEY_AUTOCOMPLETE_TEXT),
intent.getStringExtra(KEY_AUTOCOMPLETE_SUFFIX) intent.getStringExtra(KEY_AUTOCOMPLETE_SUFFIX)
) )
drawerLayout.closeDrawers() binding.drawerLayout.closeDrawers()
} }
intent.hasExtra(KEY_NETWORK_ID) && intent.hasExtra(KEY_CHANNEL) -> { intent.hasExtra(KEY_NETWORK_ID) && intent.hasExtra(KEY_CHANNEL) -> {
val networkId = NetworkId(intent.getIntExtra(KEY_NETWORK_ID, -1)) val networkId = NetworkId(intent.getIntExtra(KEY_NETWORK_ID, -1))
...@@ -303,17 +289,17 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -303,17 +289,17 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) binding = ActivityMainBinding.inflate(layoutInflater)
ButterKnife.bind(this) setContentView(binding.root)
chatlineFragment = supportFragmentManager.findFragmentById(R.id.fragment_chatline) as? ChatlineFragment chatlineFragment = supportFragmentManager.findFragmentByTag("fragment_chatline") as? ChatlineFragment
setSupportActionBar(toolbar) setSupportActionBar(binding.layoutMain.layoutToolbar.toolbar)
chatViewModel.bufferOpened.toLiveData().observe(this, Observer { chatViewModel.bufferOpened.toLiveData().observe(this, Observer {
actionMode?.finish() actionMode?.finish()
if (drawerLayout.isDrawerOpen(GravityCompat.START)) { if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START, true) binding.drawerLayout.closeDrawer(GravityCompat.START, true)
} }
}) })
...@@ -322,14 +308,14 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -322,14 +308,14 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)
drawerToggle = ActionBarDrawerToggle( drawerToggle = ActionBarDrawerToggle(
this, this,
drawerLayout, binding.drawerLayout,
R.string.label_open, R.string.label_open,
R.string.label_close R.string.label_close
) )
drawerToggle.syncState() drawerToggle.syncState()
} }
drawerLayout.addDrawerListener(object : DrawerLayout.DrawerListener { binding.drawerLayout.addDrawerListener(object : DrawerLayout.DrawerListener {
override fun onDrawerStateChanged(newState: Int) = Unit override fun onDrawerStateChanged(newState: Int) = Unit
override fun onDrawerSlide(drawerView: View, slideOffset: Float) { override fun onDrawerSlide(drawerView: View, slideOffset: Float) {
actionMode?.finish() actionMode?.finish()
...@@ -408,12 +394,12 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -408,12 +394,12 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
} }
if (autoCompleteSettings.prefix || autoCompleteSettings.auto) { if (autoCompleteSettings.prefix || autoCompleteSettings.auto) {
val autoCompleteBottomSheet = BottomSheetBehavior.from(autoCompleteList) val autoCompleteBottomSheet = BottomSheetBehavior.from(binding.layoutMain.autocompleteList)
chatlineFragment?.let { chatlineFragment?.let {
autoCompleteAdapter.setOnClickListener(it.chatline::autoComplete) autoCompleteAdapter.setOnClickListener(it.chatline::autoComplete)
autoCompleteList.layoutManager = LinearLayoutManager(it.activity) binding.layoutMain.autocompleteList.layoutManager = LinearLayoutManager(it.activity)
autoCompleteList.itemAnimator = DefaultItemAnimator() binding.layoutMain.autocompleteList.itemAnimator = DefaultItemAnimator()
autoCompleteList.adapter = autoCompleteAdapter binding.layoutMain.autocompleteList.adapter = autoCompleteAdapter
it.autoCompleteHelper.addDataListener { it.autoCompleteHelper.addDataListener {
autoCompleteBottomSheet.state = autoCompleteBottomSheet.state =
if (it.isEmpty()) BottomSheetBehavior.STATE_HIDDEN if (it.isEmpty()) BottomSheetBehavior.STATE_HIDDEN
...@@ -750,7 +736,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -750,7 +736,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
if (resources.getBoolean(R.bool.buffer_drawer_exists) && if (resources.getBoolean(R.bool.buffer_drawer_exists) &&
chatViewModel.bufferId.safeValue == BufferId.MAX_VALUE && chatViewModel.bufferId.safeValue == BufferId.MAX_VALUE &&
!restoredDrawerState) { !restoredDrawerState) {
drawerLayout.openDrawer(GravityCompat.START) binding.drawerLayout.openDrawer(GravityCompat.START)
} }
connectedAccount = accountId connectedAccount = accountId
modelHelper.connectedSession.value?.orNull()?.let { session -> modelHelper.connectedSession.value?.orNull()?.let { session ->
...@@ -782,7 +768,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -782,7 +768,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
} }
}) })
connectionStatusDisplay.setOnClickListener { binding.layoutMain.connectionStatus.setOnClickListener {
modelHelper.sessionManager.value?.orNull()?.apply { modelHelper.sessionManager.value?.orNull()?.apply {
log(INFO, "ChatActivity", "Reconnect triggered: User action") log(INFO, "ChatActivity", "Reconnect triggered: User action")
backend.safeValue.orNull()?.autoConnect(ignoreErrors = true, ignoreSetting = true) backend.safeValue.orNull()?.autoConnect(ignoreErrors = true, ignoreSetting = true)
...@@ -795,39 +781,39 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -795,39 +781,39 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
when (state) { when (state) {
ConnectionState.DISCONNECTED, ConnectionState.DISCONNECTED,
ConnectionState.CLOSED -> { ConnectionState.CLOSED -> {
progressBar.visibility = View.INVISIBLE binding.layoutMain.layoutToolbar.progressBar.visibility = View.INVISIBLE
connectionStatusDisplay.setMode(WarningBarView.MODE_ICON) binding.layoutMain.connectionStatus.setMode(WarningBarView.MODE_ICON)
connectionStatusDisplay.setText(getString(R.string.label_status_disconnected)) binding.layoutMain.connectionStatus.setText(getString(R.string.label_status_disconnected))
} }
ConnectionState.CONNECTING -> { ConnectionState.CONNECTING -> {
progressBar.visibility = View.VISIBLE binding.layoutMain.layoutToolbar.progressBar.visibility = View.VISIBLE
progressBar.isIndeterminate = true binding.layoutMain.layoutToolbar.progressBar.isIndeterminate = true
connectionStatusDisplay.setMode(WarningBarView.MODE_PROGRESS) binding.layoutMain.connectionStatus.setMode(WarningBarView.MODE_PROGRESS)
connectionStatusDisplay.setText(getString(R.string.label_status_connecting)) binding.layoutMain.connectionStatus.setText(getString(R.string.label_status_connecting))
} }
ConnectionState.HANDSHAKE -> { ConnectionState.HANDSHAKE -> {
progressBar.visibility = View.VISIBLE binding.layoutMain.layoutToolbar.progressBar.visibility = View.VISIBLE
progressBar.isIndeterminate = true binding.layoutMain.layoutToolbar.progressBar.isIndeterminate = true
connectionStatusDisplay.setMode(WarningBarView.MODE_PROGRESS) binding.layoutMain.connectionStatus.setMode(WarningBarView.MODE_PROGRESS)
connectionStatusDisplay.setText(getString(R.string.label_status_handshake)) binding.layoutMain.connectionStatus.setText(getString(R.string.label_status_handshake))
} }
ConnectionState.INIT -> { ConnectionState.INIT -> {
progressBar.visibility = View.VISIBLE binding.layoutMain.layoutToolbar.progressBar.visibility = View.VISIBLE
// Show indeterminate when no progress has been made yet // Show indeterminate when no progress has been made yet
progressBar.isIndeterminate = progress == 0 || max == 0 binding.layoutMain.layoutToolbar.progressBar.isIndeterminate = progress == 0 || max == 0
progressBar.progress = progress binding.layoutMain.layoutToolbar.progressBar.progress = progress
progressBar.max = max binding.layoutMain.layoutToolbar.progressBar.max = max
connectionStatusDisplay.setMode(WarningBarView.MODE_PROGRESS) binding.layoutMain.connectionStatus.setMode(WarningBarView.MODE_PROGRESS)
connectionStatusDisplay.setText(getString(R.string.label_status_init)) binding.layoutMain.connectionStatus.setText(getString(R.string.label_status_init))
} }
ConnectionState.CONNECTED -> { ConnectionState.CONNECTED -> {
progressBar.visibility = View.INVISIBLE binding.layoutMain.layoutToolbar.progressBar.visibility = View.INVISIBLE
connectionStatusDisplay.setMode(WarningBarView.MODE_NONE) binding.layoutMain.connectionStatus.setMode(WarningBarView.MODE_NONE)
} }
} }
}) })
...@@ -836,15 +822,15 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -836,15 +822,15 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
modelHelper.bufferDataThrottled.toLiveData().observe(this, Observer { modelHelper.bufferDataThrottled.toLiveData().observe(this, Observer {
bufferData = it bufferData = it
if (bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) == true) { if (bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) == true) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END) binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END)
} else { } else {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END) binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END)
} }
invalidateOptionsMenu() invalidateOptionsMenu()
}) })
editorBottomSheet = DragInterceptBottomSheetBehavior.from(chatlineFragment?.view) editorBottomSheet = DragInterceptBottomSheetBehavior.from(binding.root.findViewById(R.id.fragment_chatline))
editorBottomSheet.state = BottomSheetBehavior.STATE_COLLAPSED editorBottomSheet.state = BottomSheetBehavior.STATE_COLLAPSED
chatlineFragment?.panelSlideListener?.let(editorBottomSheet::setBottomSheetCallback) chatlineFragment?.panelSlideListener?.let(editorBottomSheet::setBottomSheetCallback)
...@@ -892,7 +878,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -892,7 +878,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
override fun onActionModeStarted(mode: ActionMode?) { override fun onActionModeStarted(mode: ActionMode?) {
when (mode?.tag) { when (mode?.tag) {
"BUFFER", "BUFFER",
"MESSAGES" -> mode.menu?.retint(toolbar.context) "MESSAGES" -> mode.menu?.retint(binding.layoutMain.layoutToolbar.toolbar.context)
} }
actionMode = mode actionMode = mode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
...@@ -933,8 +919,8 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -933,8 +919,8 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
chatViewModel.onSaveInstanceState(outState) chatViewModel.onSaveInstanceState(outState)
outState.putLong(KEY_CONNECTED_ACCOUNT, connectedAccount.id) outState.putLong(KEY_CONNECTED_ACCOUNT, connectedAccount.id)
outState.putBoolean(KEY_OPEN_DRAWER_START, drawerLayout.isDrawerOpen(GravityCompat.START)) outState.putBoolean(KEY_OPEN_DRAWER_START, binding.drawerLayout.isDrawerOpen(GravityCompat.START))
outState.putBoolean(KEY_OPEN_DRAWER_END, drawerLayout.isDrawerOpen(GravityCompat.END)) outState.putBoolean(KEY_OPEN_DRAWER_END, binding.drawerLayout.isDrawerOpen(GravityCompat.END))
} }
override fun onRestoreInstanceState(savedInstanceState: Bundle?) { override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
...@@ -947,10 +933,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -947,10 +933,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) == true && if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) == true &&
resources.getBoolean(R.bool.buffer_drawer_exists)) { resources.getBoolean(R.bool.buffer_drawer_exists)) {
drawerLayout.openDrawer(GravityCompat.START) binding.drawerLayout.openDrawer(GravityCompat.START)
} }
if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) == true) { if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) == true) {
drawerLayout.openDrawer(GravityCompat.END) binding.drawerLayout.openDrawer(GravityCompat.END)
} }
if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) != null || if (savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_START) != null ||
savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) != null) { savedInstanceState?.getBoolean(KEY_OPEN_DRAWER_END) != null) {
...@@ -960,7 +946,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -960,7 +946,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
override fun onCreateOptionsMenu(menu: Menu?): Boolean { override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val nickCountDrawableSize = resources.getDimensionPixelSize(R.dimen.size_nick_count) val nickCountDrawableSize = resources.getDimensionPixelSize(R.dimen.size_nick_count)
val nickCountDrawableColor = toolbar.context.theme.styledAttributes(R.attr.colorControlNormal) { val nickCountDrawableColor = binding.layoutMain.layoutToolbar.toolbar.context.theme.styledAttributes(R.attr.colorControlNormal) {
getColor(0, 0) getColor(0, 0)
} }
...@@ -970,7 +956,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -970,7 +956,7 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
menu?.findItem(R.id.action_filter_messages)?.isVisible = menu?.findItem(R.id.action_filter_messages)?.isVisible =
(bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) ?: false || (bufferData?.info?.type?.hasFlag(Buffer_Type.ChannelBuffer) ?: false ||
bufferData?.info?.type?.hasFlag(Buffer_Type.QueryBuffer) ?: false) bufferData?.info?.type?.hasFlag(Buffer_Type.QueryBuffer) ?: false)
menu?.retint(toolbar.context) menu?.retint(binding.layoutMain.layoutToolbar.toolbar.context)
menu?.findItem(R.id.action_nicklist)?.icon = NickCountDrawable( menu?.findItem(R.id.action_nicklist)?.icon = NickCountDrawable(
bufferData?.userCount ?: 0, bufferData?.userCount ?: 0,
nickCountDrawableSize, nickCountDrawableSize,
...@@ -983,10 +969,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -983,10 +969,10 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
drawerToggle.onOptionsItemSelected(item) drawerToggle.onOptionsItemSelected(item)
} }
R.id.action_nicklist -> { R.id.action_nicklist -> {
if (drawerLayout.isDrawerVisible(GravityCompat.END)) { if (binding.drawerLayout.isDrawerVisible(GravityCompat.END)) {
drawerLayout.closeDrawer(GravityCompat.END) binding.drawerLayout.closeDrawer(GravityCompat.END)
} else { } else {
drawerLayout.openDrawer(GravityCompat.END) binding.drawerLayout.openDrawer(GravityCompat.END)
} }
true true
} }
......
...@@ -32,7 +32,10 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -32,7 +32,10 @@ import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import de.kuschku.libquassel.protocol.BufferId import de.kuschku.libquassel.protocol.BufferId
import de.kuschku.libquassel.util.compatibility.LoggingHandler
import de.kuschku.libquassel.util.compatibility.LoggingHandler.Companion.log
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.persistence.db.AccountDatabase
import de.kuschku.quasseldroid.persistence.models.Account import de.kuschku.quasseldroid.persistence.models.Account
import de.kuschku.quasseldroid.persistence.util.AccountId import de.kuschku.quasseldroid.persistence.util.AccountId
import de.kuschku.quasseldroid.ui.setup.SlideFragment import de.kuschku.quasseldroid.ui.setup.SlideFragment
...@@ -41,6 +44,7 @@ import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActiv ...@@ -41,6 +44,7 @@ import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActiv
import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity.Companion.REQUEST_CREATE_NEW import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity.Companion.REQUEST_CREATE_NEW
import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupActivity import de.kuschku.quasseldroid.ui.setup.accounts.setup.AccountSetupActivity
import de.kuschku.quasseldroid.util.helper.map import de.kuschku.quasseldroid.util.helper.map
import de.kuschku.quasseldroid.util.helper.observeSticky
import de.kuschku.quasseldroid.util.helper.zip import de.kuschku.quasseldroid.util.helper.zip
import javax.inject.Inject import javax.inject.Inject
...@@ -95,8 +99,11 @@ class AccountSelectionSlide : SlideFragment() { ...@@ -95,8 +99,11 @@ class AccountSelectionSlide : SlideFragment() {
startActivityForResult(AccountEditActivity.intent(requireContext(), id), REQUEST_CREATE_NEW) startActivityForResult(AccountEditActivity.intent(requireContext(), id), REQUEST_CREATE_NEW)
} }
adapter.addClickListener { adapter.addClickListener {
updateValidity() accountViewModel.selectedItem.postValue(it)
} }
accountViewModel.selectedItem.observeSticky(viewLifecycleOwner, Observer {
updateValidity()
})
accountViewModel.accounts.zip(accountViewModel.selectedItem).map { (accounts, selected) -> accountViewModel.accounts.zip(accountViewModel.selectedItem).map { (accounts, selected) ->
accounts.map { Pair(it, it.id == selected) } accounts.map { Pair(it, it.id == selected) }
......
...@@ -40,7 +40,7 @@ class AccountSetupActivity : SetupActivity() { ...@@ -40,7 +40,7 @@ class AccountSetupActivity : SetupActivity() {
override fun onDone(data: Bundle) { override fun onDone(data: Bundle) {
val account = Account.of( val account = Account.of(
id = AccountId(-1L), id = AccountId(0),
host = data.getString("host", ""), host = data.getString("host", ""),
port = data.getInt("port"), port = data.getInt("port"),
requireSsl = data.getBoolean("require_ssl"), requireSsl = data.getBoolean("require_ssl"),
......
...@@ -77,10 +77,10 @@ ...@@ -77,10 +77,10 @@
app:layout_behavior="@string/bottom_sheet_behavior" app:layout_behavior="@string/bottom_sheet_behavior"
tools:listitem="@layout/widget_nick" /> tools:listitem="@layout/widget_nick" />
<include layout="@layout/layout_toolbar" /> <include android:id="@+id/layout_toolbar" layout="@layout/layout_toolbar" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.fragment.app.FragmentContainerView <fragment
android:id="@+id/fragment_chatline" android:id="@+id/fragment_chatline"
android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment" android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
app:behavior_hideable="false" app:behavior_hideable="false"
app:behavior_peekHeight="?actionBarSize" app:behavior_peekHeight="?actionBarSize"
app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior" app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior"
tools:layout="@layout/chat_chatline" /> tools:layout="@layout/chat_chatline"
tools:ignore="FragmentTagUsage" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
tools:listitem="@layout/widget_nick" /> tools:listitem="@layout/widget_nick" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.fragment.app.FragmentContainerView <fragment
android:id="@+id/fragment_chatline" android:id="@+id/fragment_chatline"
android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment" android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -92,10 +92,11 @@ ...@@ -92,10 +92,11 @@
app:behavior_hideable="false" app:behavior_hideable="false"
app:behavior_peekHeight="?actionBarSize" app:behavior_peekHeight="?actionBarSize"
app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior" app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior"
tools:layout="@layout/chat_chatline" /> tools:layout="@layout/chat_chatline"
tools:ignore="FragmentTagUsage" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
<include layout="@layout/layout_toolbar" /> <include android:id="@+id/layout_toolbar" layout="@layout/layout_toolbar" />
</LinearLayout> </LinearLayout>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:layout="@layout/chat_chatlist" /> tools:layout="@layout/chat_chatlist" />
<include layout="@layout/layout_main" /> <include android:id="@+id/layout_main" layout="@layout/layout_main" />
</LinearLayout> </LinearLayout>
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
......
...@@ -49,5 +49,5 @@ ...@@ -49,5 +49,5 @@
tools:layout="@layout/chat_chatlist" /> tools:layout="@layout/chat_chatlist" />
</de.kuschku.quasseldroid.util.ui.view.NavigationDrawerLayout> </de.kuschku.quasseldroid.util.ui.view.NavigationDrawerLayout>
<include layout="@layout/layout_main" /> <include android:id="@+id/layout_main" layout="@layout/layout_main" />
</androidx.drawerlayout.widget.DrawerLayout> </androidx.drawerlayout.widget.DrawerLayout>
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
tools:listitem="@layout/widget_nick" /> tools:listitem="@layout/widget_nick" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
<androidx.fragment.app.FragmentContainerView <fragment
android:id="@+id/fragment_chatline" android:id="@+id/fragment_chatline"
android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment" android:name="de.kuschku.quasseldroid.ui.chat.input.ChatlineFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -93,10 +93,13 @@ ...@@ -93,10 +93,13 @@
app:behavior_hideable="false" app:behavior_hideable="false"
app:behavior_peekHeight="?actionBarSize" app:behavior_peekHeight="?actionBarSize"
app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior" app:layout_behavior="@string/drag_intercept_bottom_sheet_behavior"
tools:layout="@layout/chat_chatline" /> tools:layout="@layout/chat_chatline"
tools:ignore="FragmentTagUsage" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
<include layout="@layout/layout_toolbar" /> <include
android:id="@+id/layout_toolbar"
layout="@layout/layout_toolbar" />
</LinearLayout> </LinearLayout>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment