Android: Convert CustomTitleView to Kotlin

This commit is contained in:
Charles Lombardo 2023-06-03 20:39:32 -04:00
parent 252d3f353a
commit dff2d8111c
2 changed files with 53 additions and 85 deletions

View File

@ -1,85 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-or-later
package org.dolphinemu.dolphinemu.ui.main;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.leanback.widget.TitleViewAdapter;
import org.dolphinemu.dolphinemu.R;
public class CustomTitleView extends LinearLayout implements TitleViewAdapter.Provider
{
private final TextView mTitleView;
private final View mBadgeView;
private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter()
{
@Override
public View getSearchAffordanceView()
{
return null;
}
@Override
public void setTitle(CharSequence titleText)
{
CustomTitleView.this.setTitle(titleText);
}
@Override
public void setBadgeDrawable(Drawable drawable)
{
CustomTitleView.this.setBadgeDrawable(drawable);
}
};
public CustomTitleView(Context context)
{
this(context, null);
}
public CustomTitleView(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public CustomTitleView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
View root = LayoutInflater.from(context).inflate(R.layout.tv_title, this);
mTitleView = root.findViewById(R.id.title);
mBadgeView = root.findViewById(R.id.badge);
}
public void setTitle(CharSequence title)
{
if (title != null)
{
mTitleView.setText(title);
mTitleView.setVisibility(View.VISIBLE);
mBadgeView.setVisibility(View.VISIBLE);
}
}
public void setBadgeDrawable(Drawable drawable)
{
if (drawable != null)
{
mTitleView.setVisibility(View.GONE);
mBadgeView.setVisibility(View.VISIBLE);
}
}
@Override
public TitleViewAdapter getTitleViewAdapter()
{
return mTitleViewAdapter;
}
}

View File

@ -0,0 +1,53 @@
// SPDX-License-Identifier: GPL-2.0-or-later
package org.dolphinemu.dolphinemu.ui.main
import android.content.Context
import android.graphics.drawable.Drawable
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.leanback.widget.TitleViewAdapter
import org.dolphinemu.dolphinemu.R
class CustomTitleView @JvmOverloads constructor(
context: Context?,
attrs: AttributeSet? = null,
defStyle: Int = 0
) : LinearLayout(context, attrs, defStyle), TitleViewAdapter.Provider {
private val titleView: TextView
private val badgeView: View
private val titleViewAdapter: TitleViewAdapter = object : TitleViewAdapter() {
override fun getSearchAffordanceView(): View? = null
override fun setTitle(titleText: CharSequence?) = this@CustomTitleView.setTitle(titleText)
override fun setBadgeDrawable(drawable: Drawable?) =
this@CustomTitleView.setBadgeDrawable(drawable)
}
init {
val root = LayoutInflater.from(context).inflate(R.layout.tv_title, this)
titleView = root.findViewById(R.id.title)
badgeView = root.findViewById(R.id.badge)
}
fun setTitle(title: CharSequence?) {
if (title != null) {
titleView.text = title
titleView.visibility = VISIBLE
badgeView.visibility = VISIBLE
}
}
fun setBadgeDrawable(drawable: Drawable?) {
if (drawable != null) {
titleView.visibility = GONE
badgeView.visibility = VISIBLE
}
}
override fun getTitleViewAdapter(): TitleViewAdapter = titleViewAdapter
}