1 package com.example.xubin.irrigation;
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;
16 import java.util.ArrayList;
17 import java.util.List;
19 public class MainActivity extends AppCompatActivity {
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();
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);
44 submit_button.setOnClickListener(new View.OnClickListener() {
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()));
53 String ip = gatewayIP.getText().toString();
54 new MakeRequestTask(params).execute(ip, "getIrrigationInfo");
58 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
59 fab.setOnClickListener(new View.OnClickListener() {
61 public void onClick(View view) {
62 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
63 .setAction("Action", null).show();
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);
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();
83 //noinspection SimplifiableIfStatement
84 if (id == R.id.action_settings) {
88 return super.onOptionsItemSelected(item);
90 private class MakeRequestTask extends AsyncTask<String, String, Void>{
91 private List<Object> params;
92 public MakeRequestTask(List<Object> argus) {
96 protected Void doInBackground(String... argus) {
97 if (helper.httpclient == null) {
98 helper.setConnection(argus[0]);
101 helper.makeRequest(argus[0],params, argus[1]);