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;
15 import java.util.ArrayList;
16 import java.util.List;
18 public class MainActivity extends AppCompatActivity {
20 private EditText inchesPerWeek;
21 private EditText weatherZipCode;
22 private EditText daysToWaterOn;
23 private EditText inchesPerMinute;
24 private Button submit_button;
25 private Helper helper = new Helper();
28 protected void onCreate(Bundle savedInstanceState) {
29 super.onCreate(savedInstanceState);
30 setContentView(R.layout.activity_main);
31 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
32 setSupportActionBar(toolbar);
33 inchesPerWeek = (EditText) findViewById(R.id.week);
34 weatherZipCode = (EditText) findViewById(R.id.zip);
35 daysToWaterOn = (EditText) findViewById(R.id.water);
36 inchesPerMinute = (EditText) findViewById(R.id.minute);
37 submit_button = (Button) findViewById(R.id.submit);
39 submit_button.setOnClickListener(new View.OnClickListener() {
41 public void onClick(View view) {
42 List<Object> params = new ArrayList<>();
43 params.add(Double.parseDouble(inchesPerWeek.getText().toString()));
44 params.add(Integer.parseInt(weatherZipCode.getText().toString()));
45 params.add(Integer.parseInt(daysToWaterOn.getText().toString()));
46 params.add(Double.parseDouble(inchesPerMinute.getText().toString()));
48 String ip = getApplicationContext().getResources().getString(R.string.destination_ip);
49 new MakeRequestTask(params).execute(ip, "getIrrigationInfo");
53 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
54 fab.setOnClickListener(new View.OnClickListener() {
56 public void onClick(View view) {
57 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
58 .setAction("Action", null).show();
64 public boolean onCreateOptionsMenu(Menu menu) {
65 // Inflate the menu; this adds items to the action bar if it is present.
66 getMenuInflater().inflate(R.menu.menu_main, menu);
71 public boolean onOptionsItemSelected(MenuItem item) {
72 // Handle action bar item clicks here. The action bar will
73 // automatically handle clicks on the Home/Up button, so long
74 // as you specify a parent activity in AndroidManifest.xml.
75 int id = item.getItemId();
77 //noinspection SimplifiableIfStatement
78 if (id == R.id.action_settings) {
82 return super.onOptionsItemSelected(item);
84 private class MakeRequestTask extends AsyncTask<String, String, Void>{
85 private List<Object> params;
86 public MakeRequestTask(List<Object> argus) {
90 protected Void doInBackground(String... argus) {
91 if (helper.httpclient == null) {
92 helper.setConnection();
94 helper.makeRequest(argus[0],params, argus[1]);