package net.accelf.yuito import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import at.connyduck.calladapter.networkresult.NetworkResult import at.connyduck.calladapter.networkresult.onFailure import at.connyduck.calladapter.networkresult.onSuccess import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemDrawerFooterBinding import com.keylesspalace.tusky.entity.Instance import com.keylesspalace.tusky.util.BindingHolder import com.mikepenz.materialdrawer.model.AbstractDrawerItem class FooterDrawerItem : AbstractDrawerItem>() { override val type = R.id.instanceData override val layoutRes: Int get() = throw UnsupportedOperationException() private lateinit var binding: ItemDrawerFooterBinding override fun generateView(ctx: Context, parent: ViewGroup): View { binding = ItemDrawerFooterBinding.inflate(LayoutInflater.from(ctx)) binding.instanceData.setTag(R.id.material_drawer_item, this) return binding.root } override fun bindView(holder: BindingHolder, payloads: List) { super.bindView(holder, payloads) holder.itemView.setPadding(0, 0, 0, 0) binding.instanceData.setTextColor(binding.instanceData.hintTextColors) } override fun getViewHolder(v: View): BindingHolder = throw UnsupportedOperationException() fun setInstance(instance: NetworkResult) { instance .onSuccess { binding.instanceData.text = listOf(it.title, it.uri, it.version).joinToString("\n") } .onFailure { binding.instanceData.text = binding.root.context.getString(R.string.instance_data_failed) } } }