Skip to content

Commit

Permalink
Migrated PostSettingsInputDialogFragment to ViewBinding
Browse files Browse the repository at this point in the history
  • Loading branch information
neeldoshii committed Jun 11, 2024
1 parent dd271c7 commit 57cfb46
Showing 1 changed file with 22 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,20 @@
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.fragment.app.DialogFragment;

import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;

import org.wordpress.android.R;
import org.wordpress.android.databinding.PostSettingsInputDialogBinding;
import org.wordpress.android.util.ActivityUtils;

import java.util.Objects;

public class PostSettingsInputDialogFragment extends DialogFragment implements TextWatcher {
public static final String TAG = "post_settings_input_dialog_fragment";

Expand All @@ -35,6 +34,8 @@ public interface PostSettingsInputDialogListener {
private static final String HINT_TAG = "hint";
private static final String DISABLE_EMPTY_INPUT_TAG = "disable_empty_input";
private static final String MULTILINE_INPUT_TAG = "is_multiline_input";

private PostSettingsInputDialogBinding mBinding;
private String mCurrentInput;
private String mTitle;
private String mHint;
Expand Down Expand Up @@ -94,34 +95,31 @@ public void onDismiss(DialogInterface dialog) {
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder =
new MaterialAlertDialogBuilder(new ContextThemeWrapper(getActivity(), R.style.PostSettingsTheme));
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
LayoutInflater layoutInflater = requireActivity().getLayoutInflater();
//noinspection InflateParams
View dialogView = layoutInflater.inflate(R.layout.post_settings_input_dialog, null);
builder.setView(dialogView);
final EditText editText = dialogView.findViewById(R.id.post_settings_input_dialog_edit_text);
mBinding = PostSettingsInputDialogBinding.inflate(layoutInflater, null, false);
builder.setView(mBinding.getRoot());
if (mIsMultilineInput) {
editText.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
mBinding.postSettingsInputDialogEditText.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
} else {
editText.setInputType(InputType.TYPE_CLASS_TEXT);
mBinding.postSettingsInputDialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
}
if (!TextUtils.isEmpty(mCurrentInput)) {
editText.setText(mCurrentInput);
mBinding.postSettingsInputDialogEditText.setText(mCurrentInput);
// move the cursor to the end
editText.setSelection(mCurrentInput.length());
mBinding.postSettingsInputDialogEditText.setSelection(mCurrentInput.length());
}
editText.addTextChangedListener(this);
mBinding.postSettingsInputDialogEditText.addTextChangedListener(this);

TextInputLayout textInputLayout = dialogView.findViewById(R.id.post_settings_input_dialog_input_layout);
textInputLayout.setHint(mTitle);
mBinding.postSettingsInputDialogInputLayout.setHint(mTitle);

TextView hintTextView = dialogView.findViewById(R.id.post_settings_input_dialog_hint);
hintTextView.setText(mHint);
mBinding.postSettingsInputDialogHint.setText(mHint);

builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mCurrentInput = editText.getText().toString();
mCurrentInput = Objects.requireNonNull(mBinding.postSettingsInputDialogEditText.getText()).toString();
if (mListener != null) {
mListener.onInputUpdated(mCurrentInput);
}
Expand Down Expand Up @@ -154,4 +152,10 @@ public void afterTextChanged(Editable editable) {
mDialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(!disabled);
}
}

@Override
public void onDestroy() {
super.onDestroy();
mBinding = null; // ensures binding reference gets null on fragment destroy
}
}

0 comments on commit 57cfb46

Please sign in to comment.