65c7c34dc70db66646248c4a717fbeb68d629d54
[iot2.git] / benchmarks / other / PhoneInterface / Irrigation / app / src / main / java / com / example / xubin / irrigation / MainActivity.java
1 package com.example.xubin.irrigation;
2
3 import android.os.AsyncTask;
4 import android.os.Bundle;
5 import android.support.design.widget.FloatingActionButton;
6 import android.support.design.widget.Snackbar;
7 import android.support.v7.app.AppCompatActivity;
8 import android.support.v7.widget.Toolbar;
9 import android.view.View;
10 import android.view.Menu;
11 import android.view.MenuItem;
12 import android.widget.Button;
13 import android.widget.EditText;
14 import android.content.Context;
15
16 import java.util.ArrayList;
17 import java.util.List;
18
19 public class MainActivity extends AppCompatActivity {
20
21     private EditText gatewayIP;
22     private EditText inchesPerWeek;
23     private EditText weatherZipCode;
24     private EditText daysToWaterOn;
25     private EditText inchesPerMinute;
26     private Button submit_button;
27     protected static Context context;
28     private Helper helper = new Helper();
29
30     @Override
31     protected void onCreate(Bundle savedInstanceState) {
32         super.onCreate(savedInstanceState);
33         setContentView(R.layout.activity_main);
34         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
35         setSupportActionBar(toolbar);
36         context = getApplicationContext();
37         gatewayIP = (EditText) findViewById(R.id.gatewayip);
38         inchesPerWeek = (EditText) findViewById(R.id.week);
39         weatherZipCode = (EditText) findViewById(R.id.zip);
40         daysToWaterOn = (EditText) findViewById(R.id.water);
41         inchesPerMinute = (EditText) findViewById(R.id.minute);
42         submit_button = (Button) findViewById(R.id.submit);
43
44         submit_button.setOnClickListener(new View.OnClickListener() {
45             @Override
46             public void onClick(View view) {
47                 List<Object> params = new ArrayList<>();
48                 params.add(Double.parseDouble(inchesPerWeek.getText().toString()));
49                 params.add(Integer.parseInt(weatherZipCode.getText().toString()));
50                 params.add(Integer.parseInt(daysToWaterOn.getText().toString()));
51                 params.add(Double.parseDouble(inchesPerMinute.getText().toString()));
52
53                 String ip = gatewayIP.getText().toString();
54                 new MakeRequestTask(params).execute(ip, "getIrrigationInfo");
55
56             }
57         });
58         FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
59         fab.setOnClickListener(new View.OnClickListener() {
60             @Override
61             public void onClick(View view) {
62                 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
63                         .setAction("Action", null).show();
64             }
65         });
66     }
67
68
69     @Override
70     public boolean onCreateOptionsMenu(Menu menu) {
71         // Inflate the menu; this adds items to the action bar if it is present.
72         getMenuInflater().inflate(R.menu.menu_main, menu);
73         return true;
74     }
75
76     @Override
77     public boolean onOptionsItemSelected(MenuItem item) {
78         // Handle action bar item clicks here. The action bar will
79         // automatically handle clicks on the Home/Up button, so long
80         // as you specify a parent activity in AndroidManifest.xml.
81         int id = item.getItemId();
82
83         //noinspection SimplifiableIfStatement
84         if (id == R.id.action_settings) {
85             return true;
86         }
87
88         return super.onOptionsItemSelected(item);
89     }
90     private class MakeRequestTask extends AsyncTask<String, String, Void>{
91         private List<Object> params;
92         public MakeRequestTask(List<Object> argus) {
93             this.params = argus;
94         }
95         @Override
96         protected Void doInBackground(String... argus) {
97             if (helper.httpclient == null) {
98                 helper.setConnection(argus[0]);
99             }
100
101             helper.makeRequest(argus[0],params, argus[1]);
102
103             return null;
104         }
105     }
106 }