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);
+ }
+
}