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

Improved info UI

parent e1639388
Branches
Tags
No related merge requests found
Showing
with 77 additions and 115 deletions
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".ui.chat.detailinfo.InfoActivity" android:name=".ui.chat.info.InfoActivity"
android:exported="false" android:exported="false"
android:label="@string/label_details" android:label="@string/label_details"
android:parentActivityName=".ui.chat.ChatActivity" android:parentActivityName=".ui.chat.ChatActivity"
......
...@@ -6,7 +6,8 @@ import de.kuschku.quasseldroid.service.QuasselService ...@@ -6,7 +6,8 @@ import de.kuschku.quasseldroid.service.QuasselService
import de.kuschku.quasseldroid.ui.chat.ChatActivity import de.kuschku.quasseldroid.ui.chat.ChatActivity
import de.kuschku.quasseldroid.ui.chat.ChatActivityModule import de.kuschku.quasseldroid.ui.chat.ChatActivityModule
import de.kuschku.quasseldroid.ui.chat.ChatFragmentProvider import de.kuschku.quasseldroid.ui.chat.ChatFragmentProvider
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoActivity import de.kuschku.quasseldroid.ui.chat.info.InfoActivity
import de.kuschku.quasseldroid.ui.chat.info.InfoFragmentProvider
import de.kuschku.quasseldroid.ui.settings.about.AboutSettingsActivity import de.kuschku.quasseldroid.ui.settings.about.AboutSettingsActivity
import de.kuschku.quasseldroid.ui.settings.about.AboutSettingsFragmentProvider import de.kuschku.quasseldroid.ui.settings.about.AboutSettingsFragmentProvider
import de.kuschku.quasseldroid.ui.settings.app.AppSettingsActivity import de.kuschku.quasseldroid.ui.settings.app.AppSettingsActivity
...@@ -26,7 +27,7 @@ abstract class ActivityModule { ...@@ -26,7 +27,7 @@ abstract class ActivityModule {
@ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class]) @ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class])
abstract fun bindChatActivity(): ChatActivity abstract fun bindChatActivity(): ChatActivity
@ContributesAndroidInjector @ContributesAndroidInjector(modules = [InfoFragmentProvider::class])
abstract fun bindInfoActivity(): InfoActivity abstract fun bindInfoActivity(): InfoActivity
@ContributesAndroidInjector(modules = [AppSettingsFragmentProvider::class]) @ContributesAndroidInjector(modules = [AppSettingsFragmentProvider::class])
......
...@@ -2,7 +2,6 @@ package de.kuschku.quasseldroid.ui.chat ...@@ -2,7 +2,6 @@ package de.kuschku.quasseldroid.ui.chat
import android.annotation.TargetApi import android.annotation.TargetApi
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
...@@ -42,7 +41,6 @@ import de.kuschku.quasseldroid.util.helper.retint ...@@ -42,7 +41,6 @@ import de.kuschku.quasseldroid.util.helper.retint
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.service.ServiceBoundActivity import de.kuschku.quasseldroid.util.service.ServiceBoundActivity
import de.kuschku.quasseldroid.util.ui.MaterialContentLoadingProgressBar import de.kuschku.quasseldroid.util.ui.MaterialContentLoadingProgressBar
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import de.kuschku.quasseldroid.viewmodel.data.AutoCompleteItem import de.kuschku.quasseldroid.viewmodel.data.AutoCompleteItem
import javax.inject.Inject import javax.inject.Inject
...@@ -67,8 +65,6 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -67,8 +65,6 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
private lateinit var drawerToggle: ActionBarDrawerToggle private lateinit var drawerToggle: ActionBarDrawerToggle
private lateinit var viewModel: QuasselViewModel
@Inject @Inject
lateinit var database: QuasselDatabase lateinit var database: QuasselDatabase
...@@ -101,9 +97,6 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc ...@@ -101,9 +97,6 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
ButterKnife.bind(this) ButterKnife.bind(this)
viewModel = ViewModelProviders.of(this)[QuasselViewModel::class.java]
viewModel.backendWrapper.onNext(this.backend)
editor = Editor( editor = Editor(
this, this,
viewModel.autoCompleteData.toLiveData(), viewModel.autoCompleteData.toLiveData(),
......
package de.kuschku.quasseldroid.ui.chat package de.kuschku.quasseldroid.ui.chat
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
...@@ -17,16 +15,15 @@ import de.kuschku.libquassel.util.hasFlag ...@@ -17,16 +15,15 @@ import de.kuschku.libquassel.util.hasFlag
import de.kuschku.libquassel.util.helpers.value import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.AppearanceSettings
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoActivity import de.kuschku.quasseldroid.ui.chat.info.InfoActivity
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoDescriptor import de.kuschku.quasseldroid.ui.chat.info.InfoDescriptor
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoType import de.kuschku.quasseldroid.ui.chat.info.InfoType
import de.kuschku.quasseldroid.util.helper.combineLatest import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.helper.visibleIf import de.kuschku.quasseldroid.util.helper.visibleIf
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.util.ui.SpanFormatter import de.kuschku.quasseldroid.util.ui.SpanFormatter
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import javax.inject.Inject import javax.inject.Inject
class ToolbarFragment : ServiceBoundFragment() { class ToolbarFragment : ServiceBoundFragment() {
...@@ -45,8 +42,6 @@ class ToolbarFragment : ServiceBoundFragment() { ...@@ -45,8 +42,6 @@ class ToolbarFragment : ServiceBoundFragment() {
@Inject @Inject
lateinit var appearanceSettings: AppearanceSettings lateinit var appearanceSettings: AppearanceSettings
private lateinit var viewModel: QuasselViewModel
var title: CharSequence? var title: CharSequence?
get() = toolbarTitle.text get() = toolbarTitle.text
set(value) { set(value) {
...@@ -63,11 +58,6 @@ class ToolbarFragment : ServiceBoundFragment() { ...@@ -63,11 +58,6 @@ class ToolbarFragment : ServiceBoundFragment() {
toolbarSubtitle.visibleIf(value?.isNotEmpty() == true) toolbarSubtitle.visibleIf(value?.isNotEmpty() == true)
} }
override fun onAttach(context: Context?) {
super.onAttach(context)
viewModel = ViewModelProviders.of(activity!!)[QuasselViewModel::class.java]
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
......
package de.kuschku.quasseldroid.ui.chat.buffers package de.kuschku.quasseldroid.ui.chat.buffers
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.support.v7.widget.* import android.support.v7.widget.*
import android.view.* import android.view.*
...@@ -26,7 +24,6 @@ import de.kuschku.quasseldroid.util.helper.toLiveData ...@@ -26,7 +24,6 @@ import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.helper.zip import de.kuschku.quasseldroid.util.helper.zip
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import de.kuschku.quasseldroid.viewmodel.data.BufferHiddenState import de.kuschku.quasseldroid.viewmodel.data.BufferHiddenState
import javax.inject.Inject import javax.inject.Inject
...@@ -49,8 +46,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -49,8 +46,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
@Inject @Inject
lateinit var ircFormatDeserializer: IrcFormatDeserializer lateinit var ircFormatDeserializer: IrcFormatDeserializer
private lateinit var viewModel: QuasselViewModel
private var actionMode: ActionMode? = null private var actionMode: ActionMode? = null
private val actionModeCallback = object : ActionMode.Callback { private val actionModeCallback = object : ActionMode.Callback {
...@@ -162,11 +157,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -162,11 +157,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
private lateinit var listAdapter: BufferListAdapter private lateinit var listAdapter: BufferListAdapter
override fun onAttach(context: Context?) {
super.onAttach(context)
viewModel = ViewModelProviders.of(activity!!)[QuasselViewModel::class.java]
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
......
package de.kuschku.quasseldroid.ui.chat.info
import de.kuschku.quasseldroid.ui.settings.SettingsActivity
class InfoActivity : SettingsActivity(InfoFragment())
\ No newline at end of file
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
import de.kuschku.libquassel.quassel.syncables.IrcChannel import de.kuschku.libquassel.quassel.syncables.IrcChannel
import de.kuschku.libquassel.quassel.syncables.IrcUser import de.kuschku.libquassel.quassel.syncables.IrcUser
......
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
import java.io.Serializable import java.io.Serializable
......
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.os.Bundle import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
import android.support.v7.widget.Toolbar import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import de.kuschku.libquassel.util.Optional import de.kuschku.libquassel.util.Optional
import de.kuschku.libquassel.util.compatibility.LoggingHandler 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.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.ContentFormatter
import de.kuschku.quasseldroid.util.service.ServiceBoundActivity import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import de.kuschku.quasseldroid.viewmodel.data.InfoGroup import de.kuschku.quasseldroid.viewmodel.data.InfoGroup
import de.kuschku.quasseldroid.viewmodel.data.InfoProperty import de.kuschku.quasseldroid.viewmodel.data.InfoProperty
import io.reactivex.Observable import io.reactivex.Observable
import javax.inject.Inject import javax.inject.Inject
class InfoActivity : ServiceBoundActivity() { class InfoFragment : ServiceBoundFragment() {
@BindView(R.id.toolbar)
lateinit var toolbar: Toolbar
@BindView(R.id.groups) @BindView(R.id.groups)
lateinit var groups: RecyclerView lateinit var groups: RecyclerView
@Inject @Inject
lateinit var contentFormatter: ContentFormatter lateinit var contentFormatter: ContentFormatter
private lateinit var viewModel: QuasselViewModel override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
override fun onCreate(savedInstanceState: Bundle?) { val view = inflater.inflate(R.layout.fragment_info, container, false)
super.onCreate(savedInstanceState) ButterKnife.bind(this, view)
setContentView(R.layout.activity_info)
ButterKnife.bind(this)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
viewModel = ViewModelProviders.of(this)[QuasselViewModel::class.java]
viewModel.backendWrapper.onNext(this.backend)
val adapter = InfoGroupAdapter() val adapter = InfoGroupAdapter()
groups.layoutManager = LinearLayoutManager(this) groups.layoutManager = LinearLayoutManager(requireContext())
groups.adapter = adapter groups.adapter = adapter
val info = intent.getSerializableExtra("info") as? InfoDescriptor val info = arguments?.getSerializable("info") as? InfoDescriptor
viewModel.session.switchMap { sessionOptional -> viewModel.session.switchMap { sessionOptional ->
val network = sessionOptional.orNull()?.networks?.get(info?.network) val network = sessionOptional.orNull()?.networks?.get(info?.network)
if (info == null || network == null) { if (info == null || network == null) {
...@@ -80,7 +68,7 @@ class InfoActivity : ServiceBoundActivity() { ...@@ -80,7 +68,7 @@ class InfoActivity : ServiceBoundActivity() {
), ),
InfoProperty( InfoProperty(
name = "Real Name", name = "Real Name",
value = contentFormatter.format(this, user.realName()) value = contentFormatter.format(requireContext(), user.realName())
), ),
InfoProperty( InfoProperty(
name = "Account", name = "Account",
...@@ -101,10 +89,11 @@ class InfoActivity : ServiceBoundActivity() { ...@@ -101,10 +89,11 @@ class InfoActivity : ServiceBoundActivity() {
network = network, network = network,
properties = listOf( properties = listOf(
InfoGroup( InfoGroup(
name = "Channel",
properties = listOf( properties = listOf(
InfoProperty( InfoProperty(
name = "Topic", name = "Topic",
value = contentFormatter.format(this, channel.topic()) value = contentFormatter.format(requireContext(), channel.topic())
) )
) )
) )
...@@ -123,10 +112,10 @@ class InfoActivity : ServiceBoundActivity() { ...@@ -123,10 +112,10 @@ class InfoActivity : ServiceBoundActivity() {
} }
} }
}.toLiveData().observe(this, Observer { }.toLiveData().observe(this, Observer {
log(LoggingHandler.LogLevel.ERROR, "DEBUG", "data: $it") LoggingHandler.log(LoggingHandler.LogLevel.ERROR, "DEBUG", "data: $it")
adapter.submitList(it?.orNull()?.properties.orEmpty()) adapter.submitList(it?.orNull()?.properties.orEmpty())
}) })
viewModel.buffer.onNext(intent.getIntExtra("buffer", -1)) return view
} }
} }
\ No newline at end of file
package de.kuschku.quasseldroid.ui.chat.info
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class InfoFragmentProvider {
@ContributesAndroidInjector
abstract fun bindInfoFragment(): InfoFragment
}
\ No newline at end of file
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
import android.support.v7.recyclerview.extensions.ListAdapter import android.support.v7.recyclerview.extensions.ListAdapter
import android.support.v7.util.DiffUtil import android.support.v7.util.DiffUtil
import android.support.v7.widget.DividerItemDecoration
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater import android.view.LayoutInflater
...@@ -11,7 +12,6 @@ import android.widget.TextView ...@@ -11,7 +12,6 @@ import android.widget.TextView
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.util.helper.visibleIf
import de.kuschku.quasseldroid.viewmodel.data.InfoGroup import de.kuschku.quasseldroid.viewmodel.data.InfoGroup
class InfoGroupAdapter : class InfoGroupAdapter :
...@@ -33,9 +33,6 @@ class InfoGroupAdapter : ...@@ -33,9 +33,6 @@ class InfoGroupAdapter :
holder.bind(getItem(position)) holder.bind(getItem(position))
class InfoGroupViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { class InfoGroupViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
@BindView(R.id.title_container)
lateinit var titleContainer: View
@BindView(R.id.title) @BindView(R.id.title)
lateinit var title: TextView lateinit var title: TextView
...@@ -51,12 +48,13 @@ class InfoGroupAdapter : ...@@ -51,12 +48,13 @@ class InfoGroupAdapter :
properties.layoutManager = LinearLayoutManager(itemView.context) properties.layoutManager = LinearLayoutManager(itemView.context)
properties.adapter = adapter properties.adapter = adapter
properties.addItemDecoration(
DividerItemDecoration(itemView.context, DividerItemDecoration.VERTICAL)
)
} }
fun bind(item: InfoGroup) { fun bind(item: InfoGroup) {
title.text = item.name title.text = item.name
titleContainer.visibleIf(item.name != null)
adapter.submitList(item.properties) adapter.submitList(item.properties)
} }
} }
......
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
import android.support.v7.recyclerview.extensions.ListAdapter import android.support.v7.recyclerview.extensions.ListAdapter
import android.support.v7.util.DiffUtil import android.support.v7.util.DiffUtil
import android.support.v7.widget.AppCompatImageView
import android.support.v7.widget.RecyclerView 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.ImageView
import android.widget.TextView import android.widget.TextView
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
...@@ -33,8 +33,11 @@ class InfoPropertyAdapter : ...@@ -33,8 +33,11 @@ class InfoPropertyAdapter :
holder.bind(getItem(position)) holder.bind(getItem(position))
class InfoPropertyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { class InfoPropertyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
@BindView(R.id.icon_frame)
lateinit var iconFrame: View
@BindView(R.id.icon) @BindView(R.id.icon)
lateinit var icon: AppCompatImageView lateinit var icon: ImageView
@BindView(R.id.name) @BindView(R.id.name)
lateinit var name: TextView lateinit var name: TextView
...@@ -52,7 +55,7 @@ class InfoPropertyAdapter : ...@@ -52,7 +55,7 @@ class InfoPropertyAdapter :
name.text = item.name name.text = item.name
value.text = item.value value.text = item.value
icon.visibleIf(item.icon != null) iconFrame.visibleIf(item.icon != null)
} }
} }
} }
\ No newline at end of file
package de.kuschku.quasseldroid.ui.chat.detailinfo package de.kuschku.quasseldroid.ui.chat.info
enum class InfoType { enum class InfoType {
User, User,
......
package de.kuschku.quasseldroid.ui.chat.messages package de.kuschku.quasseldroid.ui.chat.messages
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.arch.paging.LivePagedListBuilder import android.arch.paging.LivePagedListBuilder
import android.arch.paging.PagedList import android.arch.paging.PagedList
import android.content.ClipData import android.content.ClipData
...@@ -27,7 +26,6 @@ import de.kuschku.quasseldroid.settings.BacklogSettings ...@@ -27,7 +26,6 @@ import de.kuschku.quasseldroid.settings.BacklogSettings
import de.kuschku.quasseldroid.util.helper.* import de.kuschku.quasseldroid.util.helper.*
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.util.ui.SpanFormatter import de.kuschku.quasseldroid.util.ui.SpanFormatter
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import io.reactivex.BackpressureStrategy import io.reactivex.BackpressureStrategy
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import javax.inject.Inject import javax.inject.Inject
...@@ -54,8 +52,6 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -54,8 +52,6 @@ class MessageListFragment : ServiceBoundFragment() {
@Inject @Inject
lateinit var messageRenderer: QuasselMessageRenderer lateinit var messageRenderer: QuasselMessageRenderer
private lateinit var viewModel: QuasselViewModel
private lateinit var linearLayoutManager: LinearLayoutManager private lateinit var linearLayoutManager: LinearLayoutManager
private lateinit var adapter: MessageAdapter private lateinit var adapter: MessageAdapter
...@@ -125,11 +121,6 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -125,11 +121,6 @@ class MessageListFragment : ServiceBoundFragment() {
} }
} }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProviders.of(activity!!)[QuasselViewModel::class.java]
}
private val boundaryCallback = object : private val boundaryCallback = object :
PagedList.BoundaryCallback<DisplayMessage>() { PagedList.BoundaryCallback<DisplayMessage>() {
override fun onItemAtFrontLoaded(itemAtFront: DisplayMessage) = Unit override fun onItemAtFrontLoaded(itemAtFront: DisplayMessage) = Unit
......
package de.kuschku.quasseldroid.ui.chat.nicks package de.kuschku.quasseldroid.ui.chat.nicks
import android.arch.lifecycle.Observer import android.arch.lifecycle.Observer
import android.arch.lifecycle.ViewModelProviders
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.support.v7.widget.DefaultItemAnimator import android.support.v7.widget.DefaultItemAnimator
...@@ -17,18 +16,15 @@ import de.kuschku.libquassel.util.helpers.value ...@@ -17,18 +16,15 @@ import de.kuschku.libquassel.util.helpers.value
import de.kuschku.libquassel.util.irc.IrcCaseMappers import de.kuschku.libquassel.util.irc.IrcCaseMappers
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.AppearanceSettings
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoActivity import de.kuschku.quasseldroid.ui.chat.info.InfoActivity
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoDescriptor import de.kuschku.quasseldroid.ui.chat.info.InfoDescriptor
import de.kuschku.quasseldroid.ui.chat.detailinfo.InfoType import de.kuschku.quasseldroid.ui.chat.info.InfoType
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import javax.inject.Inject import javax.inject.Inject
class NickListFragment : ServiceBoundFragment() { class NickListFragment : ServiceBoundFragment() {
private lateinit var viewModel: QuasselViewModel
@BindView(R.id.nickList) @BindView(R.id.nickList)
lateinit var nickList: RecyclerView lateinit var nickList: RecyclerView
...@@ -38,12 +34,6 @@ class NickListFragment : ServiceBoundFragment() { ...@@ -38,12 +34,6 @@ class NickListFragment : ServiceBoundFragment() {
@Inject @Inject
lateinit var ircFormatDeserializer: IrcFormatDeserializer lateinit var ircFormatDeserializer: IrcFormatDeserializer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProviders.of(activity!!)[QuasselViewModel::class.java]
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? { savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_nick_list, container, false) val view = inflater.inflate(R.layout.fragment_nick_list, container, false)
......
...@@ -15,6 +15,7 @@ abstract class SettingsActivity(private val fragment: Fragment? = null) : Servic ...@@ -15,6 +15,7 @@ abstract class SettingsActivity(private val fragment: Fragment? = null) : Servic
lateinit var toolbar: Toolbar lateinit var toolbar: Toolbar
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
val arguments = intent.extras
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings) setContentView(R.layout.activity_settings)
ButterKnife.bind(this) ButterKnife.bind(this)
...@@ -26,6 +27,7 @@ abstract class SettingsActivity(private val fragment: Fragment? = null) : Servic ...@@ -26,6 +27,7 @@ abstract class SettingsActivity(private val fragment: Fragment? = null) : Servic
if (fragment != null) { if (fragment != null) {
val transaction = supportFragmentManager.beginTransaction() val transaction = supportFragmentManager.beginTransaction()
fragment.arguments = arguments
transaction.replace(R.id.fragment_container, fragment) transaction.replace(R.id.fragment_container, fragment)
transaction.commit() transaction.commit()
} }
......
package de.kuschku.quasseldroid.ui.settings.license package de.kuschku.quasseldroid.ui.settings.license
import android.os.Bundle
import de.kuschku.quasseldroid.ui.settings.SettingsActivity import de.kuschku.quasseldroid.ui.settings.SettingsActivity
class LicenseSettingsActivity : SettingsActivity() { class LicenseSettingsActivity : SettingsActivity()
private lateinit var arguments: Bundle \ No newline at end of file
override fun onCreate(savedInstanceState: Bundle?) {
arguments = intent.extras
super.onCreate(savedInstanceState)
}
override fun fragment(): LicenseSettingsFragment {
val fragment = LicenseSettingsFragment()
fragment.arguments = arguments
return fragment
}
}
\ No newline at end of file
...@@ -44,9 +44,7 @@ class AccountSelectionSlide : SlideFragment() { ...@@ -44,9 +44,7 @@ class AccountSelectionSlide : SlideFragment() {
savedInstanceState: Bundle?): View { savedInstanceState: Bundle?): View {
val view = inflater.inflate(R.layout.setup_select_account, container, false) val view = inflater.inflate(R.layout.setup_select_account, container, false)
ButterKnife.bind(this, view) ButterKnife.bind(this, view)
val accountViewModel = ViewModelProviders.of(this).get( val accountViewModel = ViewModelProviders.of(this).get(AccountViewModel::class.java)
AccountViewModel::class.java
)
val firstObserver = object : Observer<List<AccountDatabase.Account>?> { val firstObserver = object : Observer<List<AccountDatabase.Account>?> {
override fun onChanged(t: List<AccountDatabase.Account>?) { override fun onChanged(t: List<AccountDatabase.Account>?) {
if (t?.isEmpty() != false) if (t?.isEmpty() != false)
......
package de.kuschku.quasseldroid.util.service package de.kuschku.quasseldroid.util.service
import android.app.Activity import android.app.Activity
import android.arch.lifecycle.ViewModelProviders
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
...@@ -25,6 +26,7 @@ import de.kuschku.quasseldroid.settings.Settings ...@@ -25,6 +26,7 @@ import de.kuschku.quasseldroid.settings.Settings
import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity
import de.kuschku.quasseldroid.util.helper.sharedPreferences import de.kuschku.quasseldroid.util.helper.sharedPreferences
import de.kuschku.quasseldroid.util.helper.updateRecentsHeaderIfExisting import de.kuschku.quasseldroid.util.helper.updateRecentsHeaderIfExisting
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import io.reactivex.subjects.BehaviorSubject import io.reactivex.subjects.BehaviorSubject
import javax.inject.Inject import javax.inject.Inject
...@@ -77,6 +79,8 @@ abstract class ServiceBoundActivity : AppCompatActivity(), ...@@ -77,6 +79,8 @@ abstract class ServiceBoundActivity : AppCompatActivity(),
@Inject @Inject
lateinit var connectionSettings: ConnectionSettings lateinit var connectionSettings: ConnectionSettings
protected lateinit var viewModel: QuasselViewModel
protected var accountId: Long = -1 protected var accountId: Long = -1
private var startedSelection = false private var startedSelection = false
...@@ -88,6 +92,9 @@ abstract class ServiceBoundActivity : AppCompatActivity(), ...@@ -88,6 +92,9 @@ abstract class ServiceBoundActivity : AppCompatActivity(),
checkConnection() checkConnection()
viewModel = ViewModelProviders.of(this)[QuasselViewModel::class.java]
viewModel.backendWrapper.onNext(this.backend)
setTheme(appearanceSettings.theme.style) setTheme(appearanceSettings.theme.style)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
updateRecentsHeader() updateRecentsHeader()
......
package de.kuschku.quasseldroid.util.service package de.kuschku.quasseldroid.util.service
import android.arch.lifecycle.ViewModelProviders
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
import de.kuschku.libquassel.session.Backend import de.kuschku.libquassel.session.Backend
import de.kuschku.libquassel.util.Optional import de.kuschku.libquassel.util.Optional
import de.kuschku.quasseldroid.Keys import de.kuschku.quasseldroid.Keys
import de.kuschku.quasseldroid.viewmodel.QuasselViewModel
import io.reactivex.subjects.BehaviorSubject import io.reactivex.subjects.BehaviorSubject
abstract class ServiceBoundFragment : DaggerFragment() { abstract class ServiceBoundFragment : DaggerFragment() {
...@@ -13,6 +15,8 @@ abstract class ServiceBoundFragment : DaggerFragment() { ...@@ -13,6 +15,8 @@ abstract class ServiceBoundFragment : DaggerFragment() {
protected val backend: BehaviorSubject<Optional<Backend>> protected val backend: BehaviorSubject<Optional<Backend>>
get() = connection.backend get() = connection.backend
protected lateinit var viewModel: QuasselViewModel
protected fun runInBackground(f: () -> Unit) { protected fun runInBackground(f: () -> Unit) {
connection.backend.value.ifPresent { connection.backend.value.ifPresent {
it.sessionManager().handlerService.backend(f) it.sessionManager().handlerService.backend(f)
...@@ -27,6 +31,11 @@ abstract class ServiceBoundFragment : DaggerFragment() { ...@@ -27,6 +31,11 @@ abstract class ServiceBoundFragment : DaggerFragment() {
protected var accountId: Long = -1 protected var accountId: Long = -1
override fun onAttach(context: Context?) {
super.onAttach(context)
viewModel = ViewModelProviders.of(requireActivity())[QuasselViewModel::class.java]
}
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
accountId = context?.getSharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) accountId = context?.getSharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE)
?.getLong(Keys.Status.selectedAccount, -1) ?: -1 ?.getLong(Keys.Status.selectedAccount, -1) ?: -1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment