diff --git a/res/layout/activity_runcommand.xml b/res/layout/activity_runcommand.xml --- a/res/layout/activity_runcommand.xml +++ b/res/layout/activity_runcommand.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="16dp" - android:src="@drawable/ic_add" + android:src="@drawable/ic_action_image_edit" app:backgroundTint="@color/primary" app:layout_anchor="@id/runcommandslist" app:layout_anchorGravity="bottom|end" /> diff --git a/res/layout/addcommanddialog.xml b/res/layout/addcommanddialog.xml deleted file mode 100644 --- a/res/layout/addcommanddialog.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -234,11 +234,9 @@ Settings icon Add a command - Name - Command - You will need to confirm the command on the desktop There are no commands registered You can add new commands in the KDE Connect System Settings + You can add commands on the desktop Media Player Control Control your phones media players from another device diff --git a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/AddCommandDialog.java b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/AddCommandDialog.java deleted file mode 100644 --- a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/AddCommandDialog.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.kde.kdeconnect.Plugins.RunCommandPlugin; - -import android.app.Dialog; -import android.content.DialogInterface; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; -import android.support.v7.app.AlertDialog; -import android.text.Editable; -import android.text.TextWatcher; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.EditText; - -import org.kde.kdeconnect_tp.R; - -public class AddCommandDialog extends DialogFragment { - - private EditText nameField; - private EditText commandField; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(R.string.add_command); - - LayoutInflater inflater = getActivity().getLayoutInflater(); - - View view = inflater.inflate(R.layout.addcommanddialog, null); - - nameField = (EditText) view.findViewById(R.id.addcommand_name); - commandField = (EditText) view.findViewById(R.id.addcommand_command); - - builder.setView(view); - - builder.setPositiveButton(R.string.ok, (dialog, id) -> { - - if (getActivity() instanceof RunCommandActivity) { - - String name = nameField.getText().toString(); - String command = commandField.getText().toString(); - - ((RunCommandActivity) getActivity()).dialogResult(name, command); - } - }); - builder.setNegativeButton(R.string.cancel, (dialog, id) -> { - }); - - return builder.create(); - } -} diff --git a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandActivity.java b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandActivity.java --- a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandActivity.java +++ b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandActivity.java @@ -16,13 +16,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ + * along with this program. If not, see . + */ package org.kde.kdeconnect.Plugins.RunCommandPlugin; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; @@ -108,7 +109,26 @@ FloatingActionButton addCommandButton = (FloatingActionButton) findViewById(R.id.add_command_button); addCommandButton.setVisibility(canAddCommands ? View.VISIBLE : View.GONE); - addCommandButton.setOnClickListener(view -> new AddCommandDialog().show(getSupportFragmentManager(), "addcommanddialog")); + + addCommandButton.setOnClickListener(view -> BackgroundService.RunCommand(RunCommandActivity.this, service -> { + + final Device device = service.getDevice(deviceId); + final RunCommandPlugin plugin = device.getPlugin(RunCommandPlugin.class); + if (plugin == null) { + Log.e("RunCommandActivity", "device has no runcommand plugin!"); + return; + } + + plugin.sendSetupPacket(); + + AlertDialog dialog = new AlertDialog.Builder(RunCommandActivity.this) + .setTitle(R.string.add_command) + .setMessage(R.string.add_command_description) + .setPositiveButton(R.string.ok, null) + .create(); + dialog.show(); + + })); updateView(); } @@ -144,14 +164,4 @@ plugin.removeCommandsUpdatedCallback(commandsChangedCallback); }); } - - public void dialogResult(final String cmdName, final String cmdCmd) { - BackgroundService.RunCommand(this, service -> { - Device device = service.getDevice(deviceId); - RunCommandPlugin plugin = device.getPlugin(RunCommandPlugin.class); - if(!cmdName.isEmpty() && !cmdCmd.isEmpty()) { - plugin.addCommand(cmdName, cmdCmd); - } - }); - } } diff --git a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java --- a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java @@ -39,7 +39,6 @@ public final static String PACKET_TYPE_RUNCOMMAND = "kdeconnect.runcommand"; public final static String PACKET_TYPE_RUNCOMMAND_REQUEST = "kdeconnect.runcommand.request"; - public final static String PACKET_TYPE_RUNCOMMAND_ADD = "kdeconnect.runcommand.add"; private ArrayList commandList = new ArrayList<>(); private ArrayList callbacks = new ArrayList<>(); @@ -153,17 +152,14 @@ return context.getString(R.string.pref_plugin_runcommand); } - public void addCommand(String name, String command){ - - NetworkPacket np = new NetworkPacket(PACKET_TYPE_RUNCOMMAND_ADD); - np.set("name", name); - np.set("command", command); - - device.sendPacket(np); - } - public boolean canAddCommand(){ return canAddCommand; } + void sendSetupPacket() { + NetworkPacket np = new NetworkPacket(RunCommandPlugin.PACKET_TYPE_RUNCOMMAND_REQUEST); + np.set("setup", true); + device.sendPacket(np); + } + }