shithub: drawterm

Download patch

ref: 93287184eea7bcdce590ac8cbb2c211a9e2c5e68
parent: cce4ca5a6c55eb6fff53f9b7092e2518185a984c
author: Eli Cohen <echoline@gmail.com>
date: Sun Jan 30 20:40:33 EST 2022

android checkboxes for some of the flags

--- a/gui-android/java/org/echoline/drawterm/MainActivity.java
+++ b/gui-android/java/org/echoline/drawterm/MainActivity.java
@@ -30,6 +30,7 @@
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.TextView;
+import android.widget.CheckBox;
 import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.hardware.camera2.CameraManager;
@@ -50,6 +51,7 @@
 import java.nio.ByteBuffer;
 import java.util.List;
 import java.util.ArrayList;
+import java.util.Arrays;
 
 public class MainActivity extends Activity {
 	private Map<String, ?> map;
@@ -172,8 +174,11 @@
 		((EditText)findViewById(R.id.cpuServer)).setText((String)a[0]);
 		((EditText)findViewById(R.id.authServer)).setText((String)a[1]);
 		((EditText)findViewById(R.id.userName)).setText((String)a[2]);
-		if (a.length > 3)
-			((EditText)findViewById(R.id.passWord)).setText((String)a[3]);
+		((EditText)findViewById(R.id.passWord)).setText((String)a[3]);
+
+		((CheckBox)findViewById(R.id.aan)).setChecked(((String)a[4]).equals("true") ? true : false);
+		((CheckBox)findViewById(R.id.cmd)).setChecked(((String)a[5]).equals("true") ? true : false);
+		((CheckBox)findViewById(R.id.root)).setChecked(((String)a[6]).equals("true") ? true : false);
 	}
 
 	public void populateServers(Context context) {
@@ -253,10 +258,13 @@
 				String auth = ((EditText)findViewById(R.id.authServer)).getText().toString();
 				String user = ((EditText)findViewById(R.id.userName)).getText().toString();
 				String pass = ((EditText)findViewById(R.id.passWord)).getText().toString();
+				String aan = ((CheckBox)findViewById(R.id.aan)).isChecked() ? "true" : "false";
+				String cmd = ((CheckBox)findViewById(R.id.cmd)).isChecked() ? "true" : "false";
+				String root = ((CheckBox)findViewById(R.id.root)).isChecked() ? "true" : "false";
 
 				SharedPreferences settings = getSharedPreferences("DrawtermPrefs", 0);
 				SharedPreferences.Editor editor = settings.edit();
-				editor.putString(user + "@" + cpu + " (auth="  + auth + ")", cpu + "\007" + auth + "\007" + user + "\007" + pass);
+				editor.putString(user + "@" + cpu + " (auth="  + auth + ")", cpu + "\007" + auth + "\007" + user + "\007" + pass + "\007" + aan + "\007" + cmd + "\007" + root);
 				editor.commit();
 			}
 		});
@@ -263,6 +271,12 @@
 
 		button = (Button) findViewById(R.id.connect);
 		button.setOnClickListener(new View.OnClickListener() {
+			private String[] appendString(String []args, String s) {
+				String ret[] = Arrays.copyOf(args, args.length + 1);
+				ret[ret.length - 1] = s;
+				return ret;
+			}
+
 			@Override
 			public void onClick(final View view) {
 				String cpu = ((EditText)findViewById(R.id.cpuServer)).getText().toString();
@@ -270,7 +284,13 @@
 				String user = ((EditText)findViewById(R.id.userName)).getText().toString();
 				String pass = ((EditText)findViewById(R.id.passWord)).getText().toString();
 
-				String args[] = {"drawterm", "-p", "-h", cpu, "-a", auth, "-u", user};
+				String args[] = {"drawterm", "-h", cpu, "-a", auth, "-u", user};
+				if (((CheckBox)findViewById(R.id.aan)).isChecked())
+					args = appendString(args, "-p");
+				if (!((CheckBox)findViewById(R.id.cmd)).isChecked())
+					args = appendString(args, "-C");
+				if (!((CheckBox)findViewById(R.id.root)).isChecked())
+					args = appendString(args, "-R");
 				runDrawterm(args, pass);
 			}
 		});
--- a/gui-android/res/layout/server_main.xml
+++ b/gui-android/res/layout/server_main.xml
@@ -39,6 +39,27 @@
             android:password="true"
             android:hint="Password"/>
 
+        <CheckBox android:id="@+id/aan"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ems="10"
+            android:checked="true"
+            android:text="AAN" />
+
+        <CheckBox android:id="@+id/root"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ems="10"
+            android:checked="true"
+            android:text="Local Files" />
+
+        <CheckBox android:id="@+id/cmd"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ems="10"
+            android:checked="true"
+            android:text="Local Commands" />
+
         <Button
             android:id="@+id/save"
             android:layout_width="match_parent"