From fcc38d2fb4e48f7e3bcaa2d6fc732dbf230b93c0 Mon Sep 17 00:00:00 2001 From: Derek Zhu Date: Thu, 7 Jan 2016 21:06:00 +1300 Subject: [PATCH 1/2] refactor for idk 23 and upgraded libraries --- PrinterApp/app/build.gradle | 25 +- .../app/libs/android-async-http-1.4.6.jar | Bin 95377 -> 0 bytes .../app/libs/android-async-http-1.4.9.jar | Bin 0 -> 106424 bytes .../app/printerapp/devices/FinishDialog.java | 6 +- .../devices/camera/CameraHandler.java | 12 +- .../printerapp/library/LibraryFragment.java | 4 +- .../library/LibraryModelCreation.java | 4 +- .../octoprint/HttpClientHandler.java | 20 +- .../octoprint/OctoprintAuthentication.java | 21 +- .../octoprint/OctoprintConnection.java | 55 +- .../octoprint/OctoprintControl.java | 252 ++++---- .../printerapp/octoprint/OctoprintFiles.java | 554 ++++++++---------- .../octoprint/OctoprintNetwork.java | 18 +- .../octoprint/OctoprintProfiles.java | 12 +- .../octoprint/OctoprintSlicing.java | 300 ++++------ PrinterApp/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- PrinterApp/materialdesignlibrary/build.gradle | 2 +- 18 files changed, 561 insertions(+), 730 deletions(-) delete mode 100644 PrinterApp/app/libs/android-async-http-1.4.6.jar create mode 100644 PrinterApp/app/libs/android-async-http-1.4.9.jar diff --git a/PrinterApp/app/build.gradle b/PrinterApp/app/build.gradle index ea258cc..b183931 100644 --- a/PrinterApp/app/build.gradle +++ b/PrinterApp/app/build.gradle @@ -1,16 +1,17 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 21 - buildToolsVersion "20.0.0" + compileSdkVersion 23 + buildToolsVersion "23.0.2" defaultConfig { applicationId "android.app.printerapp" minSdkVersion 14 - targetSdkVersion 20 + targetSdkVersion 23 versionName 1.0 + ";" + computeVersionName() versionCode System.getenv("BUILD_NUMBER") as Integer ?: 0 +// useLibrary 'org.apache.http.legacy' } buildTypes { @@ -52,27 +53,31 @@ def computeVersionName() { repositories { mavenCentral() jcenter() + maven { url "https://jitpack.io" } } dependencies { - compile 'com.android.support:support-v4:21.+' + compile 'com.android.support:support-v4:23.1.1' compile files('libs/autobahn-0.5.0.jar') compile files('libs/devsmartlib.jar') compile files('libs/jmdns.jar') // compile files('libs/nineoldandroids-2.4.0.jar') compile files('libs/core-1.51.0.0.jar') + compile "cz.msebera.android:httpclient:4.4.1.1" //UI libraries compile project(':horizontallistlibrary') compile 'uk.co.androidalliance:edgeeffectoverride:1.0.2' //Scroll mode effect //Material design libraries - compile "com.android.support:appcompat-v7:21.0.+" - compile 'com.android.support:cardview-v7:21.+' - compile 'com.github.navasmdc:MaterialDesign:1.+@aar' - compile 'com.github.fengdai:alertdialogpro-theme-material:0.2.1' + compile "com.android.support:appcompat-v7:23.1.1" + compile 'com.android.support:cardview-v7:23.1.1' + compile 'com.github.navasmdc:MaterialDesign:1.5@aar' + compile 'com.github.fengdai:alertdialogpro-theme-material:0.2.6' compile project(':materialdesignlibrary') - compile 'com.afollestad:material-dialogs:0.6.1.6' //Material design dialogs + compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { + transitive = true + } compile 'com.pnikosis:materialish-progress:1.4' compile 'com.rengwuxian.materialedittext:library:1.8.2' compile 'org.apache.httpcomponents:httpclient-android:4.3.5' - compile files('libs/android-async-http-1.4.6.jar') + compile files('libs/android-async-http-1.4.9.jar') } diff --git a/PrinterApp/app/libs/android-async-http-1.4.6.jar b/PrinterApp/app/libs/android-async-http-1.4.6.jar deleted file mode 100644 index 70391cb95beb578d9e9bf69844473ed7857bbb4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95377 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 BrZxZo diff --git a/PrinterApp/app/libs/android-async-http-1.4.9.jar b/PrinterApp/app/libs/android-async-http-1.4.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..c2d8b8627fc5160d13f9715a5e8bf6febdc3a441 GIT binary patch literal 106424 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 literal 0 HcmV?d00001 diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/devices/FinishDialog.java b/PrinterApp/app/src/main/java/android/app/printerapp/devices/FinishDialog.java index 40ce012..8fa7117 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/devices/FinishDialog.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/devices/FinishDialog.java @@ -16,7 +16,7 @@ import android.widget.CheckBox; import android.widget.EditText; -import com.afollestad.materialdialogs.MaterialDialogCompat; +import com.afollestad.materialdialogs.AlertDialogWrapper; import java.io.File; @@ -41,7 +41,7 @@ public FinishDialog(Context context, ModelPrinter p){ public void createDialog(){ //Constructor - MaterialDialogCompat.Builder adb = new MaterialDialogCompat.Builder(mContext); + AlertDialogWrapper.Builder adb = new AlertDialogWrapper.Builder(mContext); adb.setTitle(mContext.getString(R.string.finish_dialog_title) + " " + mPrinter.getJob().getFilename()); //Inflate the view @@ -107,7 +107,7 @@ public void onClick(DialogInterface dialogInterface, int i) { public void createFinishDialogSave(final ModelPrinter m, final File file) { //Constructor - MaterialDialogCompat.Builder adb = new MaterialDialogCompat.Builder(mContext); + AlertDialogWrapper.Builder adb = new AlertDialogWrapper.Builder(mContext); adb.setTitle(m.getDisplayName() + " (100%) - " +file.getName()); //Inflate the view diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/devices/camera/CameraHandler.java b/PrinterApp/app/src/main/java/android/app/printerapp/devices/camera/CameraHandler.java index de37fa0..3e9b106 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/devices/camera/CameraHandler.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/devices/camera/CameraHandler.java @@ -8,14 +8,12 @@ import android.view.View.OnClickListener; import android.widget.FrameLayout; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.conn.HttpHostConnectException; -import org.apache.http.impl.client.DefaultHttpClient; - -import java.io.IOException; import java.net.URI; +import cz.msebera.android.httpclient.HttpResponse; +import cz.msebera.android.httpclient.client.methods.HttpGet; +import cz.msebera.android.httpclient.impl.client.DefaultHttpClient; + /** * This class will handle the Camera connection. * The device camera will stream on MJPEG. @@ -103,7 +101,7 @@ protected MjpegInputStream doInBackground(String... url) { HttpResponse res = null; - DefaultHttpClient httpclient = new DefaultHttpClient(); + DefaultHttpClient httpclient = new DefaultHttpClient(); try { res = httpclient.execute(new HttpGet(URI.create(url[0]))); diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryFragment.java b/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryFragment.java index 5f38040..1de0c1f 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryFragment.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryFragment.java @@ -29,8 +29,8 @@ import android.widget.RadioGroup; import android.widget.TextView; +import com.afollestad.materialdialogs.AlertDialogWrapper; import com.afollestad.materialdialogs.MaterialDialog; -import com.afollestad.materialdialogs.MaterialDialogCompat; import com.rengwuxian.materialedittext.MaterialEditText; import java.io.File; @@ -359,7 +359,7 @@ public void optionSearchLibrary() { final EditText et = new EditText(getActivity()); - MaterialDialogCompat.Builder adb = new MaterialDialogCompat.Builder(getActivity()); + AlertDialogWrapper.Builder adb = new AlertDialogWrapper.Builder(getActivity()); adb.setTitle(R.string.library_search_dialog_title); adb.setView(et); diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryModelCreation.java b/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryModelCreation.java index ae42bc8..98520b8 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryModelCreation.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/library/LibraryModelCreation.java @@ -1,6 +1,5 @@ package android.app.printerapp.library; -import android.app.AlertDialog; import android.app.printerapp.Log; import android.app.printerapp.R; import android.app.printerapp.viewer.DataStorage; @@ -14,6 +13,7 @@ import android.graphics.Bitmap; import android.os.Handler; import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; @@ -40,7 +40,7 @@ */ public class LibraryModelCreation { - static AlertDialog mAlert; + static MaterialDialog mAlert; static String mName; public static ViewerSurfaceView mSnapshotSurface; public static FrameLayout mSnapshotLayout; diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/HttpClientHandler.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/HttpClientHandler.java index 0e2cf94..be87243 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/HttpClientHandler.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/HttpClientHandler.java @@ -9,21 +9,21 @@ import com.loopj.android.http.ResponseHandlerInterface; import com.loopj.android.http.SyncHttpClient; -import org.apache.http.HttpEntity; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpPatch; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLContexts; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; - import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import javax.net.ssl.SSLContext; +import cz.msebera.android.httpclient.HttpEntity; +import cz.msebera.android.httpclient.client.ClientProtocolException; +import cz.msebera.android.httpclient.client.methods.CloseableHttpResponse; +import cz.msebera.android.httpclient.client.methods.HttpPatch; +import cz.msebera.android.httpclient.conn.ssl.SSLConnectionSocketFactory; +import cz.msebera.android.httpclient.impl.client.CloseableHttpClient; +import cz.msebera.android.httpclient.impl.client.HttpClientBuilder; +import cz.msebera.android.httpclient.ssl.SSLContexts; + /** * Static class to handle Http requests with the old API or the new one (with API_KEY) * @author alberto-baeza @@ -87,7 +87,7 @@ public static void patch(Context context, String url, HttpEntity entity, String SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - CloseableHttpClient httpClient= HttpClientBuilder.create() + CloseableHttpClient httpClient= HttpClientBuilder.create() .setSSLSocketFactory(sslsf) .build(); diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintAuthentication.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintAuthentication.java index 2807dd1..00705bc 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintAuthentication.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintAuthentication.java @@ -10,8 +10,6 @@ import com.loopj.android.http.JsonHttpResponseHandler; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONException; import org.json.JSONObject; @@ -26,6 +24,9 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; + /** * Created by alberto-baeza on 11/21/14. */ @@ -46,7 +47,9 @@ public static void getAuth(final Context context, final ModelPrinter p, final bo HttpClientHandler.get(p.getAddress() + HttpUtils.URL_AUTHENTICATION, null, new JsonHttpResponseHandler(){ @Override - public void onProgress(int bytesWritten, int totalSize) { + public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, String responseString, Throwable throwable) { + super.onFailure(statusCode, headers, responseString, throwable); + Log.i("Connection", "Failure! " + responseString); } @Override @@ -61,13 +64,6 @@ public void onSuccess(int statusCode, Header[] headers, JSONObject response) { e.printStackTrace(); } } - - @Override - public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { - super.onFailure(statusCode, headers, responseString, throwable); - - Log.i("Connection", "Failure! " + responseString); - } }); } @@ -118,11 +114,6 @@ public static void postAuth(final Context context, String key, final ModelPrinte HttpClientHandler.post(context, p.getAddress() + HttpUtils.URL_AUTHENTICATION, entity, "application/json", new JsonHttpResponseHandler() { - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintConnection.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintConnection.java index 305bc16..4f5e984 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintConnection.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintConnection.java @@ -28,17 +28,16 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.loopj.android.http.JsonHttpResponseHandler; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONException; import org.json.JSONObject; -import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; import de.tavendo.autobahn.WebSocketConnection; import de.tavendo.autobahn.WebSocketException; import de.tavendo.autobahn.WebSocketHandler; @@ -76,20 +75,12 @@ public static void startConnection(String url, final Context context, String por entity = new StringEntity(object.toString(), "UTF-8"); } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); } Log.i("Profile", "Start connection on " + profile); HttpClientHandler.post(context,url + HttpUtils.URL_CONNECTION, entity, "application/json", new JsonHttpResponseHandler(){ - - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { @@ -100,9 +91,7 @@ public void onFailure(int statusCode, Header[] headers, super.onFailure(statusCode, headers, responseString, throwable); } - }); - - + }); } public static void disconnect(Context context, String url){ @@ -114,29 +103,15 @@ public static void disconnect(Context context, String url){ entity = new StringEntity(object.toString(), "UTF-8"); } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); } HttpClientHandler.post(context,url + HttpUtils.URL_CONNECTION, - entity, "application/json", new JsonHttpResponseHandler(){ - - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - }); + entity, "application/json", new JsonHttpResponseHandler()); } public static void getLinkedConnection(final Context context, final ModelPrinter p){ HttpClientHandler.get(p.getAddress() + HttpUtils.URL_CONNECTION, null, new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); @@ -375,17 +350,10 @@ public static void getUpdatedSettings(final ModelPrinter p, String profile){ HttpClientHandler.get(p.getAddress() + HttpUtils.URL_PROFILES + "/" + profile, null, new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); - Log.i("Connection", response.toString()); try { @@ -470,14 +438,6 @@ public void onSuccess(int statusCode, Header[] headers, JSONObject response) { } catch (JSONException e) { e.printStackTrace(); } - - - - } - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } @Override @@ -507,18 +467,11 @@ public static void setSettings(final ModelPrinter p, String newName, final Strin entity = new StringEntity(object.toString(), "UTF-8"); } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); } HttpClientHandler.post(context, p.getAddress() + HttpUtils.URL_SETTINGS, entity, "application/json", new JsonHttpResponseHandler() { - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintControl.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintControl.java index 3c024b5..7c547de 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintControl.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintControl.java @@ -12,45 +12,46 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.loopj.android.http.JsonHttpResponseHandler; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; -import org.apache.http.message.BasicHeader; -import org.apache.http.protocol.HTTP; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import java.io.UnsupportedEncodingException; import java.util.ArrayList; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; +import cz.msebera.android.httpclient.message.BasicHeader; +import cz.msebera.android.httpclient.protocol.HTTP; + /** * This class will issue commands to the server. Mainly control commands like Start, Pause and Cancel. * Also will control print head jog and extruder. - * @author alberto-baeza * + * @author alberto-baeza */ public class OctoprintControl { - - - /** - * Send a command to the server to start/pause/stop a job - * @param context - * @param url - * @param command - */ - public static void sendCommand(Context context, String url, String command){ - - JSONObject object = new JSONObject(); - StringEntity entity = null; - - try { - object.put("command", command); - entity = new StringEntity(object.toString(), "UTF-8"); + + + /** + * Send a command to the server to start/pause/stop a job + * + * @param context + * @param url + * @param command + */ + public static void sendCommand(Context context, String url, String command) { + + JSONObject object = new JSONObject(); + StringEntity entity = null; + + try { + object.put("command", command); + entity = new StringEntity(object.toString(), "UTF-8"); entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); - - } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); - } + + } catch (JSONException e) { + e.printStackTrace(); + } //Get progress dialog UI View waitingForServiceDialogView = LayoutInflater.from(context).inflate(R.layout.dialog_progress_content_horizontal, null); @@ -64,103 +65,93 @@ public static void sendCommand(Context context, String url, String command){ final Dialog connectionDialog = connectionDialogBuilder.build(); connectionDialog.show(); - - HttpClientHandler.post(context,url + HttpUtils.URL_CONTROL, - entity, "application/json", new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - - //Dismiss progress dialog - connectionDialog.dismiss(); - } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - - super.onFailure(statusCode, headers, responseString, throwable); - - //Dismiss progress dialog - connectionDialog.dismiss(); - MainActivity.showDialog(responseString); - } - }); - - - } - - /** - * Send a printer head command to jog or move home - * @param context - * @param url - * @param command - * @param axis - * @param amount - */ - public static void sendHeadCommand(Context context, String url, String command, String axis, double amount){ - - JSONObject object = new JSONObject(); - StringEntity entity = null; - - try { - - object.put("command", command); - if (command.equals("home")){ - - //Must be array list to be able to convert a JSONArray in API < 19 - ArrayList s = new ArrayList(); - if (axis.equals("xy")){ + HttpClientHandler.post(context, url + HttpUtils.URL_CONTROL, + entity, "application/json", new JsonHttpResponseHandler() { + + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + //Dismiss progress dialog + connectionDialog.dismiss(); + } + + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + + super.onFailure(statusCode, headers, responseString, throwable); + + //Dismiss progress dialog + connectionDialog.dismiss(); + MainActivity.showDialog(responseString); + } + }); + + + } + + /** + * Send a printer head command to jog or move home + * + * @param context + * @param url + * @param command + * @param axis + * @param amount + */ + public static void sendHeadCommand(Context context, String url, String command, String axis, double amount) { + + JSONObject object = new JSONObject(); + StringEntity entity = null; + + try { + + object.put("command", command); + if (command.equals("home")) { + + //Must be array list to be able to convert a JSONArray in API < 19 + ArrayList s = new ArrayList(); + if (axis.equals("xy")) { s.add("x"); s.add("y"); } - if (axis.equals("z"))s.add("z"); - - - object.put("axes", new JSONArray(s)); - - } else object.put(axis,amount); - - entity = new StringEntity(object.toString(), "UTF-8"); - - } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); - } - - - HttpClientHandler.post(context,url + HttpUtils.URL_PRINTHEAD, - entity, "application/json", new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - - } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - - super.onFailure(statusCode, headers, responseString, throwable); - MainActivity.showDialog(responseString); - } - }); - - } - - public static void sendToolCommand(Context context, String url, String command, String tool, double amount){ + if (axis.equals("z")) s.add("z"); + + + object.put("axes", new JSONArray(s)); + + } else object.put(axis, amount); + + entity = new StringEntity(object.toString(), "UTF-8"); + + } catch (JSONException e) { + e.printStackTrace(); + } + + HttpClientHandler.post(context, url + HttpUtils.URL_PRINTHEAD, + entity, "application/json", new JsonHttpResponseHandler() { + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + } + + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + + super.onFailure(statusCode, headers, responseString, throwable); + MainActivity.showDialog(responseString); + } + }); + + } + + public static void sendToolCommand(Context context, String url, String command, String tool, double amount) { JSONObject object = new JSONObject(); StringEntity entity = null; @@ -173,38 +164,33 @@ public static void sendToolCommand(Context context, String url, String command, JSONObject json = new JSONObject(); - if (tool!=null){ + if (tool != null) { - if (tool.equals("bed")){ + if (tool.equals("bed")) { destinationUrl = HttpUtils.URL_BED; - object.put("target",amount); + object.put("target", amount); } else { - json.put(tool,amount); + json.put(tool, amount); object.put("targets", json); } } else { - object.put("amount",amount); + object.put("amount", amount); } entity = new StringEntity(object.toString(), "UTF-8"); - } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); + } catch (JSONException e) { + e.printStackTrace(); } - Log.i("TOOL", "Sending: " + object.toString()); - HttpClientHandler.post(context,url + destinationUrl, - entity, "application/json", new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } + HttpClientHandler.post(context, url + destinationUrl, + entity, "application/json", new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintFiles.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintFiles.java index 3df4235..9972b4a 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintFiles.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintFiles.java @@ -14,24 +14,24 @@ import com.loopj.android.http.JsonHttpResponseHandler; import com.loopj.android.http.RequestParams; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.File; import java.io.FileNotFoundException; -import java.io.UnsupportedEncodingException; + +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; public class OctoprintFiles { - - /** - * Get the whole filelist from the server. - */ - public static void getFiles(final Context context , final ModelPrinter p, final File fileUpload){ - if (fileUpload!=null){ //TODO emulating fileUpload + /** + * Get the whole filelist from the server. + */ + public static void getFiles(final Context context, final ModelPrinter p, final File fileUpload) { + + if (fileUpload != null) { //TODO emulating fileUpload p.setLoaded(false); @@ -41,183 +41,167 @@ public static void getFiles(final Context context , final ModelPrinter p, final } - - HttpClientHandler.get(p.getAddress() + HttpUtils.URL_FILES, null, new JsonHttpResponseHandler(){ - - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - p.getFiles().clear(); - - try { - - JSONArray json = response.getJSONArray("files"); - - if (json != null) { + HttpClientHandler.get(p.getAddress() + HttpUtils.URL_FILES, null, new JsonHttpResponseHandler() { + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + p.getFiles().clear(); - if (fileUpload == null){ + try { - for (int i=0;i + * Right now it uses two requests, the first to upload the file and another one to load it in the printer. + * + * @param file + */ + public static void uploadFile(final Context context, final File file, final ModelPrinter p) { + + RequestParams params = new RequestParams(); - - HttpClientHandler.post(p.getAddress() + HttpUtils.URL_FILES + "/local", - params, new JsonHttpResponseHandler(){ + //if it's a local file + p.setJobPath(file.getAbsolutePath()); - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - //If success, the file was uploaded correctly - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - + try { + //TODO fix + //params.put("select", true); + params.put("file", file); - Log.i("SUCCESS", response.toString()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + + + Toast.makeText(context, p.getDisplayName() + ": " + context.getString(R.string.devices_text_loading) + " " + file.getName() + , Toast.LENGTH_LONG).show(); + p.setLoaded(false); + DatabaseController.handlePreference(DatabaseController.TAG_REFERENCES, p.getName(), p.getJobPath(), true); - try{ - //p.setLoaded(true); - fileCommand(context, p.getAddress(), file.getName(), "/local/", false, true); - Toast.makeText(context, p.getDisplayName() + ": " + context.getString(R.string.devices_toast_upload_1) + file.getName(), Toast.LENGTH_LONG).show(); + HttpClientHandler.post(p.getAddress() + HttpUtils.URL_FILES + "/local", + params, new JsonHttpResponseHandler() { + + //If success, the file was uploaded correctly + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + + Log.i("SUCCESS", response.toString()); + + + try { + //p.setLoaded(true); + fileCommand(context, p.getAddress(), file.getName(), "/local/", false, true); + + Toast.makeText(context, p.getDisplayName() + ": " + context.getString(R.string.devices_toast_upload_1) + file.getName(), Toast.LENGTH_LONG).show(); + + } catch (IllegalArgumentException e) { + + e.printStackTrace(); + p.setLoaded(true); + } - } catch (IllegalArgumentException e){ - e.printStackTrace(); - p.setLoaded(true); } - - - - } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - super.onFailure(statusCode, headers, responseString, throwable); - p.setLoaded(true); - Log.i("RESPONSEFAIL", responseString); - - Toast.makeText(context, p.getDisplayName() + ": " + context.getString(R.string.devices_toast_upload_2) + file.getName(), Toast.LENGTH_LONG).show(); - - } - - }); - - - } - - /** - * Method to delete a file on the server remotely after it was printed. - * @param context - * @param url - * @param filename - * @param target - */ - public static void deleteFile(Context context, String url, String filename, String target){ - - HttpClientHandler.delete(context, url + HttpUtils.URL_FILES + "/local/" + filename, - new JsonHttpResponseHandler(){ - - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - //If success, the file was uploaded correctly - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - - - } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - // TODO Auto-generated method stub - super.onFailure(statusCode, headers, responseString, throwable); - - } - - }); - - - } - - /** - * TODO CHANGE TO BACKGROUND DOWNLOAD - * This method will create a Download Manager to retrieve gcode files from the server. - * Files will be saved in the gcode folder for the current project. - * - * @param context - * @param url download reference - * @param path local folder to store the file - * @param filename - */ - public static void downloadFile(Context context, String url, String path, String filename){ + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + super.onFailure(statusCode, headers, responseString, throwable); + p.setLoaded(true); + Log.i("RESPONSEFAIL", responseString); + + Toast.makeText(context, p.getDisplayName() + ": " + context.getString(R.string.devices_toast_upload_2) + file.getName(), Toast.LENGTH_LONG).show(); + + } + + }); + + + } + + /** + * Method to delete a file on the server remotely after it was printed. + * + * @param context + * @param url + * @param filename + * @param target + */ + public static void deleteFile(Context context, String url, String filename, String target) { + + HttpClientHandler.delete(context, url + HttpUtils.URL_FILES + "/local/" + filename, + new JsonHttpResponseHandler() { + + //If success, the file was uploaded correctly + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + + } + + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + // TODO Auto-generated method stub + super.onFailure(statusCode, headers, responseString, throwable); + + } + + }); + + + } + + /** + * TODO CHANGE TO BACKGROUND DOWNLOAD + * This method will create a Download Manager to retrieve gcode files from the server. + * Files will be saved in the gcode folder for the current project. + * + * @param context + * @param url download reference + * @param path local folder to store the file + * @param filename + */ + public static void downloadFile(Context context, String url, String path, String filename) { Log.i("Slicer", "Downloading " + filename); - - DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http:/" + url + filename)); + + DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http:/" + url + filename)); //hide notifications request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN); - - // in order for this if to run, you must use the android 3.2 to compile your app - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - request.allowScanningByMediaScanner(); - //request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); - } + + // in order for this if to run, you must use the android 3.2 to compile your app + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + request.allowScanningByMediaScanner(); + //request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + } //Delete duplicated files - File extra = new File( path + filename); - if (extra.exists()){ + File extra = new File(path + filename); + if (extra.exists()) { extra.delete(); } - - request.setDestinationUri(Uri.parse("file://" + path + filename)); - - - // get download service and enqueue file - DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); - manager.enqueue(request); + request.setDestinationUri(Uri.parse("file://" + path + filename)); - } + // get download service and enqueue file + DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); + manager.enqueue(request); + } - } diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintNetwork.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintNetwork.java index c2c57bb..6dc10c1 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintNetwork.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintNetwork.java @@ -10,8 +10,6 @@ import com.loopj.android.http.JsonHttpResponseHandler; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONException; import org.json.JSONObject; @@ -26,6 +24,9 @@ import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; + public class OctoprintNetwork { /** @@ -38,11 +39,6 @@ public static void getNetworkList(final PrintNetworkManager controller, final Mo HttpClientHandler.sync_get(p.getAddress() + HttpUtils.URL_AUTHENTICATION, null, new JsonHttpResponseHandler() { - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); @@ -95,11 +91,6 @@ public void onSuccess(int statusCode, Header[] headers, JSONObject response) { HttpClientHandler.get(p.getAddress() + HttpUtils.URL_NETWORK, null, new JsonHttpResponseHandler(){ - @Override - public void onProgress(int bytesWritten, int totalSize) { - - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { @@ -110,8 +101,6 @@ public void onSuccess(int statusCode, Header[] headers, } - - @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { @@ -163,7 +152,6 @@ public static void configureNetwork(final PrintNetworkReceiver pr, final Context entity = new StringEntity(object.toString(), "UTF-8"); } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); } HttpClientHandler.post(context,url + HttpUtils.URL_NETWORK, diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintProfiles.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintProfiles.java index 9129f59..83306df 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintProfiles.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintProfiles.java @@ -5,12 +5,11 @@ import com.loopj.android.http.JsonHttpResponseHandler; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONException; import org.json.JSONObject; -import java.io.UnsupportedEncodingException; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; /** * Created by alberto-baeza on 12/9/14. @@ -41,7 +40,6 @@ public static void uploadProfile(final Context context, final String url, final id = profile.getString("id"); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } @@ -51,11 +49,6 @@ public static void uploadProfile(final Context context, final String url, final HttpClientHandler.post(context,url + HttpUtils.URL_PROFILES, entity, "application/json", new JsonHttpResponseHandler(){ - @Override - public void onProgress(int bytesWritten, - int totalSize) { - } - @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { @@ -124,7 +117,6 @@ public static void updateProfile(final Context context, final String url, final entity = new StringEntity(finalProfile.toString(), "UTF-8"); Log.i("OUT", "Profile to add:" + finalProfile.toString()); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } diff --git a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintSlicing.java b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintSlicing.java index b82c348..69544ee 100644 --- a/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintSlicing.java +++ b/PrinterApp/app/src/main/java/android/app/printerapp/octoprint/OctoprintSlicing.java @@ -12,25 +12,26 @@ import com.loopj.android.http.JsonHttpResponseHandler; import com.loopj.android.http.RequestParams; -import org.apache.http.Header; -import org.apache.http.entity.StringEntity; import org.json.JSONException; import org.json.JSONObject; import java.io.File; import java.io.FileNotFoundException; -import java.io.UnsupportedEncodingException; import java.util.Iterator; +import cz.msebera.android.httpclient.Header; +import cz.msebera.android.httpclient.entity.StringEntity; + public class OctoprintSlicing { /** * Upload a profile to the server with custom parameters + * * @param context * @param p * @param profile */ - public static void sendProfile(final Context context, final ModelPrinter p, JSONObject profile){ + public static void sendProfile(final Context context, final ModelPrinter p, JSONObject profile) { StringEntity entity = null; String key = null; @@ -38,83 +39,68 @@ public static void sendProfile(final Context context, final ModelPrinter p, JSON try { entity = new StringEntity(profile.toString(), "UTF-8"); key = profile.getString("key"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } - //Progress dialog to notify command events - final ProgressDialog pd = new ProgressDialog(context); - pd.setMessage(context.getString(R.string.devices_command_waiting)); - pd.show(); - - - HttpClientHandler.put(context,p.getAddress() + HttpUtils.URL_SLICING + "/" + key, - entity, "application/json", new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - - Log.i("OUT", response.toString()); - //Dismiss progress dialog - pd.dismiss(); + final ProgressDialog pd = new ProgressDialog(context); + pd.setMessage(context.getString(R.string.devices_command_waiting)); + pd.show(); + + + HttpClientHandler.put(context, p.getAddress() + HttpUtils.URL_SLICING + "/" + key, + entity, "application/json", new JsonHttpResponseHandler() { + + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); + + Log.i("OUT", response.toString()); + //Dismiss progress dialog + pd.dismiss(); //Reload profiles - retrieveProfiles(context,p); + retrieveProfiles(context, p); + } - } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - - super.onFailure(statusCode, headers, responseString, throwable); - Log.i("OUT", responseString.toString()); - //Dismiss progress dialog - pd.dismiss(); - MainActivity.showDialog(responseString); - } - }); - - - } + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + + super.onFailure(statusCode, headers, responseString, throwable); + Log.i("OUT", responseString.toString()); + //Dismiss progress dialog + pd.dismiss(); + MainActivity.showDialog(responseString); + } + }); + + + } /** * Delete the profile selected by the profile parameter + * * @param context * @param profile */ - public static void deleteProfile(final Context context, final ModelPrinter p, String profile){ - - HttpClientHandler.delete(context,p.getAddress() + HttpUtils.URL_SLICING + "/" + profile, new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } + public static void deleteProfile(final Context context, final ModelPrinter p, String profile) { + HttpClientHandler.delete(context, p.getAddress() + HttpUtils.URL_SLICING + "/" + profile, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); //Reload profiles - retrieveProfiles(context,p); - + retrieveProfiles(context, p); } - - }); } @@ -122,32 +108,27 @@ public void onSuccess(int statusCode, Header[] headers, /** * Method to retrieve slice profiles before sending the file to the actual printer - * */ - public static void retrieveProfiles(final Context context, final ModelPrinter p){ - - HttpClientHandler.get(p.getAddress() + HttpUtils.URL_SLICING, null, new JsonHttpResponseHandler(){ - - @Override - public void onProgress(int bytesWritten, int totalSize) { - } - - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { + public static void retrieveProfiles(final Context context, final ModelPrinter p) { + + HttpClientHandler.get(p.getAddress() + HttpUtils.URL_SLICING, null, new JsonHttpResponseHandler() { + + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { super.onSuccess(statusCode, headers, response); p.getProfiles().clear(); Iterator keys = response.keys(); - while(keys.hasNext()) { + while (keys.hasNext()) { String current = keys.next(); try { - if (response.getJSONObject(current).getBoolean("default")){ + if (response.getJSONObject(current).getBoolean("default")) { Log.i("OUT", "Selected item is " + response.getJSONObject(current).getString("key")); } @@ -155,7 +136,7 @@ public void onSuccess(int statusCode, Header[] headers, e.printStackTrace(); } - HttpClientHandler.get(p.getAddress() + HttpUtils.URL_SLICING + "/" + current , null, new JsonHttpResponseHandler() { + HttpClientHandler.get(p.getAddress() + HttpUtils.URL_SLICING + "/" + current, null, new JsonHttpResponseHandler() { @Override @@ -167,10 +148,11 @@ public void onSuccess(int statusCode, Header[] headers, /** * Check if the profile is already added because auto-refresh */ - for (JSONObject o : p.getProfiles()){ + for (JSONObject o : p.getProfiles()) { try { - if (o.getString("key").equals(response.getString("key"))) return; + if (o.getString("key").equals(response.getString("key"))) + return; } catch (JSONException e) { e.printStackTrace(); } @@ -178,7 +160,7 @@ public void onSuccess(int statusCode, Header[] headers, } - if (!p.getProfiles().contains(response)){ + if (!p.getProfiles().contains(response)) { p.getProfiles().add(response); @@ -195,22 +177,22 @@ public void onSuccess(int statusCode, Header[] headers, } - - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - super.onFailure(statusCode, headers, responseString, throwable); - Log.i("OUT", responseString.toString()); - } - }); - - } + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + + super.onFailure(statusCode, headers, responseString, throwable); + Log.i("OUT", responseString.toString()); + } + }); + + } - public static void getMetadata(String url, String filename){ + public static void getMetadata(String url, String filename) { - HttpClientHandler.get(url + HttpUtils.URL_FILES + "/local/" + filename, null, new JsonHttpResponseHandler(){ + HttpClientHandler.get(url + HttpUtils.URL_FILES + "/local/" + filename, null, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { @@ -224,13 +206,11 @@ public void onSuccess(int statusCode, Header[] headers, JSONObject response) { ViewerMainFragment.showProgressBar(StateUtils.SLICER_DOWNLOAD, Integer.parseInt(estimated)); - } catch (JSONException e) { e.printStackTrace(); } - } }); @@ -241,11 +221,12 @@ public void onSuccess(int statusCode, Header[] headers, JSONObject response) { /** * Send a slice command by uploading the file first and then send the command, the result * will be handled in the socket payload response + * * @param context * @param url * @param file */ - public static void sliceCommand(final Context context, final String url, final File file, final JSONObject extras){ + public static void sliceCommand(final Context context, final String url, final File file, final JSONObject extras) { RequestParams params = new RequestParams(); try { @@ -256,116 +237,93 @@ public static void sliceCommand(final Context context, final String url, final F } //Log.i("Slicer","Upaload " + file.getName()); - if (file!=null) - HttpClientHandler.post(url + HttpUtils.URL_FILES + "/local", - params, new JsonHttpResponseHandler(){ - - //Override onProgress because it's faulty - @Override - public void onProgress(int bytesWritten, int totalSize) { - super.onProgress(bytesWritten, totalSize); - - int progress = ( bytesWritten * 100 ) / totalSize; - - if (DatabaseController.getPreference(DatabaseController.TAG_SLICING, "Last")!=null) - if ((DatabaseController.getPreference("Slicing","Last")).equals(file.getName())){ - ViewerMainFragment.showProgressBar(StateUtils.SLICER_UPLOAD, progress); - } //else sendFailureMessage(0, null, null, null); - - - } - - - - //If success, the file was uploaded correctly - @Override - public void onSuccess(int statusCode, Header[] headers, - JSONObject response) { - super.onSuccess(statusCode, headers, response); - - - Log.i("Slicer", "Upload successful"); //TODO - - JSONObject object = extras ; - StringEntity entity = null; + if (file != null) + HttpClientHandler.post(url + HttpUtils.URL_FILES + "/local", + params, new JsonHttpResponseHandler() { - try { - object.put("command", "slice"); - object.put("slicer", "cura"); - - //TODO select profile - - //object.put("profile", profile); - object.put("gcode", "temp.gco"); - entity = new StringEntity(object.toString(), "UTF-8"); - - Log.i("OUT", "Uploading " + object.toString()); - - } catch (JSONException e) { e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); + @Override + public void onProgress(long bytesWritten, long totalSize) { + super.onProgress(bytesWritten, totalSize); + long progress = (bytesWritten * 100) / totalSize; + + if (DatabaseController.getPreference(DatabaseController.TAG_SLICING, "Last") != null) + if ((DatabaseController.getPreference("Slicing", "Last")).equals(file.getName())) { + ViewerMainFragment.showProgressBar(StateUtils.SLICER_UPLOAD, (int) progress); + } //else sendFailureMessage(0, null, null, null); } + //If success, the file was uploaded correctly + @Override + public void onSuccess(int statusCode, Header[] headers, + JSONObject response) { + super.onSuccess(statusCode, headers, response); - Log.i("Slicer", "Send slice command for " + file.getName()); + Log.i("Slicer", "Upload successful"); //TODO - if (DatabaseController.getPreference(DatabaseController.TAG_SLICING, "Last")!=null) - if ((DatabaseController.getPreference("Slicing","Last")).equals(file.getName())) - HttpClientHandler.post(context,url + HttpUtils.URL_FILES + "/local/" + file.getName(), - entity, "application/json", new JsonHttpResponseHandler(){ + JSONObject object = extras; + StringEntity entity = null; - @Override - public void onProgress(int bytesWritten, - int totalSize) { - } + try { + object.put("command", "slice"); + object.put("slicer", "cura"); - @Override - public void onSuccess(int statusCode, - Header[] headers, JSONObject response) { - super.onSuccess(statusCode, headers, response); + //TODO select profile + //object.put("profile", profile); + object.put("gcode", "temp.gco"); + entity = new StringEntity(object.toString(), "UTF-8"); - ViewerMainFragment.showProgressBar(StateUtils.SLICER_SLICE, 0); - Log.i("Slicer", "Slicing started"); + Log.i("OUT", "Uploading " + object.toString()); + } catch (JSONException e) { + e.printStackTrace(); + } - } + Log.i("Slicer", "Send slice command for " + file.getName()); + if (DatabaseController.getPreference(DatabaseController.TAG_SLICING, "Last") != null) + if ((DatabaseController.getPreference("Slicing", "Last")).equals(file.getName())) + HttpClientHandler.post(context, url + HttpUtils.URL_FILES + "/local/" + file.getName(), + entity, "application/json", new JsonHttpResponseHandler() { + @Override + public void onSuccess(int statusCode, + Header[] headers, JSONObject response) { + super.onSuccess(statusCode, headers, response); - @Override - public void onFailure(int statusCode, Header[] headers, - String responseString, Throwable throwable) { - super.onFailure(statusCode, headers, responseString, throwable); - Log.i("OUT", responseString.toString()); + ViewerMainFragment.showProgressBar(StateUtils.SLICER_SLICE, 0); + Log.i("Slicer", "Slicing started"); - ViewerMainFragment.showProgressBar(StateUtils.SLICER_HIDE, -1); - } - }); - } + } - @Override - public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { - super.onFailure(statusCode, headers, responseString, throwable); - Log.i("Slicer", "FAILURESLICING"); - ViewerMainFragment.showProgressBar(StateUtils.SLICER_HIDE, -1); - } - }); + @Override + public void onFailure(int statusCode, Header[] headers, + String responseString, Throwable throwable) { + super.onFailure(statusCode, headers, responseString, throwable); + Log.i("OUT", responseString.toString()); + ViewerMainFragment.showProgressBar(StateUtils.SLICER_HIDE, -1); + } + }); + } + @Override + public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { + super.onFailure(statusCode, headers, responseString, throwable); + Log.i("Slicer", "FAILURESLICING"); + ViewerMainFragment.showProgressBar(StateUtils.SLICER_HIDE, -1); + } + }); + } - - - - } - } diff --git a/PrinterApp/build.gradle b/PrinterApp/build.gradle index ddf487e..61450b5 100644 --- a/PrinterApp/build.gradle +++ b/PrinterApp/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:2.0.0-alpha3' } } diff --git a/PrinterApp/gradle/wrapper/gradle-wrapper.properties b/PrinterApp/gradle/wrapper/gradle-wrapper.properties index 15c3106..4f3e82f 100644 --- a/PrinterApp/gradle/wrapper/gradle-wrapper.properties +++ b/PrinterApp/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Dec 11 10:26:19 CET 2014 +#Thu Jan 07 20:39:47 NZDT 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.8-all.zip diff --git a/PrinterApp/materialdesignlibrary/build.gradle b/PrinterApp/materialdesignlibrary/build.gradle index f8c9964..a68a16a 100644 --- a/PrinterApp/materialdesignlibrary/build.gradle +++ b/PrinterApp/materialdesignlibrary/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:2.0.0-alpha3' } } From b5e5451efa32694a45c839826ff374c4516b38b6 Mon Sep 17 00:00:00 2001 From: Derek Zhu Date: Thu, 10 Mar 2016 19:53:45 +1300 Subject: [PATCH 2/2] upgrade gradle --- PrinterApp/app/build.gradle | 2 +- PrinterApp/build.gradle | 2 +- PrinterApp/gradle/wrapper/gradle-wrapper.properties | 4 ++-- PrinterApp/materialdesignlibrary/build.gradle | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/PrinterApp/app/build.gradle b/PrinterApp/app/build.gradle index b183931..105d372 100644 --- a/PrinterApp/app/build.gradle +++ b/PrinterApp/app/build.gradle @@ -73,7 +73,7 @@ dependencies { compile 'com.github.navasmdc:MaterialDesign:1.5@aar' compile 'com.github.fengdai:alertdialogpro-theme-material:0.2.6' compile project(':materialdesignlibrary') - compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { + compile('com.github.afollestad.material-dialogs:core:0.8.5.6@aar') { transitive = true } compile 'com.pnikosis:materialish-progress:1.4' diff --git a/PrinterApp/build.gradle b/PrinterApp/build.gradle index 61450b5..531973a 100644 --- a/PrinterApp/build.gradle +++ b/PrinterApp/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-alpha3' + classpath 'com.android.tools.build:gradle:2.1.0-alpha1' } } diff --git a/PrinterApp/gradle/wrapper/gradle-wrapper.properties b/PrinterApp/gradle/wrapper/gradle-wrapper.properties index 4f3e82f..bdacaa4 100644 --- a/PrinterApp/gradle/wrapper/gradle-wrapper.properties +++ b/PrinterApp/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Jan 07 20:39:47 NZDT 2016 +#Thu Mar 10 19:52:45 NZDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/PrinterApp/materialdesignlibrary/build.gradle b/PrinterApp/materialdesignlibrary/build.gradle index a68a16a..a088fe0 100644 --- a/PrinterApp/materialdesignlibrary/build.gradle +++ b/PrinterApp/materialdesignlibrary/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-alpha3' + classpath 'com.android.tools.build:gradle:2.1.0-alpha1' } }