diff --git a/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt b/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt index fe2c31a53..6910c5afd 100644 --- a/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/CheckBoxDialogBuilder.kt @@ -13,35 +13,33 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.hippo.app -package com.hippo.app; +import android.content.Context +import android.view.LayoutInflater +import android.widget.CheckBox +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.hippo.ehviewer.R -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.CheckBox; +class CheckBoxDialogBuilder constructor( + context: Context, + message: String?, + checkText: String?, + checked: Boolean +) : MaterialAlertDialogBuilder( + context +) { + private val mCheckBox: CheckBox + val isChecked: Boolean + get() = mCheckBox.isChecked -import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.hippo.ehviewer.R; - -public class CheckBoxDialogBuilder extends MaterialAlertDialogBuilder { - - private final CheckBox mCheckBox; - - @SuppressLint("InflateParams") - public CheckBoxDialogBuilder(Context context, String message, String checkText, boolean checked) { - super(context); - View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_checkbox_builder, null); - setView(view); - setMessage(message); - mCheckBox = view.findViewById(R.id.checkbox); - mCheckBox.setText(checkText); - mCheckBox.setChecked(checked); - view.setOnClickListener(v -> mCheckBox.toggle()); + init { + val view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_checkbox_builder, null) + setView(view) + setMessage(message) + mCheckBox = view.findViewById(R.id.checkbox) + mCheckBox.text = checkText + mCheckBox.isChecked = checked + view.setOnClickListener { mCheckBox.toggle() } } - - public boolean isChecked() { - return mCheckBox.isChecked(); - } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt index 550741544..e175cc6bf 100644 --- a/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/EditTextDialogBuilder.kt @@ -13,74 +13,60 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.hippo.app -package com.hippo.app; +import android.content.Context +import android.content.DialogInterface +import android.view.KeyEvent +import android.view.LayoutInflater +import android.widget.EditText +import android.widget.TextView +import android.widget.TextView.OnEditorActionListener +import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.textfield.TextInputLayout +import com.hippo.ehviewer.R -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.DialogInterface; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; -import android.widget.TextView; +class EditTextDialogBuilder constructor( + context: Context, + text: String?, + hint: String? +) : MaterialAlertDialogBuilder( + context +), OnEditorActionListener { + private val mTextInputLayout: TextInputLayout + val editText: EditText + private var mDialog: AlertDialog? = null + val text: String + get() = editText.text.toString() -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; - -import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.google.android.material.textfield.TextInputLayout; -import com.hippo.ehviewer.R; - -public class EditTextDialogBuilder extends MaterialAlertDialogBuilder implements EditText.OnEditorActionListener { - - private final TextInputLayout mTextInputLayout; - private final EditText mEditText; - private AlertDialog mDialog; - - @SuppressLint("InflateParams") - public EditTextDialogBuilder(Context context, String text, String hint) { - super(context); - View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_edittext_builder, null); - setView(view); - mTextInputLayout = (TextInputLayout) view; - mEditText = view.findViewById(R.id.edit_text); - mEditText.setText(text); - mEditText.setSelection(mEditText.getText().length()); - mEditText.setOnEditorActionListener(this); - mTextInputLayout.setHint(hint); + fun setError(error: CharSequence?) { + mTextInputLayout.error = error } - public EditText getEditText() { - return mEditText; + override fun create(): AlertDialog { + mDialog = super.create() + return mDialog as AlertDialog } - public String getText() { - return mEditText.getText().toString(); - } - - public void setError(CharSequence error) { - mTextInputLayout.setError(error); - } - - @NonNull - @Override - public AlertDialog create() { - mDialog = super.create(); - return mDialog; - } - - @Override - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (mDialog != null) { - Button button = mDialog.getButton(DialogInterface.BUTTON_POSITIVE); - if (button != null) { - button.performClick(); - } - return true; + override fun onEditorAction(v: TextView, actionId: Int, event: KeyEvent): Boolean { + return if (mDialog != null) { + val button = mDialog!!.getButton(DialogInterface.BUTTON_POSITIVE) + button?.performClick() + true } else { - return false; + false } } -} + + init { + val view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_edittext_builder, null) + setView(view) + mTextInputLayout = view as TextInputLayout + editText = view.findViewById(R.id.edit_text) + editText.setText(text) + editText.setSelection(editText.text.length) + editText.setOnEditorActionListener(this) + mTextInputLayout.hint = hint + } +} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt b/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt index 9059f7123..800056338 100644 --- a/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt +++ b/app/src/main/java/com/hippo/app/ListCheckBoxDialogBuilder.kt @@ -13,61 +13,53 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.hippo.app -package com.hippo.app; +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.CheckBox +import android.widget.ListView +import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.hippo.ehviewer.R +import com.hippo.yorozuya.ViewUtils -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.CheckBox; -import android.widget.ListView; +class ListCheckBoxDialogBuilder constructor( + context: Context, items: Array, + listener: OnItemClickListener?, checkText: String?, checked: Boolean +) : MaterialAlertDialogBuilder( + context +) { + private val mCheckBox: CheckBox + private var mDialog: AlertDialog? = null + val isChecked: Boolean + get() = mCheckBox.isChecked -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; + override fun create(): AlertDialog { + mDialog = super.create() + return mDialog as AlertDialog + } -import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.hippo.ehviewer.R; -import com.hippo.yorozuya.ViewUtils; + interface OnItemClickListener { + fun onItemClick(builder: ListCheckBoxDialogBuilder?, dialog: AlertDialog?, position: Int) + } -public class ListCheckBoxDialogBuilder extends MaterialAlertDialogBuilder { - - private final CheckBox mCheckBox; - - private AlertDialog mDialog; - - @SuppressLint("InflateParams") - public ListCheckBoxDialogBuilder(Context context, CharSequence[] items, - final OnItemClickListener listener, String checkText, boolean checked) { - super(context); - View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_list_checkbox_builder, null); - setView(view); - ListView listView = (ListView) ViewUtils.$$(view, R.id.list_view); - mCheckBox = (CheckBox) ViewUtils.$$(view, R.id.checkbox); - listView.setAdapter(new ArrayAdapter<>(getContext(), R.layout.item_select_dialog, items)); - listView.setOnItemClickListener((parent, view1, position, id) -> { - if (listener != null) { - listener.onItemClick(ListCheckBoxDialogBuilder.this, mDialog, position); + init { + val view = + LayoutInflater.from(getContext()).inflate(R.layout.dialog_list_checkbox_builder, null) + setView(view) + val listView = ViewUtils.`$$`(view, R.id.list_view) as ListView + mCheckBox = ViewUtils.`$$`(view, R.id.checkbox) as CheckBox + listView.adapter = ArrayAdapter(getContext(), R.layout.item_select_dialog, items) + listView.onItemClickListener = + AdapterView.OnItemClickListener { _: AdapterView<*>?, _: View?, position: Int, _: Long -> + listener?.onItemClick(this@ListCheckBoxDialogBuilder, mDialog, position) + mDialog?.dismiss() } - mDialog.dismiss(); - }); - mCheckBox.setText(checkText); - mCheckBox.setChecked(checked); + mCheckBox.text = checkText + mCheckBox.isChecked = checked } - - public boolean isChecked() { - return mCheckBox.isChecked(); - } - - @NonNull - @Override - public AlertDialog create() { - mDialog = super.create(); - return mDialog; - } - - public interface OnItemClickListener { - void onItemClick(ListCheckBoxDialogBuilder builder, AlertDialog dialog, int position); - } -} +} \ No newline at end of file