/* * Copyright (C) 2015-2016 Willi Ye <williye97@gmail.com> * * This file is part of Kernel Adiutor. * * Kernel Adiutor is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Kernel Adiutor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Kernel Adiutor. If not, see <http://www.gnu.org/licenses/>. * */ package com.grarak.kerneladiutor.views.recyclerview; import android.support.v7.widget.AppCompatEditText; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.widget.TextView; import com.grarak.kerneladiutor.R; /** * Created by willi on 01.07.16. */ public class EditTextView extends RecyclerViewItem { private TextView mTextView; private AppCompatEditText mEditTextView; private CharSequence mTitleText; private CharSequence mHintText; private int mInputType; private TextWatcher mTextWatcher; private CharSequence mText; @Override public int getLayoutRes() { return R.layout.rv_edittext_view; } @Override public void onCreateView(View view) { mTextView = (TextView) view.findViewById(R.id.title); mEditTextView = (AppCompatEditText) view.findViewById(R.id.edittext); mEditTextView.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { if (mTextWatcher != null) { mTextWatcher.beforeTextChanged(s, start, count, after); } } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (mTextWatcher != null) { mTextWatcher.onTextChanged(s, start, before, count); } } @Override public void afterTextChanged(Editable s) { if (mTextWatcher != null) { mTextWatcher.afterTextChanged(s); } mText = s; } }); super.onCreateView(view); } public void setTitle(CharSequence title) { mTitleText = title; refresh(); } public void setHint(CharSequence hint) { mHintText = hint; refresh(); } public void setInputType(int inputType) { mInputType = inputType; refresh(); } public void setTextWatcher(TextWatcher textWatcher) { mTextWatcher = textWatcher; refresh(); } public void setText(CharSequence text) { mText = text; refresh(); } public CharSequence getText() { return mEditTextView == null ? null : mEditTextView.getText(); } @Override protected void refresh() { super.refresh(); if (mTextView != null && mTitleText != null) { mTextView.setText(mTitleText); } if (mEditTextView != null) { if (mHintText != null) { mEditTextView.setHint(mHintText); } if (mInputType != 0) { mEditTextView.setInputType(mInputType); } if (mText != null) { mEditTextView.setText(mText); mEditTextView.setSelection(mText.length()); } } } }