diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-20 18:00:29 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-06-20 18:00:29 +0300 |
commit | 2ecb1837a262ca606fb187849828613519a22176 (patch) | |
tree | 4106cbe691e8076e66b968e665ad177f1dcbff0d | |
parent | ff3822e4192a50f9d64f4250f495b0b275c0dace (diff) |
Fix #882 Enable title editing when clicking on action bar
3 files changed, 23 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java index 6e6fc2e6..13e56cb1 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java @@ -63,6 +63,9 @@ public class EditNoteActivity extends LockedActivity implements BaseNoteFragment } setSupportActionBar(binding.toolbar); + if (!(fragment instanceof NoteReadonlyFragment)) { + binding.toolbar.setOnClickListener((v) -> fragment.showEditTitleDialog()); + } } @Override diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java index 69d1b6dc..c977e5d6 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java @@ -338,7 +338,7 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego /** * Opens a dialog in order to chose a category */ - private void showEditTitleDialog() { + public void showEditTitleDialog() { final String fragmentId = "fragment_edit_title"; FragmentManager manager = requireActivity().getSupportFragmentManager(); Fragment frag = manager.findFragmentByTag(fragmentId); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/EditTitleDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/EditTitleDialogFragment.java index db1dbd61..1dfd995d 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/EditTitleDialogFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/EditTitleDialogFragment.java @@ -4,7 +4,10 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.view.Window; +import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,7 +18,9 @@ import it.niedermann.owncloud.notes.databinding.DialogEditTitleBinding; public class EditTitleDialogFragment extends DialogFragment { + private static final String TAG = EditTitleDialogFragment.class.getSimpleName(); static final String PARAM_OLD_TITLE = "old_title"; + private DialogEditTitleBinding binding; private String oldTitle; private EditTitleListener listener; @@ -42,12 +47,10 @@ public class EditTitleDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { View dialogView = View.inflate(getContext(), R.layout.dialog_edit_title, null); - DialogEditTitleBinding binding = DialogEditTitleBinding.bind(dialogView); + binding = DialogEditTitleBinding.bind(dialogView); if (savedInstanceState == null) { - if (requireArguments().containsKey(PARAM_OLD_TITLE)) { - binding.title.setText(requireArguments().getString(PARAM_OLD_TITLE)); - } + binding.title.setText(oldTitle); } return new AlertDialog.Builder(getActivity()) @@ -59,6 +62,18 @@ public class EditTitleDialogFragment extends DialogFragment { .create(); } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + binding.title.requestFocus(); + Window window = requireDialog().getWindow(); + if (window != null) { + window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); + } else { + Log.w(TAG, "can not enable soft keyboard because " + Window.class.getSimpleName() + " is null."); + } + } + public static DialogFragment newInstance(String title) { final DialogFragment fragment = new EditTitleDialogFragment(); final Bundle args = new Bundle(); |