mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-27 15:11:13 -04:00
Use of ViewGroup Extention function to inflate layout, Removed unused variable
This commit is contained in:
parent
119f75ecde
commit
40efd947fc
@ -504,12 +504,12 @@ public abstract class CoreReaderFragment extends BaseFragment
|
|||||||
private TableDrawerAdapter setupTableDrawerAdapter() {
|
private TableDrawerAdapter setupTableDrawerAdapter() {
|
||||||
TableDrawerAdapter tableDrawerAdapter =
|
TableDrawerAdapter tableDrawerAdapter =
|
||||||
new TableDrawerAdapter(new TableDrawerAdapter.TableClickListener() {
|
new TableDrawerAdapter(new TableDrawerAdapter.TableClickListener() {
|
||||||
@Override public void onHeaderClick(@NotNull View view) {
|
@Override public void onHeaderClick(View view) {
|
||||||
getCurrentWebView().setScrollY(0);
|
getCurrentWebView().setScrollY(0);
|
||||||
drawerLayout.closeDrawer(GravityCompat.END);
|
drawerLayout.closeDrawer(GravityCompat.END);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void onSectionClick(@NotNull View view, int position) {
|
@Override public void onSectionClick(View view, int position) {
|
||||||
loadUrlWithCurrentWebview("javascript:document.getElementById('"
|
loadUrlWithCurrentWebview("javascript:document.getElementById('"
|
||||||
+ documentSections.get(position).getId()
|
+ documentSections.get(position).getId()
|
||||||
+ "').scrollIntoView();");
|
+ "').scrollIntoView();");
|
||||||
|
@ -19,16 +19,15 @@
|
|||||||
package org.kiwix.kiwixmobile.core.main
|
package org.kiwix.kiwixmobile.core.main
|
||||||
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.recyclerview.widget.RecyclerView.Adapter
|
import androidx.recyclerview.widget.RecyclerView.Adapter
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||||
import butterknife.BindView
|
import kotlinx.android.synthetic.main.section_list.titleText
|
||||||
import butterknife.ButterKnife
|
|
||||||
import org.kiwix.kiwixmobile.core.R
|
import org.kiwix.kiwixmobile.core.R
|
||||||
import org.kiwix.kiwixmobile.core.R2
|
import org.kiwix.kiwixmobile.core.base.adapter.BaseViewHolder
|
||||||
|
import org.kiwix.kiwixmobile.core.extensions.ViewGroupExtensions.inflate
|
||||||
|
import java.lang.IllegalStateException
|
||||||
|
|
||||||
class TableDrawerAdapter constructor(private val listener: TableClickListener) :
|
class TableDrawerAdapter constructor(private val listener: TableClickListener) :
|
||||||
Adapter<ViewHolder>() {
|
Adapter<ViewHolder>() {
|
||||||
@ -52,10 +51,11 @@ class TableDrawerAdapter constructor(private val listener: TableClickListener) :
|
|||||||
else 1
|
else 1
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TableDrawerViewHolder {
|
override fun onCreateViewHolder(
|
||||||
val res = R.layout.section_list
|
parent: ViewGroup,
|
||||||
val context = parent.context
|
viewType: Int
|
||||||
val view = LayoutInflater.from(context).inflate(res, parent, false)
|
): ViewHolder {
|
||||||
|
val view = parent.inflate(R.layout.section_list, false)
|
||||||
if (viewType == 0) return HeaderTableDrawerViewHolder(view)
|
if (viewType == 0) return HeaderTableDrawerViewHolder(view)
|
||||||
return SectionTableDrawerViewHolder(view)
|
return SectionTableDrawerViewHolder(view)
|
||||||
}
|
}
|
||||||
@ -63,40 +63,23 @@ class TableDrawerAdapter constructor(private val listener: TableClickListener) :
|
|||||||
override fun getItemCount(): Int = sections.size + 1
|
override fun getItemCount(): Int = sections.size + 1
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
val vh = holder as TableDrawerAdapter.TableDrawerViewHolder
|
when (holder) {
|
||||||
val context = holder.itemView.context
|
is HeaderTableDrawerViewHolder -> {
|
||||||
vh.itemView.isActivated = holder.adapterPosition == selectedPosition
|
holder.bind(title)
|
||||||
when (position) {
|
holder.itemView.setOnClickListener { v: View ->
|
||||||
0 -> {
|
updateSelection(position)
|
||||||
vh.textViewTitle.typeface = Typeface.DEFAULT_BOLD
|
|
||||||
|
|
||||||
vh.itemView.setOnClickListener { v: View ->
|
|
||||||
updateSelection(holder.getAdapterPosition())
|
|
||||||
listener.onHeaderClick(v)
|
listener.onHeaderClick(v)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (title.isNotEmpty()) vh.textViewTitle.text = title
|
is SectionTableDrawerViewHolder -> {
|
||||||
else {
|
holder.bind(sections[position - 1])
|
||||||
var empty = context.getString(R.string.no_section_info)
|
holder.itemView.setOnClickListener { v: View? ->
|
||||||
if (context is WebViewProvider) {
|
updateSelection(position)
|
||||||
empty =
|
listener.onSectionClick(v, selectedPosition - 1)
|
||||||
context.getCurrentWebView()?.title ?: context.getString(R.string.no_section_info)
|
|
||||||
}
|
|
||||||
vh.textViewTitle.text = empty
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val sectionPosition = position - 1
|
throw IllegalStateException("Unknown ViewHolder $holder found")
|
||||||
val documentSection: DocumentSection = sections[sectionPosition]
|
|
||||||
vh.textViewTitle.text = documentSection.title
|
|
||||||
val density = context.resources.displayMetrics.density
|
|
||||||
val padding = ((documentSection.level - 1) * PADDING_ * density).toInt()
|
|
||||||
vh.textViewTitle.setPadding(padding, 0, 0, 0)
|
|
||||||
vh.textViewTitle.text = sections[sectionPosition].title
|
|
||||||
vh.itemView.setOnClickListener { v: View? ->
|
|
||||||
updateSelection(vh.adapterPosition)
|
|
||||||
listener.onSectionClick(v!!, sectionPosition)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,27 +92,43 @@ class TableDrawerAdapter constructor(private val listener: TableClickListener) :
|
|||||||
notifyItemChanged(oldPosition)
|
notifyItemChanged(oldPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
open inner class TableDrawerViewHolder(v: View) : ViewHolder(v) {
|
interface TableClickListener {
|
||||||
@BindView(R2.id.titleText)
|
fun onHeaderClick(view: View?)
|
||||||
lateinit var textViewTitle: TextView
|
fun onSectionClick(view: View?, position: Int)
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
class HeaderTableDrawerViewHolder(view: View) :
|
||||||
ButterKnife.bind(this, v)
|
BaseViewHolder<String>(view) {
|
||||||
|
|
||||||
|
override fun bind(item: String) {
|
||||||
|
val context = itemView.context
|
||||||
|
titleText.typeface = Typeface.DEFAULT_BOLD
|
||||||
|
if (item.isNotEmpty()) titleText.text = item
|
||||||
|
else {
|
||||||
|
if (context is WebViewProvider) {
|
||||||
|
titleText.text =
|
||||||
|
context.getCurrentWebView()?.title ?: context.getString(R.string.no_section_info)
|
||||||
|
} else titleText.text = context.getString(R.string.no_section_info)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class HeaderTableDrawerViewHolder(v: View) : TableDrawerViewHolder(v)
|
class SectionTableDrawerViewHolder(view: View) :
|
||||||
|
BaseViewHolder<TableDrawerAdapter.DocumentSection>(view) {
|
||||||
inner class SectionTableDrawerViewHolder(v: View) : TableDrawerViewHolder(v)
|
override fun bind(
|
||||||
|
item: TableDrawerAdapter.DocumentSection
|
||||||
interface TableClickListener {
|
) {
|
||||||
fun onHeaderClick(view: View)
|
val context = itemView.context
|
||||||
fun onSectionClick(view: View, position: Int)
|
val density = context.resources.displayMetrics.density
|
||||||
|
val padding = ((item.level - 1) * TableDrawerAdapter.PADDING_ * density).toInt()
|
||||||
|
titleText.setPadding(padding, 0, 0, 0)
|
||||||
|
titleText.text = item.title
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data class DocumentSection(var title: String, var id: String, var level: Int)
|
data class DocumentSection(var title: String, var id: String, var level: Int)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val PADDING_ = 16
|
const val PADDING_ = 16
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user