1+ package io .pslab .fragment ;
2+
3+ import android .os .AsyncTask ;
4+ import android .os .Bundle ;
5+ import android .support .annotation .NonNull ;
6+ import android .support .annotation .Nullable ;
7+ import android .support .v4 .app .DialogFragment ;
8+ import android .util .Log ;
9+ import android .view .LayoutInflater ;
10+ import android .view .View ;
11+ import android .view .ViewGroup ;
12+ import android .widget .Button ;
13+ import android .widget .EditText ;
14+ import android .widget .ProgressBar ;
15+ import android .widget .Toast ;
16+
17+ import java .io .IOException ;
18+
19+ import io .pslab .R ;
20+ import okhttp3 .OkHttpClient ;
21+ import okhttp3 .Request ;
22+ import okhttp3 .Response ;
23+
24+ public class ESPFragment extends DialogFragment {
25+ private String espIPAddress = "" ;
26+ private ProgressBar espConnectProgressBar ;
27+ private Button espConnectBtn ;
28+
29+ @ Override
30+ public void onCreate (@ Nullable Bundle savedInstanceState ) {
31+ super .onCreate (savedInstanceState );
32+ }
33+
34+ @ Nullable
35+ @ Override
36+ public View onCreateView (@ NonNull LayoutInflater inflater , @ Nullable ViewGroup container , @ Nullable Bundle savedInstanceState ) {
37+ View rootView = inflater .inflate (R .layout .fragment_esp , container , false );
38+ EditText espIPEditText = rootView .findViewById (R .id .esp_ip_edit_text );
39+ espConnectBtn = rootView .findViewById (R .id .esp_connect_btn );
40+ espConnectProgressBar = rootView .findViewById (R .id .esp_connect_progressbar );
41+ espConnectBtn .setOnClickListener (new View .OnClickListener () {
42+ @ Override
43+ public void onClick (View v ) {
44+ espIPAddress = espIPEditText .getText ().toString ();
45+ if (espIPAddress .length () == 0 ) {
46+ Toast .makeText (getContext (), getResources ().getString (R .string .incorrect_IP_address_message ), Toast .LENGTH_SHORT ).show ();
47+ } else {
48+ new ESPTask ().execute ();
49+ }
50+ }
51+ });
52+ return rootView ;
53+ }
54+
55+ @ Override
56+ public void onResume () {
57+ super .onResume ();
58+ ViewGroup .LayoutParams params = getDialog ().getWindow ().getAttributes ();
59+ params .height = ViewGroup .LayoutParams .WRAP_CONTENT ;
60+ params .width = ViewGroup .LayoutParams .MATCH_PARENT ;
61+ getDialog ().getWindow ().setAttributes ((android .view .WindowManager .LayoutParams ) params );
62+ }
63+
64+ private class ESPTask extends AsyncTask <Void , Void , String > {
65+
66+ @ Override
67+ protected void onPreExecute () {
68+ espConnectBtn .setVisibility (View .GONE );
69+ espConnectProgressBar .setVisibility (View .VISIBLE );
70+ }
71+
72+ @ Override
73+ protected String doInBackground (Void ... voids ) {
74+ String result = "" ;
75+ try {
76+ OkHttpClient client = new OkHttpClient ();
77+ Request request = new Request .Builder ()
78+ .url ("http://" + espIPAddress )
79+ .build ();
80+ Response response = client .newCall (request ).execute ();
81+ result = response .body ().string ();
82+ } catch (IOException e ) {
83+ e .printStackTrace ();
84+ }
85+ return result ;
86+ }
87+
88+ @ Override
89+ protected void onPostExecute (String result ) {
90+ espConnectProgressBar .setVisibility (View .GONE );
91+ espConnectBtn .setVisibility (View .VISIBLE );
92+ if (result .length () == 0 ) {
93+ Toast .makeText (getContext (), getResources ().getString (R .string .incorrect_IP_address_message ), Toast .LENGTH_SHORT ).show ();
94+ } else {
95+ Log .v ("Response" , result );
96+ }
97+ }
98+ }
99+ }
0 commit comments