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

Improves editing of settings

parent fe5b929c
Branches
Tags
No related merge requests found
Showing
with 278 additions and 48 deletions
...@@ -62,13 +62,25 @@ ...@@ -62,13 +62,25 @@
android:parentActivityName=".ui.chat.ChatActivity" android:parentActivityName=".ui.chat.ChatActivity"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".ui.coresettings.identity.IdentityActivity" android:name=".ui.coresettings.identity.IdentityCreateActivity"
android:exported="false" android:exported="false"
android:label="@string/settings_identity_title" android:label="@string/settings_identity_title"
android:parentActivityName=".ui.coresettings.CoreSettingsActivity" android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".ui.coresettings.chatlist.ChatListActivity" android:name=".ui.coresettings.identity.IdentityEditActivity"
android:exported="false"
android:label="@string/settings_identity_title"
android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.coresettings.chatlist.ChatlistCreateActivity"
android:exported="false"
android:label="@string/settings_chatlist_title"
android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.coresettings.chatlist.ChatlistEditActivity"
android:exported="false" android:exported="false"
android:label="@string/settings_chatlist_title" android:label="@string/settings_chatlist_title"
android:parentActivityName=".ui.coresettings.CoreSettingsActivity" android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
......
...@@ -22,10 +22,14 @@ import de.kuschku.quasseldroid.ui.clientsettings.license.LicenseSettingsActivity ...@@ -22,10 +22,14 @@ import de.kuschku.quasseldroid.ui.clientsettings.license.LicenseSettingsActivity
import de.kuschku.quasseldroid.ui.clientsettings.license.LicenseSettingsFragmentProvider import de.kuschku.quasseldroid.ui.clientsettings.license.LicenseSettingsFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.CoreSettingsActivity import de.kuschku.quasseldroid.ui.coresettings.CoreSettingsActivity
import de.kuschku.quasseldroid.ui.coresettings.CoreSettingsFragmentProvider import de.kuschku.quasseldroid.ui.coresettings.CoreSettingsFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatListActivity import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistCreateActivity
import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatListFragmentProvider import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistCreateFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityActivity import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistEditActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityFragmentProvider import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistEditFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityCreateActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityCreateFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityEditActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityEditFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.ignoreitem.IgnoreItemActivity import de.kuschku.quasseldroid.ui.coresettings.ignoreitem.IgnoreItemActivity
import de.kuschku.quasseldroid.ui.coresettings.ignoreitem.IgnoreItemFragmentProvider import de.kuschku.quasseldroid.ui.coresettings.ignoreitem.IgnoreItemFragmentProvider
import de.kuschku.quasseldroid.ui.coresettings.ignorelist.IgnoreListActivity import de.kuschku.quasseldroid.ui.coresettings.ignorelist.IgnoreListActivity
...@@ -67,11 +71,17 @@ abstract class ActivityModule { ...@@ -67,11 +71,17 @@ abstract class ActivityModule {
@ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class]) @ContributesAndroidInjector(modules = [CoreSettingsFragmentProvider::class])
abstract fun bindCoreSettingsActivity(): CoreSettingsActivity abstract fun bindCoreSettingsActivity(): CoreSettingsActivity
@ContributesAndroidInjector(modules = [IdentityFragmentProvider::class]) @ContributesAndroidInjector(modules = [IdentityCreateFragmentProvider::class])
abstract fun bindIdentityActivity(): IdentityActivity abstract fun bindIdentityCreateActivity(): IdentityCreateActivity
@ContributesAndroidInjector(modules = [ChatListFragmentProvider::class]) @ContributesAndroidInjector(modules = [IdentityEditFragmentProvider::class])
abstract fun bindChatListActivity(): ChatListActivity abstract fun bindIdentityEditActivity(): IdentityEditActivity
@ContributesAndroidInjector(modules = [ChatlistCreateFragmentProvider::class])
abstract fun bindChatListCreateActivity(): ChatlistCreateActivity
@ContributesAndroidInjector(modules = [ChatlistEditFragmentProvider::class])
abstract fun bindChatListEditActivity(): ChatlistEditActivity
@ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class]) @ContributesAndroidInjector(modules = [IgnoreListFragmentProvider::class])
abstract fun bindIgnoreActivity(): IgnoreListActivity abstract fun bindIgnoreActivity(): IgnoreListActivity
......
...@@ -98,9 +98,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -98,9 +98,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
session.bufferSyncer?.requestRemoveBuffer(info.bufferId) session.bufferSyncer?.requestRemoveBuffer(info.bufferId)
} }
} }
.onAny { _, _ ->
actionMode?.finish()
}
.build() .build()
.show() .show()
actionMode?.finish()
true true
} }
R.id.action_rename -> { R.id.action_rename -> {
...@@ -119,9 +121,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -119,9 +121,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
.negativeColorAttr(R.attr.colorTextPrimary) .negativeColorAttr(R.attr.colorTextPrimary)
.backgroundColorAttr(R.attr.colorBackgroundCard) .backgroundColorAttr(R.attr.colorBackgroundCard)
.contentColorAttr(R.attr.colorTextPrimary) .contentColorAttr(R.attr.colorTextPrimary)
.onAny { _, _ ->
actionMode?.finish()
}
.build() .build()
.show() .show()
actionMode?.finish()
true true
} }
R.id.action_unhide -> { R.id.action_unhide -> {
......
...@@ -24,7 +24,7 @@ import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer ...@@ -24,7 +24,7 @@ import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer
import de.kuschku.quasseldroid.viewmodel.EditorViewModel import de.kuschku.quasseldroid.viewmodel.EditorViewModel
import javax.inject.Inject import javax.inject.Inject
class TopicFragment : SettingsFragment() { class TopicFragment : SettingsFragment(), SettingsFragment.Savable {
@BindView(R.id.chatline) @BindView(R.id.chatline)
lateinit var chatline: RichEditText lateinit var chatline: RichEditText
......
...@@ -9,14 +9,17 @@ import android.support.v7.widget.RecyclerView ...@@ -9,14 +9,17 @@ import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import de.kuschku.libquassel.quassel.syncables.BufferViewConfig import de.kuschku.libquassel.quassel.syncables.BufferViewConfig
import de.kuschku.libquassel.quassel.syncables.Identity import de.kuschku.libquassel.quassel.syncables.Identity
import de.kuschku.libquassel.quassel.syncables.Network import de.kuschku.libquassel.quassel.syncables.Network
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatListActivity import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistCreateActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityActivity import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistEditActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityCreateActivity
import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityEditActivity
import de.kuschku.quasseldroid.ui.coresettings.ignorelist.IgnoreListActivity import de.kuschku.quasseldroid.ui.coresettings.ignorelist.IgnoreListActivity
import de.kuschku.quasseldroid.ui.coresettings.networkconfig.NetworkConfigActivity import de.kuschku.quasseldroid.ui.coresettings.networkconfig.NetworkConfigActivity
import de.kuschku.quasseldroid.util.helper.combineLatest import de.kuschku.quasseldroid.util.helper.combineLatest
...@@ -27,12 +30,21 @@ class CoreSettingsFragment : ServiceBoundFragment() { ...@@ -27,12 +30,21 @@ class CoreSettingsFragment : ServiceBoundFragment() {
@BindView(R.id.networks) @BindView(R.id.networks)
lateinit var networks: RecyclerView lateinit var networks: RecyclerView
@BindView(R.id.new_network)
lateinit var newNetwork: Button
@BindView(R.id.identities) @BindView(R.id.identities)
lateinit var identities: RecyclerView lateinit var identities: RecyclerView
@BindView(R.id.new_identity)
lateinit var newIdentity: Button
@BindView(R.id.chatlists) @BindView(R.id.chatlists)
lateinit var chatlists: RecyclerView lateinit var chatlists: RecyclerView
@BindView(R.id.new_chatlist)
lateinit var newChatlist: Button
@BindView(R.id.ignorelist) @BindView(R.id.ignorelist)
lateinit var ignorelist: View lateinit var ignorelist: View
...@@ -59,11 +71,11 @@ class CoreSettingsFragment : ServiceBoundFragment() { ...@@ -59,11 +71,11 @@ class CoreSettingsFragment : ServiceBoundFragment() {
} }
val identityAdapter = SettingsItemAdapter { val identityAdapter = SettingsItemAdapter {
IdentityActivity.launch(requireContext(), identity = it) IdentityEditActivity.launch(requireContext(), identity = it)
} }
val chatListAdapter = SettingsItemAdapter { val chatListAdapter = SettingsItemAdapter {
ChatListActivity.launch(requireContext(), chatlist = it) ChatlistEditActivity.launch(requireContext(), chatlist = it)
} }
val itemDecoration = DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) val itemDecoration = DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
...@@ -121,6 +133,18 @@ class CoreSettingsFragment : ServiceBoundFragment() { ...@@ -121,6 +133,18 @@ class CoreSettingsFragment : ServiceBoundFragment() {
IgnoreListActivity.launch(requireContext()) IgnoreListActivity.launch(requireContext())
} }
newNetwork.setOnClickListener {
//
}
newIdentity.setOnClickListener {
IdentityCreateActivity.launch(requireContext())
}
newChatlist.setOnClickListener {
ChatlistCreateActivity.launch(requireContext())
}
return view return view
} }
} }
...@@ -4,27 +4,65 @@ import android.os.Bundle ...@@ -4,27 +4,65 @@ import android.os.Bundle
import android.view.Menu import android.view.Menu
import android.view.MenuInflater import android.view.MenuInflater
import android.view.MenuItem import android.view.MenuItem
import com.afollestad.materialdialogs.MaterialDialog
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
abstract class SettingsFragment : ServiceBoundFragment() { abstract class SettingsFragment : ServiceBoundFragment() {
private var saveable: Savable? = null
private var deletable: Deletable? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setHasOptionsMenu(true) setHasOptionsMenu(true)
saveable = this as? Savable
deletable = this as? Deletable
} }
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
inflater?.inflate(R.menu.context_setting, menu) inflater?.inflate(R.menu.context_setting, menu)
menu?.findItem(R.id.action_save)?.isVisible = saveable != null
menu?.findItem(R.id.action_delete)?.isVisible = deletable != null
super.onCreateOptionsMenu(menu, inflater) super.onCreateOptionsMenu(menu, inflater)
} }
override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) { override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
R.id.action_save -> { R.id.action_save -> {
if (onSave()) activity?.finish() saveable?.let {
if (it.onSave()) activity?.finish()
}
true
}
R.id.action_delete -> {
deletable?.let {
MaterialDialog.Builder(activity!!)
.content(R.string.delete_confirmation)
.positiveText(R.string.label_yes)
.negativeText(R.string.label_no)
.negativeColorAttr(R.attr.colorTextPrimary)
.backgroundColorAttr(R.attr.colorBackgroundCard)
.contentColorAttr(R.attr.colorTextPrimary)
.onPositive { _, _ ->
it.onDelete()
requireActivity().finish()
}
.build()
.show()
}
true true
} }
else -> super.onOptionsItemSelected(item) else -> super.onOptionsItemSelected(item)
} }
abstract fun onSave(): Boolean interface Changeable {
fun hasChanged(): Boolean
}
interface Savable {
fun onSave(): Boolean
}
interface Deletable {
fun onDelete()
}
} }
...@@ -25,8 +25,9 @@ import de.kuschku.quasseldroid.util.helper.combineLatest ...@@ -25,8 +25,9 @@ import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import io.reactivex.Observable import io.reactivex.Observable
class ChatListFragment : SettingsFragment() { abstract class ChatListBaseFragment : SettingsFragment(), SettingsFragment.Savable,
private var chatlist: Pair<BufferViewConfig, BufferViewConfig>? = null SettingsFragment.Changeable {
protected var chatlist: Pair<BufferViewConfig?, BufferViewConfig>? = null
@BindView(R.id.buffer_view_name) @BindView(R.id.buffer_view_name)
lateinit var bufferViewName: TextView lateinit var bufferViewName: TextView
...@@ -152,7 +153,22 @@ class ChatListFragment : SettingsFragment() { ...@@ -152,7 +153,22 @@ class ChatListFragment : SettingsFragment() {
return view return view
} }
override fun onSave() = chatlist?.let { (it, data) -> override fun hasChanged() = chatlist?.let { (it, data) ->
applyChanges(data, it)
it == null ||
data.bufferViewName() != it.bufferViewName() ||
data.showSearch() != it.showSearch() ||
data.sortAlphabetically() != it.sortAlphabetically() ||
data.addNewBuffersAutomatically() != it.addNewBuffersAutomatically() ||
data.hideInactiveBuffers() != it.hideInactiveBuffers() ||
data.hideInactiveNetworks() != it.hideInactiveNetworks() ||
data.allowedBufferTypes() != it.allowedBufferTypes() ||
data.networkId() != it.networkId() ||
data.minimumActivity() != it.minimumActivity()
} ?: false
protected fun applyChanges(data: BufferViewConfig, old: BufferViewConfig?) {
data.setBufferViewName(bufferViewName.text.toString()) data.setBufferViewName(bufferViewName.text.toString())
data.setShowSearch(showSearch.isChecked) data.setShowSearch(showSearch.isChecked)
data.setSortAlphabetically(sortAlphabetically.isChecked) data.setSortAlphabetically(sortAlphabetically.isChecked)
...@@ -173,11 +189,10 @@ class ChatListFragment : SettingsFragment() { ...@@ -173,11 +189,10 @@ class ChatListFragment : SettingsFragment() {
data.setNetworkId(networkId.selectedItemId.toInt()) data.setNetworkId(networkId.selectedItemId.toInt())
data.setMinimumActivity(minimumActivity.selectedItemId.toInt()) data.setMinimumActivity(minimumActivity.selectedItemId.toInt())
data.initSetBufferList(it.initBufferList()) if (old != null) {
data.initSetTemporarilyRemovedBuffers(it.initTemporarilyRemovedBuffers()) data.initSetBufferList(old.initBufferList())
data.initSetRemovedBuffers(it.initRemovedBuffers()) data.initSetTemporarilyRemovedBuffers(old.initTemporarilyRemovedBuffers())
data.initSetRemovedBuffers(old.initRemovedBuffers())
it.requestUpdate(data.toVariantMap()) }
true }
} ?: false
} }
package de.kuschku.quasseldroid.ui.coresettings.chatlist
import de.kuschku.libquassel.quassel.syncables.BufferViewConfig
import de.kuschku.libquassel.util.helpers.value
class ChatListCreateFragment : ChatListBaseFragment() {
override fun onSave() = viewModel.session.value?.orNull()?.let { session ->
BufferViewConfig(-1, session.proxy).let { data ->
applyChanges(data, null)
viewModel.bufferViewManager.value?.orNull()?.requestCreateBufferView(data.toVariantMap())
true
}
} ?: false
}
package de.kuschku.quasseldroid.ui.coresettings.chatlist
import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment
class ChatListEditFragment : ChatListBaseFragment(), SettingsFragment.Deletable {
override fun onSave() = chatlist?.let { (it, data) ->
applyChanges(data, it)
it?.requestUpdate(data.toVariantMap())
true
} ?: false
override fun onDelete() {
chatlist?.let { (it, _) ->
it?.let {
viewModel.bufferViewManager.value?.orNull()?.requestDeleteBufferView(it.bufferViewId())
}
}
}
}
package de.kuschku.quasseldroid.ui.coresettings.chatlist
import android.content.Context
import android.content.Intent
import de.kuschku.quasseldroid.util.ui.SettingsActivity
class ChatlistCreateActivity : SettingsActivity(ChatListCreateFragment()) {
companion object {
fun launch(context: Context) = context.startActivity(intent(context))
fun intent(context: Context) = Intent(context, ChatlistCreateActivity::class.java)
}
}
package de.kuschku.quasseldroid.ui.coresettings.chatlist
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class ChatlistCreateFragmentProvider {
@ContributesAndroidInjector
abstract fun bindChatListCreateFragment(): ChatListCreateFragment
}
...@@ -4,7 +4,7 @@ import android.content.Context ...@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import de.kuschku.quasseldroid.util.ui.SettingsActivity import de.kuschku.quasseldroid.util.ui.SettingsActivity
class ChatListActivity : SettingsActivity(ChatListFragment()) { class ChatlistEditActivity : SettingsActivity(ChatListEditFragment()) {
companion object { companion object {
fun launch( fun launch(
context: Context, context: Context,
...@@ -14,7 +14,7 @@ class ChatListActivity : SettingsActivity(ChatListFragment()) { ...@@ -14,7 +14,7 @@ class ChatListActivity : SettingsActivity(ChatListFragment()) {
fun intent( fun intent(
context: Context, context: Context,
chatlist: Int chatlist: Int
) = Intent(context, ChatListActivity::class.java).apply { ) = Intent(context, ChatlistEditActivity::class.java).apply {
putExtra("chatlist", chatlist) putExtra("chatlist", chatlist)
} }
} }
......
...@@ -4,7 +4,7 @@ import dagger.Module ...@@ -4,7 +4,7 @@ import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
@Module @Module
abstract class ChatListFragmentProvider { abstract class ChatlistEditFragmentProvider {
@ContributesAndroidInjector @ContributesAndroidInjector
abstract fun bindChatListFragment(): ChatListFragment abstract fun bindChatListEditFragment(): ChatListEditFragment
} }
...@@ -23,8 +23,10 @@ import de.kuschku.quasseldroid.util.helper.toLiveData ...@@ -23,8 +23,10 @@ import de.kuschku.quasseldroid.util.helper.toLiveData
import io.reactivex.Observable import io.reactivex.Observable
class IdentityFragment : SettingsFragment() { abstract class IdentityBaseFragment : SettingsFragment(), SettingsFragment.Savable,
private var identity: Pair<Identity, Identity>? = null SettingsFragment.Changeable {
protected var identity: Pair<Identity?, Identity>? = null
@BindView(R.id.identity_name) @BindView(R.id.identity_name)
lateinit var identityName: TextView lateinit var identityName: TextView
...@@ -139,7 +141,23 @@ class IdentityFragment : SettingsFragment() { ...@@ -139,7 +141,23 @@ class IdentityFragment : SettingsFragment() {
}.build().show() }.build().show()
} }
override fun onSave() = identity?.let { (it, data) -> override fun hasChanged() = identity?.let { (it, data) ->
applyChanges(data)
it == null ||
data.identityName() != it.identityName() ||
data.realName() != it.realName() ||
data.ident() != it.ident() ||
data.kickReason() != it.kickReason() ||
data.partReason() != it.partReason() ||
data.quitReason() != it.quitReason() ||
data.awayReason() != it.awayReason() ||
data.detachAwayEnabled() != it.detachAwayEnabled() ||
data.detachAwayReason() != it.detachAwayReason() ||
data.nicks() != it.nicks()
} ?: false
protected fun applyChanges(data: Identity) {
data.setIdentityName(identityName.text.toString()) data.setIdentityName(identityName.text.toString())
data.setRealName(realName.text.toString()) data.setRealName(realName.text.toString())
data.setIdent(ident.text.toString()) data.setIdent(ident.text.toString())
...@@ -150,9 +168,5 @@ class IdentityFragment : SettingsFragment() { ...@@ -150,9 +168,5 @@ class IdentityFragment : SettingsFragment() {
data.setDetachAwayEnabled(detachAway.isChecked) data.setDetachAwayEnabled(detachAway.isChecked)
data.setDetachAwayReason(detachAwayReason.text.toString()) data.setDetachAwayReason(detachAwayReason.text.toString())
data.setNicks(adapter.nicks) data.setNicks(adapter.nicks)
}
it.requestUpdate(data.toVariantMap())
true
} ?: false
} }
package de.kuschku.quasseldroid.ui.coresettings.identity
import android.content.Context
import android.content.Intent
import de.kuschku.quasseldroid.util.ui.SettingsActivity
class IdentityCreateActivity : SettingsActivity(IdentityCreateFragment()) {
companion object {
fun launch(context: Context) = context.startActivity(intent(context))
fun intent(context: Context) = Intent(context, IdentityCreateActivity::class.java)
}
}
package de.kuschku.quasseldroid.ui.coresettings.identity
import de.kuschku.libquassel.quassel.syncables.Identity
import de.kuschku.libquassel.util.helpers.value
class IdentityCreateFragment : IdentityBaseFragment() {
override fun onSave() = viewModel.session.value?.orNull()?.let { session ->
Identity(session.proxy).let { data ->
applyChanges(data)
session.rpcHandler?.requestCreateIdentity(data.toVariantMap(), mapOf())
true
}
} ?: false
}
package de.kuschku.quasseldroid.ui.coresettings.identity
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class IdentityCreateFragmentProvider {
@ContributesAndroidInjector
abstract fun bindIdentityCreateFragment(): IdentityCreateFragment
}
...@@ -5,7 +5,7 @@ import android.content.Intent ...@@ -5,7 +5,7 @@ import android.content.Intent
import de.kuschku.libquassel.protocol.IdentityId import de.kuschku.libquassel.protocol.IdentityId
import de.kuschku.quasseldroid.util.ui.SettingsActivity import de.kuschku.quasseldroid.util.ui.SettingsActivity
class IdentityActivity : SettingsActivity(IdentityFragment()) { class IdentityEditActivity : SettingsActivity(IdentityEditFragment()) {
companion object { companion object {
fun launch( fun launch(
context: Context, context: Context,
...@@ -15,7 +15,7 @@ class IdentityActivity : SettingsActivity(IdentityFragment()) { ...@@ -15,7 +15,7 @@ class IdentityActivity : SettingsActivity(IdentityFragment()) {
fun intent( fun intent(
context: Context, context: Context,
identity: IdentityId identity: IdentityId
) = Intent(context, IdentityActivity::class.java).apply { ) = Intent(context, IdentityEditActivity::class.java).apply {
putExtra("identity", identity) putExtra("identity", identity)
} }
} }
......
package de.kuschku.quasseldroid.ui.coresettings.identity
import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment
class IdentityEditFragment : IdentityBaseFragment(), SettingsFragment.Deletable {
override fun onSave() = identity?.let { (it, data) ->
applyChanges(data)
it?.requestUpdate(data.toVariantMap())
true
} ?: false
override fun onDelete() {
identity?.let { (it, _) ->
it?.let {
viewModel.session.value?.orNull()?.rpcHandler?.requestRemoveIdentity(it.id())
}
}
}
}
...@@ -4,7 +4,7 @@ import dagger.Module ...@@ -4,7 +4,7 @@ import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
@Module @Module
abstract class IdentityFragmentProvider { abstract class IdentityEditFragmentProvider {
@ContributesAndroidInjector @ContributesAndroidInjector
abstract fun bindIdentityFragment(): IdentityFragment abstract fun bindIdentityEditFragment(): IdentityEditFragment
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment