Skip to content
Snippets Groups Projects
Commit 7ec79dfe authored by Anon's avatar Anon
Browse files

Merge branch 'destionation-input' into 'master'

Add destination path input field

See merge request card10/companion-app-android!9
parents 077c532c d5f4a948
No related branches found
No related tags found
No related merge requests found
...@@ -34,7 +34,8 @@ private const val TAG = "FileTransfer" ...@@ -34,7 +34,8 @@ private const val TAG = "FileTransfer"
class FileTransfer( class FileTransfer(
private val service: LowEffortService, private val service: LowEffortService,
private val reader: ChunkedReader, private val reader: ChunkedReader,
private var listener: FileTransferListener private var listener: FileTransferListener,
private val destinationPath: String
) : OnPacketReceivedListener { ) : OnPacketReceivedListener {
private var currentState = TransferState.IDLE private var currentState = TransferState.IDLE
...@@ -100,7 +101,7 @@ class FileTransfer( ...@@ -100,7 +101,7 @@ class FileTransfer(
service.sendPacket( service.sendPacket(
Packet( Packet(
PacketType.START, PacketType.START,
"/foo.py".toByteArray(Charset.forName("ASCII")) destinationPath.toByteArray(Charset.forName("ASCII"))
) )
) )
currentState = TransferState.START_SENT currentState = TransferState.START_SENT
......
...@@ -30,6 +30,7 @@ import android.view.LayoutInflater ...@@ -30,6 +30,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.EditText
import android.widget.ProgressBar import android.widget.ProgressBar
import android.widget.TextView import android.widget.TextView
import androidx.annotation.UiThread import androidx.annotation.UiThread
...@@ -53,6 +54,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{ ...@@ -53,6 +54,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{
private lateinit var tvSelected: TextView private lateinit var tvSelected: TextView
private lateinit var tvStatus: TextView private lateinit var tvStatus: TextView
private lateinit var progressBar: ProgressBar private lateinit var progressBar: ProgressBar
private lateinit var inputDestination: EditText
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.file_transfer_fragment, container, false) return inflater.inflate(R.layout.file_transfer_fragment, container, false)
...@@ -62,6 +64,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{ ...@@ -62,6 +64,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{
tvSelected = view.findViewById(R.id.label_selected) tvSelected = view.findViewById(R.id.label_selected)
tvStatus = view.findViewById(R.id.label_status) tvStatus = view.findViewById(R.id.label_status)
progressBar = view.findViewById(R.id.progress) progressBar = view.findViewById(R.id.progress)
inputDestination = view.findViewById(R.id.input_destination)
buttonPickFile = view.findViewById(R.id.button_pick_file) buttonPickFile = view.findViewById(R.id.button_pick_file)
buttonPickFile.setOnClickListener { buttonPickFile.setOnClickListener {
...@@ -95,7 +98,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{ ...@@ -95,7 +98,7 @@ class FileTransferFragment : Fragment(), GattListener, FileTransferListener{
val reader = ChunkedReader(ctx, uri, ConnectionService.mtu) val reader = ChunkedReader(ctx, uri, ConnectionService.mtu)
val service = ConnectionService.leService ?: throw IllegalStateException() val service = ConnectionService.leService ?: throw IllegalStateException()
transfer = FileTransfer(service, reader, this) transfer = FileTransfer(service, reader, this, inputDestination.text.toString())
} catch (e: Exception) { } catch (e: Exception) {
Log.e(TAG, "Failed to initialize transfer") Log.e(TAG, "Failed to initialize transfer")
return return
......
...@@ -25,6 +25,23 @@ ...@@ -25,6 +25,23 @@
app:layout_constraintTop_toBottomOf="@id/button_pick_file" app:layout_constraintTop_toBottomOf="@id/button_pick_file"
android:text="@string/file_transfer_label_no_file_selected"/> android:text="@string/file_transfer_label_no_file_selected"/>
<EditText android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/input_destination"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_selected"
android:importantForAutofill="no"
android:hint="@string/file_transfer_hint_destination"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/label_destination_help"
android:text="@string/file_transfer_label_destination_help"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/input_destination"/>
<Button <Button
android:id="@+id/button_start_stop_transfer" android:id="@+id/button_start_stop_transfer"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -32,7 +49,7 @@ ...@@ -32,7 +49,7 @@
android:layout_marginTop="@dimen/send_label_margin" android:layout_marginTop="@dimen/send_label_margin"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_selected" app:layout_constraintTop_toBottomOf="@id/label_destination_help"
android:text="@string/file_transfer_button_start_transfer"/> android:text="@string/file_transfer_button_start_transfer"/>
<TextView <TextView
......
...@@ -11,11 +11,13 @@ ...@@ -11,11 +11,13 @@
<string name="main_button_mood">Change Mood</string> <string name="main_button_mood">Change Mood</string>
<string name="main_button_beautiful">Beautiful</string> <string name="main_button_beautiful">Beautiful</string>
<string name="file_transfer_button_pick_file">Select</string> <string name="file_transfer_button_pick_file">Select file</string>
<string name="file_transfer_button_start_transfer">Start</string> <string name="file_transfer_button_start_transfer">Start</string>
<string name="file_transfer_button_stop_transfer">Cancel</string> <string name="file_transfer_button_stop_transfer">Cancel</string>
<string name="file_transfer_label_no_file_selected">No file selected</string> <string name="file_transfer_label_no_file_selected">No file selected</string>
<string name="file_transfer_label_selected_file">Selected file:</string> <string name="file_transfer_label_selected_file">Selected file:</string>
<string name="file_transfer_hint_destination">Destination path</string>
<string name="file_transfer_label_destination_help">(e.g. /test.py)</string>
<string name="loading_dialog_loading">Loading</string> <string name="loading_dialog_loading">Loading</string>
<string name="dialog_action_ok">OK</string> <string name="dialog_action_ok">OK</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment