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

Bugfixes

parent b01cba18
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,16 @@
# The project is GPL anyway, obfuscation is useless.
-dontobfuscate
# Keep our invokers
-keep class * implements de.kuschku.libquassel.quassel.syncables.interfaces.invokers.Invoker {
static ** INSTANCE;
}
# remove unnecessary warnings
# Android HTTP Libs
-dontnote android.net.http.**
-dontnote org.apache.http.**
# Kotlin stuff
-dontnote kotlin.**
# Gson
-dontnote com.google.gson.**
\ No newline at end of file
......@@ -18,7 +18,7 @@ import de.kuschku.quasseldroid_ng.util.ui.RecyclerSpinnerAdapter
class BufferViewConfigAdapter(
lifecycleOwner: LifecycleOwner,
liveData: LiveData<List<BufferViewConfig>>
liveData: LiveData<List<BufferViewConfig>?>
) : RecyclerSpinnerAdapter<BufferViewConfigAdapter.BufferViewConfigViewHolder>(),
ThemedSpinnerAdapter {
val data = mutableListOf<BufferViewConfig>()
......
package de.kuschku.quasseldroid_ng.ui.chat
import android.arch.lifecycle.LiveData
import android.arch.paging.PagedListAdapter
import android.content.Context
import android.support.v7.recyclerview.extensions.DiffCallback
......@@ -16,7 +15,6 @@ import de.kuschku.quasseldroid_ng.util.helper.getOrPut
class MessageAdapter(
context: Context,
private val markerLine: LiveData<Pair<MsgId, MsgId>?>,
var markerLinePosition: Pair<MsgId, MsgId>? = null
) : PagedListAdapter<QuasselDatabase.DatabaseMessage, QuasselMessageViewHolder>(
object : DiffCallback<QuasselDatabase.DatabaseMessage>() {
......@@ -51,13 +49,13 @@ class MessageAdapter(
getItem(position)?.let {
messageRenderer.bind(
holder,
if (it.messageId == markerLine.value?.second || it.messageId == markerLine.value?.first) {
val value = messageRenderer.render(it, markerLine.value?.second ?: -1)
if (it.messageId == markerLinePosition?.second || it.messageId == markerLinePosition?.first) {
val value = messageRenderer.render(it, markerLinePosition?.second ?: -1)
messageCache.put(it.messageId, value)
value
} else {
messageCache.getOrPut(it.messageId) {
messageRenderer.render(it, markerLine.value?.second ?: -1)
messageRenderer.render(it, markerLinePosition?.second ?: -1)
}
}
)
......
......@@ -17,8 +17,6 @@ import butterknife.ButterKnife
import de.kuschku.libquassel.protocol.BufferId
import de.kuschku.libquassel.session.Backend
import de.kuschku.libquassel.session.SessionManager
import de.kuschku.libquassel.util.compatibility.LoggingHandler
import de.kuschku.libquassel.util.compatibility.log
import de.kuschku.quasseldroid_ng.R
import de.kuschku.quasseldroid_ng.persistence.QuasselDatabase
import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel
......@@ -69,7 +67,7 @@ class MessageListFragment : ServiceBoundFragment() {
val view = inflater.inflate(R.layout.fragment_messages, container, false)
ButterKnife.bind(this, view)
adapter = MessageAdapter(context!!, viewModel.markerLine)
adapter = MessageAdapter(context!!)
messageList.adapter = adapter
linearLayoutManager = LinearLayoutManager(context)
linearLayoutManager.reverseLayout = true
......@@ -106,11 +104,11 @@ class MessageListFragment : ServiceBoundFragment() {
handler.post {
val database = QuasselDatabase.Creator.init(this.context!!)
sessionManager.zip(viewModel.getBuffer()).zip(data).observe(
sessionManager.zip(viewModel.getBuffer(), data).observe(
this, Observer {
handler.post {
val session = it?.first?.first
val buffer = it?.first?.second
val session = it?.first
val buffer = it?.second
val bufferSyncer = session?.bufferSyncer
if (buffer != null && bufferSyncer != null) {
......@@ -128,7 +126,6 @@ class MessageListFragment : ServiceBoundFragment() {
viewModel.markerLine.observe(
this, Observer {
log(LoggingHandler.LogLevel.ERROR, "DEBUG", "$it")
adapter.markerLinePosition = it
adapter.notifyDataSetChanged()
}
......@@ -140,12 +137,12 @@ class MessageListFragment : ServiceBoundFragment() {
adapter.setList(list)
if (firstVisibleItemPosition < 2) {
activity?.runOnUiThread {
messageList.smoothScrollToPosition(0)
messageList.scrollToPosition(0)
}
handler.postDelayed(
{
activity?.runOnUiThread {
messageList.smoothScrollToPosition(0)
messageList.scrollToPosition(0)
}
}, 16
)
......
......@@ -19,9 +19,13 @@ import de.kuschku.libquassel.util.hasFlag
import de.kuschku.quasseldroid_ng.ui.chat.BufferListAdapter
import de.kuschku.quasseldroid_ng.ui.chat.NickListAdapter
import de.kuschku.quasseldroid_ng.ui.chat.ToolbarFragment
import de.kuschku.quasseldroid_ng.util.helper.*
import de.kuschku.quasseldroid_ng.util.helper.map
import de.kuschku.quasseldroid_ng.util.helper.switchMap
import de.kuschku.quasseldroid_ng.util.helper.switchMapRx
import de.kuschku.quasseldroid_ng.util.helper.zip
import io.reactivex.Observable
import io.reactivex.functions.BiFunction
import io.reactivex.functions.Function
import java.util.concurrent.TimeUnit
class QuasselViewModel : ViewModel() {
......@@ -200,13 +204,9 @@ class QuasselViewModel : ViewModel() {
manager.liveBufferViewConfigs().map { ids ->
ids.mapNotNull { id ->
manager.bufferViewConfig(id)
}.sortedWith(
Comparator { a, b ->
(a?.bufferViewName() ?: "").compareTo((b?.bufferViewName() ?: ""), true)
}.sortedWith(BufferViewConfig.NameComparator)
}
)
}
}.or(emptyList())
val bufferList = session.zip(bufferViewConfig).switchMapRx { (session, config) ->
val bufferSyncer = session?.bufferSyncer
......@@ -302,8 +302,10 @@ class QuasselViewModel : ViewModel() {
)
}
}
}, { array: Array<Any> ->
array.toList() as List<BufferListAdapter.BufferProps>
}, object : Function<Array<Any>, List<BufferListAdapter.BufferProps>> {
override fun apply(objects: Array<Any>): List<BufferListAdapter.BufferProps> {
return objects.toList() as List<BufferListAdapter.BufferProps>
}
}
).map { list ->
list.filter {
......
......@@ -248,4 +248,9 @@ class BufferViewConfig constructor(
val live_temporarilyRemovedBuffers: BehaviorSubject<Set<BufferId>>
= BehaviorSubject.createDefault<Set<BufferId>>(emptySet())
object NameComparator : Comparator<BufferViewConfig> {
override fun compare(a: BufferViewConfig?, b: BufferViewConfig?)
= (a?.bufferViewName() ?: "").compareTo((b?.bufferViewName() ?: ""), true)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment