Gain focus in folder creation dialog (#624)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
parent
085b946c7d
commit
bcdc43b1f1
1 changed files with 21 additions and 2 deletions
|
@ -5,9 +5,12 @@
|
||||||
package com.zeapo.pwdstore.ui.dialogs
|
package com.zeapo.pwdstore.ui.dialogs
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.DialogInterface
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.SystemClock
|
||||||
|
import android.view.MotionEvent
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
|
import androidx.core.os.postDelayed
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.textfield.TextInputEditText
|
import com.google.android.material.textfield.TextInputEditText
|
||||||
|
@ -16,13 +19,28 @@ import com.zeapo.pwdstore.R
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class FolderCreationDialogFragment : DialogFragment() {
|
class FolderCreationDialogFragment : DialogFragment() {
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
// TODO: We really, really should not need this amount of hackery. WTF is going on?
|
||||||
|
super.onResume()
|
||||||
|
val editText = dialog?.findViewById<TextInputEditText>(R.id.folder_name_text)
|
||||||
|
Handler().postDelayed(300) {
|
||||||
|
editText?.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0f, 0f, 0))
|
||||||
|
editText?.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0f, 0f, 0))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val alertDialogBuilder = MaterialAlertDialogBuilder(requireContext())
|
val alertDialogBuilder = MaterialAlertDialogBuilder(requireContext())
|
||||||
alertDialogBuilder.setTitle(R.string.title_create_folder)
|
alertDialogBuilder.setTitle(R.string.title_create_folder)
|
||||||
alertDialogBuilder.setView(R.layout.folder_creation_dialog_fragment)
|
alertDialogBuilder.setView(R.layout.folder_creation_dialog_fragment)
|
||||||
alertDialogBuilder.setPositiveButton(getString(R.string.button_create)) { _: DialogInterface, _: Int ->
|
alertDialogBuilder.setPositiveButton(getString(R.string.button_create)) { _, _ ->
|
||||||
createDirectory(requireArguments().getString(CURRENT_DIR_EXTRA)!!)
|
createDirectory(requireArguments().getString(CURRENT_DIR_EXTRA)!!)
|
||||||
}
|
}
|
||||||
|
alertDialogBuilder.setNegativeButton(getString(android.R.string.cancel)) { _, _ ->
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
isCancelable = false
|
||||||
return alertDialogBuilder.create()
|
return alertDialogBuilder.create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +50,7 @@ class FolderCreationDialogFragment : DialogFragment() {
|
||||||
val folderName = materialTextView.text.toString()
|
val folderName = materialTextView.text.toString()
|
||||||
File("$currentDir/$folderName").mkdir()
|
File("$currentDir/$folderName").mkdir()
|
||||||
(requireActivity() as PasswordStore).updateListAdapter()
|
(requireActivity() as PasswordStore).updateListAdapter()
|
||||||
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue