From d0d796648105e48aed491ad060708fe56c529f36 Mon Sep 17 00:00:00 2001 From: Jamen Date: Mon, 8 Aug 2016 13:10:36 -0600 Subject: [PATCH] app update --- .idea/gradle.xml | 8 +- .idea/inspectionProfiles/Project_Default.xml | 13 + .../inspectionProfiles/profiles_settings.xml | 7 + .idea/misc.xml | 2 +- .idea/vcs.xml | 2 +- app/app.iml | 49 ++- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 1 - .../java/com/airlim/garagetrois/Control.java | 336 ++++++++++++++++-- .../java/com/airlim/garagetrois/Login.java | 129 ++++++- app/src/main/res/layout/control.xml | 62 ++-- app/src/main/res/layout/webview.xml | 16 + app/src/main/res/values/strings.xml | 1 + .../res/values/strings_activity_settings.xml | 1 + build.gradle | 2 +- build/intermediates/dex-cache/cache.xml | 20 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 17 files changed, 560 insertions(+), 95 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 app/src/main/res/layout/webview.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 5f8ec24..c2a73ef 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,7 @@ + diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..e5bcd84 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index fbb6828..5d19981 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 6564d52..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/app.iml b/app/app.iml index 17220a5..02a1abc 100644 --- a/app/app.iml +++ b/app/app.iml @@ -12,10 +12,7 @@ - + @@ -36,13 +33,13 @@ - + - + @@ -50,6 +47,15 @@ + + + + + + + + + @@ -57,6 +63,7 @@ + @@ -64,26 +71,38 @@ + + + + + + + + + + + - - - - - - - + + + + + + - - + + + + diff --git a/app/build.gradle b/app/build.gradle index 11deb5e..8c4e1c8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ dependencies { } android { compileSdkVersion 21 - buildToolsVersion '19.1.0' + buildToolsVersion '21.1.2' defaultConfig { minSdkVersion 19 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8167217..43c6724 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,7 +8,6 @@ - task = new AsyncTask() { + + double latitude = gps.getLatitude(); + double longitude = gps.getLongitude(); + String server = Client_Functions.getPref("server_URL", getApplicationContext()); + String path = Client_Functions.cleanPath(Client_Functions.getPref("script_path", getApplicationContext())); + String script = Client_Functions.getPref("script_name", getApplicationContext()); + String fullurl = "http://" + server + ((path.equals("")) ? script : "/" + path + "/" + script); + + protected String doInBackground(String... urls) { + String response = ""; + + try { + HttpClient client = new DefaultHttpClient(); + HttpPost httpPOST = new HttpPost(fullurl); + List params = new ArrayList<>(); + params.add(new BasicNameValuePair("UID", uid)); + params.add(new BasicNameValuePair("DID", getAndroid_id())); + params.add(new BasicNameValuePair("DeviceName", getDeviceName())); + params.add(new BasicNameValuePair("hasNFC", getNfc_support())); + params.add(new BasicNameValuePair("Latitude", String.valueOf(latitude))); + params.add(new BasicNameValuePair("Longitude", String.valueOf(longitude))); + params.add(new BasicNameValuePair("TelNum", number)); + params.add(new BasicNameValuePair("switch", "motion")); + params.add(new BasicNameValuePair("motion_thread", thread)); + params.add(new BasicNameValuePair("motion_action", action)); + UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, HTTP.UTF_8); + httpPOST.setEntity(ent); + HttpResponse execute = client.execute(httpPOST); + InputStream content = execute.getEntity().getContent(); + BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); + String s; + + while ((s = buffer.readLine()) != null) { + response += s; + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return response; + } + + protected void onPostExecute(String result) { + if (result == "Log in") { + finish(); + } + JsonReadTask task = new JsonReadTask(); + web.setEnabled(true); + task.execute(); + textView.setText(result); + runOnUiThread(new Runnable() { + + @Override + public void run() { + myProgress.setProgress(0); + } + }); + } + }; + //----run task---- + + task.execute(); + } + private class DownloadImageTask extends AsyncTask { + ImageView bmImage; + String server = Client_Functions.getPref("server_URL", getApplicationContext()); + String path = Client_Functions.cleanPath(Client_Functions.getPref("script_path", getApplicationContext())); + String script = Client_Functions.getPref("script_name", getApplicationContext()); + String fullurl = "http://" + server + ((path.equals("")) ? script : "/" + path + "/" + script); + + public DownloadImageTask(ImageView bmImage) { + this.bmImage = bmImage; + } + + protected Bitmap doInBackground(String... urls) { + Bitmap mIcon11 = null; + String imagefile = urls[0]; + try { + HttpClient client = new DefaultHttpClient(); + + HttpPost httpPOST = new HttpPost(fullurl); + List params = new ArrayList<>(); + + //params.add(new BasicNameValuePair("retrieve", "switch_info")); + params.add(new BasicNameValuePair("UID", uid)); + params.add(new BasicNameValuePair("DID", getAndroid_id())); + params.add(new BasicNameValuePair("DeviceName", getDeviceName())); + params.add(new BasicNameValuePair("hasNFC", getNfc_support())); + params.add(new BasicNameValuePair("TelNum", number)); + params.add(new BasicNameValuePair("switch", "retrieve_image")); + params.add(new BasicNameValuePair("motion_image", imagefile)); + UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, HTTP.UTF_8); + httpPOST.setEntity(ent); + + HttpResponse response = client.execute(httpPOST); + + HttpEntity entity = response.getEntity(); + InputStream is = entity.getContent(); + + mIcon11 = BitmapFactory.decodeStream(is); + + } catch (Exception e) { + Log.e("Error", e.getMessage()); + e.printStackTrace(); + } + return mIcon11; + } + } + private class JsonReadTask extends AsyncTask { + double latitude = gps.getLatitude(); double longitude = gps.getLongitude(); String server = Client_Functions.getPref("server_URL", getApplicationContext()); @@ -453,66 +593,200 @@ protected void onPostExecute(String result) { CreateButtons(); } } + public void CreateButtons() { try { JSONObject jsonResponse = new JSONObject(jsonResult); JSONArray jsonMainNode = jsonResponse.optJSONArray("switch_info"); LinearLayout ll = (LinearLayout) findViewById(R.id.LinearLayout1); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ); - params.setMargins(0, 22, 0, 0); + params.weight = 1.0f; + params.gravity = Gravity.CENTER_HORIZONTAL; + params.setMargins(20, 20, 20, 0); + + LinearLayout.LayoutParams webparams = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ); + webparams.weight = 1.0f; + webparams.gravity = Gravity.CENTER_HORIZONTAL; + Display display = getWindowManager().getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + int width = size.x; + + int dimensMargin = 160; + float densityMargin = getResources().getDisplayMetrics().density; + int finalDimensMargin = (int)(dimensMargin * densityMargin); + webparams.setMargins((width/2-finalDimensMargin), 0, (width/2-finalDimensMargin), 0); + for (int i = 0; i < jsonMainNode.length(); i++) { + final JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); final String name = jsonChildNode.optString("name"); + final Boolean reports_current_status = jsonChildNode.optBoolean("reports_current_status", false); + final Boolean current_status = jsonChildNode.optBoolean("current_status", false); final String app_will_request = jsonChildNode.optString("app_will_request"); + final String motion_thread = jsonChildNode.optString("motion_thread"); - if(jsonChildNode.optString("timeout") != "") { + if (jsonChildNode.optString("timeout") != "") { final String sleepytime = jsonChildNode.optString("timeout"); SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit(); prefs.putString("sleepytime_" + i, sleepytime); prefs.commit(); - } - else{ + } else { final String sleepytime = "0"; SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit(); prefs.putString("sleepytime_" + i, sleepytime); prefs.commit(); } - if(jsonChildNode.optString("display_progress") != "") { + if (jsonChildNode.optString("display_progress") != "") { final String dsleepytime = jsonChildNode.optString("display_progress"); SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit(); prefs.putString("dsleepytime_" + i, dsleepytime); prefs.commit(); - } - else{ - final String dsleepytime = "notapplicable"; + } else { + final String dsleepytime = "0"; SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit(); prefs.putString("dsleepytime_" + i, dsleepytime); prefs.commit(); } - - ToggleButton btn = new ToggleButton(this); - btn.setId(i); - final int id_ = btn.getId(); - btn.setText(name); - btn.setTextOn(name); - btn.setTextOff(name); - //btn.setLayoutParams(params); - ll.addView(btn, params); - btn = (ToggleButton) findViewById(id_); - btn.setOnClickListener(new View.OnClickListener() { - public void onClick(View view) { - textView.setText("Toggling " + name + "..."); - ToggleButton tb = (ToggleButton) view; - tb.setEnabled(!tb.isEnabled()); - tb.setChecked(!tb.isChecked()); - runControl(app_will_request, id_); - } - }); + //ll.removeView(findViewById(i)); + if (findViewById(i) == null) { + Log.v("button", String.valueOf(i)); + ToggleButton btn = new ToggleButton(this); + btn.setId(i); + final int id_ = btn.getId(); + btn.setText(name); + btn.setTextOn(name); + btn.setTextOff(name); + btn.setChecked(current_status); + //btn.setLayoutParams(); + ll.addView(btn, params); + btn = (ToggleButton) findViewById(id_); + btn.setOnClickListener(new View.OnClickListener() { + public void onClick(View view) { + textView.setText("Toggling " + name + "..."); + ToggleButton tb = (ToggleButton) view; + tb.setEnabled(!tb.isEnabled()); + tb.setChecked(!tb.isChecked()); + runControl(app_will_request, id_); + } + }); + /* + if(motion_image_file != ""){ + ImageView img = new ImageView(this); + img.setId(12 + i); + img.setScaleType(ImageView.ScaleType.FIT_CENTER); + img.setAdjustViewBounds(true); + final int iid_ = img.getId(); + ll.addView(img); + new DownloadImageTask((ImageView) findViewById(iid_)).execute(motion_image_file); + } + */ + if(motion_thread != ""){ + String server = Client_Functions.getPref("server_URL", getApplicationContext()); + String path = Client_Functions.cleanPath(Client_Functions.getPref("script_path", getApplicationContext())); + String script = Client_Functions.getPref("script_name", getApplicationContext()); + String fullurl = "http://"+server+((path.equals(""))? script : "/"+path+"/"+script); + + String postData = "UID="+uid+"&DID="+getAndroid_id()+"&DeviceName="+getDeviceName()+"&hasNFC="+getNfc_support()+"&motion_thread="+motion_thread+"&TelNum="+number+"&switch=motion&motion_action=retrieve_image"; + + WebView web = new WebView(this); + web.setId(12 + i); + + LinearLayout secondlayout=(LinearLayout)this.getLayoutInflater().inflate(R.layout.webview,null); + + //params.setMargins(300, 300, 0, 0); + //web.setLayoutParams(params); + //web.setLeft(100); + + //web.getSettings().setUseWideViewPort(true); + web.postUrl(fullurl, EncodingUtils.getBytes(postData, "BASE64")); + //web.loadUrl(motion_image_url);1 + final int iid_ = web.getId(); + secondlayout.addView(web, webparams); + //btn.setLayoutParams(); + + ll.addView(secondlayout); + web = (WebView) findViewById(iid_); + web.setOnTouchListener(new View.OnTouchListener() { + + public final static int FINGER_RELEASED = 0; + public final static int FINGER_TOUCHED = 1; + public final static int FINGER_DRAGGING = 2; + public final static int FINGER_UNDEFINED = 3; + + private int fingerState = FINGER_RELEASED; + + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + + switch (motionEvent.getAction()) { + + case MotionEvent.ACTION_DOWN: + if (fingerState == FINGER_RELEASED) fingerState = FINGER_TOUCHED; + else fingerState = FINGER_UNDEFINED; + break; + + case MotionEvent.ACTION_UP: + webControl(motion_thread, "snapshot", iid_); + //Toast.makeText(getBaseContext(), "Snapshot thread " + motion_thread, Toast.LENGTH_SHORT).show(); + if(fingerState != FINGER_DRAGGING) { + fingerState = FINGER_RELEASED; + // Your onClick codes + } + else if (fingerState == FINGER_DRAGGING) fingerState = FINGER_RELEASED; + else fingerState = FINGER_UNDEFINED; + break; + + case MotionEvent.ACTION_MOVE: + if (fingerState == FINGER_TOUCHED || fingerState == FINGER_DRAGGING) fingerState = FINGER_DRAGGING; + else fingerState = FINGER_UNDEFINED; + break; + + default: + fingerState = FINGER_UNDEFINED; + + } + + return false; + } + }); + + //web.setClickable(true); + //web.getSettings().setBuiltInZoomControls(false); + //web.setOnTouchListener(new View.OnTouchListener() { + // public boolean onTouch(View v, MotionEvent event) { + // if (event.getAction() == MotionEvent.ACTION_DOWN) { + // webControl(motion_thread, "snapshot", iid_); + // Toast.makeText(getBaseContext(), "Snapshot thread " + motion_thread, Toast.LENGTH_SHORT).show(); + // return false; + // } + // return false; + // } + //}); + web.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + webControl(motion_thread, "restart", iid_); + Toast.makeText(getBaseContext(), "Restart motion", Toast.LENGTH_SHORT).show(); + return true; + } + }); + } + } else { + if(reports_current_status) { + ToggleButton b = (ToggleButton) findViewById(i); + b.setChecked(current_status); + } + } } } catch (JSONException e) { if(jsonResult.contains("Geo")){ diff --git a/app/src/main/java/com/airlim/garagetrois/Login.java b/app/src/main/java/com/airlim/garagetrois/Login.java index 53b4d94..2b86a42 100644 --- a/app/src/main/java/com/airlim/garagetrois/Login.java +++ b/app/src/main/java/com/airlim/garagetrois/Login.java @@ -7,6 +7,9 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.telephony.TelephonyManager; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -16,7 +19,9 @@ import android.os.AsyncTask; import android.provider.Settings.Secure; import android.util.Log; +import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; import android.widget.NumberPicker; import android.widget.TextView; import org.apache.http.HttpResponse; @@ -33,6 +38,7 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.logging.Logger; import android.widget.Toast; @@ -60,6 +66,19 @@ public void onBackPressed() { } } + private EditText findInput(ViewGroup np) { + int count = np.getChildCount(); + for (int i = 0; i < count; i++) { + final View child = np.getChildAt(i); + if (child instanceof ViewGroup) { + findInput((ViewGroup) child); + } else if (child instanceof EditText) { + return (EditText) child; + } + } + return null; + } + @Override protected void onCreate(Bundle savedInstanceState) { @@ -121,12 +140,62 @@ public void onValueChange(NumberPicker picker, int oldVal, int newVal) { np2.requestFocus(); } }); + + EditText input = findInput(np); + TextWatcher tw = new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, + int count) {} + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) {} + + @Override + public void afterTextChanged(Editable s) { + if (s.toString().length() != 0) { + Integer value = Integer.parseInt(s.toString()); + if (value >= np.getMinValue()) { + np.setValue(value); + np2.requestFocus(); + } + } + } + }; + input.addTextChangedListener(tw); + np2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { np3.requestFocus(); } }); + + EditText input2 = findInput(np2); + TextWatcher tw2 = new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, + int count) {} + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) {} + + @Override + public void afterTextChanged(Editable s) { + if (s.toString().length() != 0) { + Integer value = Integer.parseInt(s.toString()); + if (value >= np2.getMinValue()) { + np2.setValue(value); + np3.requestFocus(); + } + } + } + }; + input2.addTextChangedListener(tw2); + np3.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override @@ -134,11 +203,62 @@ public void onValueChange(NumberPicker picker, int oldVal, int newVal) { np4.requestFocus(); } }); + + EditText input3 = findInput(np3); + TextWatcher tw3 = new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, + int count) {} + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) {} + + @Override + public void afterTextChanged(Editable s) { + if (s.toString().length() != 0) { + Integer value = Integer.parseInt(s.toString()); + if (value >= np3.getMinValue()) { + np3.setValue(value); + np4.requestFocus(); + } + } + } + }; + input3.addTextChangedListener(tw3); + np4.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { } }); + EditText input4 = findInput(np4); + TextWatcher tw4 = new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, + int count) {} + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) {} + + @Override + public void afterTextChanged(Editable s) { + if (s.toString().length() != 0) { + Integer value = Integer.parseInt(s.toString()); + if (value >= np4.getMinValue()) { + np4.setValue(value); + np4.clearFocus(); + LogInTask task = new LogInTask(); + //String formatted = String.format("%s%s%s%s", a, a2, a3, a4); + task.execute(createuid()); + } + } + } + }; + input4.addTextChangedListener(tw4); } @Override @@ -219,8 +339,9 @@ protected void onPostExecute(String result) { if(result.startsWith(Hash.md5(adminresult))){ String[] response_var = result.split(","); geofence = response_var[1]; - Log.v("geofence",geofence); Log.v("result",result); + Log.v("geofence",geofence); + authd = "true"; admind = "true"; show(); @@ -247,12 +368,16 @@ else if(result.startsWith(Hash.md5(userresult))){ } public String createuid(){ NumberPicker numPicker = (NumberPicker)findViewById(R.id.numberPicker1); + numPicker.clearFocus(); int x = numPicker.getValue(); NumberPicker numPicker2 = (NumberPicker)findViewById(R.id.numberPicker2); + numPicker2.clearFocus(); int x2 = numPicker2.getValue(); NumberPicker numPicker3 = (NumberPicker)findViewById(R.id.numberPicker3); + numPicker3.clearFocus(); int x3 = numPicker3.getValue(); NumberPicker numPicker4 = (NumberPicker)findViewById(R.id.numberPicker4); + numPicker4.clearFocus(); int x4 = numPicker4.getValue(); String formatted = String.format("%d%d%d%d", x, x2, x3, x4); return formatted; @@ -269,7 +394,7 @@ public void show() { final Context context = this; Intent intent = new Intent(context, Control.class); - if(tryuid.equals("gps0")) { + if(tryuid.equals("gps0") && Objects.equals(createuid(), "0000")) { tryuid = ""; intent.putExtra("uid", "gps0"); } diff --git a/app/src/main/res/layout/control.xml b/app/src/main/res/layout/control.xml index 412d110..b5c3ae6 100644 --- a/app/src/main/res/layout/control.xml +++ b/app/src/main/res/layout/control.xml @@ -1,35 +1,39 @@ - + + - + android:textSize="20sp" + android:text="@string/placeholder" /> + + - - - + android:layout_height="20dp"> - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/webview.xml b/app/src/main/res/layout/webview.xml new file mode 100644 index 0000000..fed0264 --- /dev/null +++ b/app/src/main/res/layout/webview.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d78c45f..8784f3a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,6 +24,7 @@ Garage à Trois - User List Waiting for server… Debug + Motion Settings diff --git a/app/src/main/res/values/strings_activity_settings.xml b/app/src/main/res/values/strings_activity_settings.xml index 602034d..cfbee98 100644 --- a/app/src/main/res/values/strings_activity_settings.xml +++ b/app/src/main/res/values/strings_activity_settings.xml @@ -34,5 +34,6 @@ Other Settings Enable toast messages and raw HTML output to be displayed Disable Settings Menu + Enable Motion webcam/camera image Disable access to this menu, this can be reverted by clearing app data. diff --git a/build.gradle b/build.gradle index 5a968eb..6b87642 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' + classpath 'com.android.tools.build:gradle:2.1.2' } } diff --git a/build/intermediates/dex-cache/cache.xml b/build/intermediates/dex-cache/cache.xml index a232590..e9e1ca9 100644 --- a/build/intermediates/dex-cache/cache.xml +++ b/build/intermediates/dex-cache/cache.xml @@ -2,25 +2,25 @@ - + revision="21.1.2" + sha1="4b74cefe1f0c1b819e7260c8627a14674e37fd35"> + - + - + revision="21.1.2" + sha1="2c91c949a45a21cdecf26e03951e46c7beec9ad8"> + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 332ef88..ec47262 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu May 28 09:41:47 MDT 2015 +#Mon Jul 25 23:23:45 MDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip