From 945ff3125f49349cfafc5a5576af2abe82db6bd1 Mon Sep 17 00:00:00 2001 From: agentshowers Date: Tue, 17 Feb 2026 21:11:06 +0000 Subject: [PATCH] Allow manual editing of the path when configuring a task --- .../rcloneexplorer/Activities/TaskActivity.kt | 30 +++++----- app/src/main/res/layout/content_task.xml | 58 +++++++++++++++---- 2 files changed, 59 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/ca/pkay/rcloneexplorer/Activities/TaskActivity.kt b/app/src/main/java/ca/pkay/rcloneexplorer/Activities/TaskActivity.kt index 99de31c3a..8ed83e5d6 100644 --- a/app/src/main/java/ca/pkay/rcloneexplorer/Activities/TaskActivity.kt +++ b/app/src/main/java/ca/pkay/rcloneexplorer/Activities/TaskActivity.kt @@ -61,6 +61,8 @@ class TaskActivity : AppCompatActivity(), FolderSelectorCallback{ private lateinit var onSuccessDropdown: Spinner + private lateinit var localPathPickerButton: ImageButton + private lateinit var remotePathPickerButton: ImageButton private lateinit var filterOptionsButton: ImageButton @@ -162,6 +164,8 @@ class TaskActivity : AppCompatActivity(), FolderSelectorCallback{ } } + localPathPickerButton = findViewById(R.id.task_local_path_picker_button) + remotePathPickerButton = findViewById(R.id.task_remote_path_picker_button) filterOptionsButton = findViewById(R.id.task_edit_filter_options_button) filterOptionsButton.setOnClickListener { val filter = if(filterDropdown.selectedItemPosition > 0 && filterDropdown.selectedItemPosition < filterDropdown.count) filterItems[filterDropdown.selectedItemPosition - 1] else null @@ -306,14 +310,11 @@ class TaskActivity : AppCompatActivity(), FolderSelectorCallback{ existingTask.let { localPath.setText(it?.localPath ?: "") } - localPath.onFocusChangeListener = - View.OnFocusChangeListener { v: View?, hasFocus: Boolean -> - if (hasFocus) { - val intent = Intent(this.applicationContext, FilePicker::class.java) - intent.putExtra(FilePicker.FILE_PICKER_PICK_DESTINATION_TYPE, true) - startActivityForResult(intent, REQUEST_CODE_FP_LOCAL) - } - } + localPathPickerButton.setOnClickListener { + val intent = Intent(this.applicationContext, FilePicker::class.java) + intent.putExtra(FilePicker.FILE_PICKER_PICK_DESTINATION_TYPE, true) + startActivityForResult(intent, REQUEST_CODE_FP_LOCAL) + } } private fun prepareRemote() { @@ -342,15 +343,10 @@ class TaskActivity : AppCompatActivity(), FolderSelectorCallback{ override fun onNothingSelected(parentView: AdapterView<*>?) {} } - // Todo: This will break if the remote changed, but the path did not. - // Catch this issue by forcing the path to be emtpy - remotePath.onFocusChangeListener = object : View.OnFocusChangeListener { - override fun onFocusChange(p0: View?, p1: Boolean) { - startRemotePicker( - rcloneInstance.getRemoteItemFromName(remoteDropdown.selectedItem.toString()), "/" - ) - remotePath.clearFocus() - } + remotePathPickerButton.setOnClickListener { + startRemotePicker( + rcloneInstance.getRemoteItemFromName(remoteDropdown.selectedItem.toString()), "/" + ) } } diff --git a/app/src/main/res/layout/content_task.xml b/app/src/main/res/layout/content_task.xml index eb5de6841..2814c5da0 100644 --- a/app/src/main/res/layout/content_task.xml +++ b/app/src/main/res/layout/content_task.xml @@ -150,15 +150,32 @@ android:textAppearance="@style/TextAppearance.AppCompat.Display1" android:textSize="24sp" /> - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + @@ -193,15 +210,32 @@ android:contentDescription="@string/description_sync_direction" android:minHeight="48dp" /> - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + +