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

Bugfixes

parent b01cba18
Branches
Tags
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,9 +302,11 @@ 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 {
config.minimumActivity().value <= it.activity.bit ||
......
......@@ -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