--- /dev/null
+package com.example.lede2;\r
+\r
+import android.support.v7.app.AppCompatActivity;\r
+import android.os.Bundle;\r
+import android.util.Log;\r
+import android.util.SparseBooleanArray;\r
+import android.view.View;\r
+import android.widget.ArrayAdapter;\r
+import android.widget.Button;\r
+import android.widget.ListView;\r
+\r
+import java.util.List;\r
+\r
+public class ListActivity extends AppCompatActivity implements View.OnClickListener {\r
+\r
+ Button delete;//delete button in UI\r
+ Button selectAll;//select button in UI\r
+ ListView listview;//listview in UI\r
+ SSH ssh;//Connection object between Android & Router\r
+ List<String> tmp;//data structure which has IoT device information already registered on LEDE2\r
+ ArrayAdapter adapter;//adapter between tmp and listview\r
+\r
+ @Override\r
+ protected void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setContentView(R.layout.activity_list);\r
+\r
+ ssh = new SSH();\r
+ try {\r
+ tmp = ssh.execute("-ln").get();\r
+ Thread.sleep(1000);//To execute asyntask in ssh object, we have to sleep main thread\r
+ } catch (Exception e) {\r
+ }\r
+\r
+ delete = (Button) findViewById(R.id.delete);\r
+ selectAll = (Button) findViewById(R.id.selectAll);\r
+ listview = (ListView) findViewById(R.id.listView1);\r
+\r
+ adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, tmp);//register tmp array to adapter\r
+\r
+ delete.setOnClickListener(this);\r
+ selectAll.setOnClickListener(this);\r
+ listview.setAdapter(adapter);\r
+ }\r
+\r
+ @Override\r
+ public void onClick(View v) {\r
+ if (v == delete) {\r
+ //SparseBooleanArray's data is Ture or False\r
+ SparseBooleanArray checkedItems = listview.getCheckedItemPositions();//to check which devices are checked in listview(check -> true, no check -> false)\r
+ int count = adapter.getCount();//number of items in listview\r
+ String command = "-dn "; //after, +'name '\r
+\r
+ for (int i = count - 1; i >= 0; i--) {//scan from back\r
+ //i : index of IoT device which will be removed in tmp array\r
+ if (checkedItems.get(i)) {//if check\r
+ String rmName = tmp.get(i).toString();//save the name of checked IoT device\r
+ command += rmName + " ";//complete command\r
+ //remove this information on the listview\r
+ tmp.remove(i);\r
+ }\r
+ }\r
+ try {\r
+ //delete IoT device information in the router by sending command line to router\r
+ ssh = new SSH();\r
+ ssh.execute(command);\r
+ Thread.sleep(1000);//To execute asyntask in ssh object, we have to sleep main thread\r
+ } catch (Exception e) {\r
+ Log.d("SLEEP EXCEPTION", "SLEEP EXCEPTION occurs in onClick method of ListActivity");\r
+ }\r
+\r
+ //update\r
+ adapter.notifyDataSetChanged();\r
+\r
+ //delete checked mark in listview\r
+ listview.clearChoices();\r
+\r
+ } else if (v == selectAll) {\r
+ int count;\r
+ count = adapter.getCount();\r
+\r
+ for (int i = 0; i < count; i++) {\r
+ listview.setItemChecked(i, true);\r
+ }\r
+ }\r
+ }\r
+}\r