2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-08-22 09:58:08 +00:00
Maxim Leshchenko 049cb6d6a6 Add a desktop-like about app page
Show version, authors and useful links
2021-08-21 13:11:55 +00:00

52 lines
1.4 KiB
Kotlin

/*
* SPDX-FileCopyrightText: 2021 Maxim Leshchenko <cnmaks90@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
package org.kde.kdeconnect.UserInterface.About
import android.content.Context
import android.database.DataSetObserver
import android.util.AttributeSet
import android.widget.Adapter
import android.widget.LinearLayout
class AdapterLinearLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : LinearLayout(context, attrs, defStyle) {
var adapter: Adapter? = null
set(adapter) {
if (field !== adapter) {
field = adapter
field?.registerDataSetObserver(dataSetObserver)
reloadChildViews()
}
}
private val dataSetObserver: DataSetObserver = object : DataSetObserver() {
override fun onChanged() {
super.onChanged()
reloadChildViews()
}
}
init {
orientation = VERTICAL
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
adapter?.unregisterDataSetObserver(dataSetObserver)
}
private fun reloadChildViews() {
removeAllViews()
if (adapter != null) {
for (position in 0 until adapter!!.count) {
adapter!!.getView(position, null, this)?.let { addView(it) }
}
requestLayout()
}
}
}