From cae7d9b7c76672e5b2d53420e6f5cbd1e577ff00 Mon Sep 17 00:00:00 2001 From: Yuki Takeya Date: Mon, 5 Feb 2018 11:05:52 +0900 Subject: [PATCH] Add Async Exceptions --- ajaxlib/build.gradle | 4 +- .../control/extended/HttpAsyncClient.java | 120 ++++++++++++++---- .../yuki/control/extended/OnException.java | 11 ++ 3 files changed, 108 insertions(+), 27 deletions(-) create mode 100644 ajaxlib/src/main/java/yuki/control/extended/OnException.java diff --git a/ajaxlib/build.gradle b/ajaxlib/build.gradle index 68f1732..7ffbc22 100644 --- a/ajaxlib/build.gradle +++ b/ajaxlib/build.gradle @@ -5,7 +5,7 @@ publish { userOrg = 'takeya-yuki-studio' //bintray注册的用户名 groupId = 'jp.ruby.rubylib' //compile引用时的第1部分groupId artifactId = 'ajaxlib' //compile引用时的第2部分项目名 - publishVersion = '2.0.1' //compile引用时的第3部分版本号 + publishVersion = '2.0.2' //compile引用时的第3部分版本号 desc = 'Ruby Extended Controls - AjaxLib' website = 'https://github.com/Takeya-Yuki/RubyLib.git' } @@ -17,7 +17,7 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 26 - versionCode 1 + versionCode 2 versionName "2.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/ajaxlib/src/main/java/yuki/control/extended/HttpAsyncClient.java b/ajaxlib/src/main/java/yuki/control/extended/HttpAsyncClient.java index cc49451..3c06aff 100644 --- a/ajaxlib/src/main/java/yuki/control/extended/HttpAsyncClient.java +++ b/ajaxlib/src/main/java/yuki/control/extended/HttpAsyncClient.java @@ -17,7 +17,7 @@ public final class HttpAsyncClient { * @param activity Window * @param get Response Handler **/ - public static void AsyncGetString(final String Url, final Activity activity, final OnGet get) { + public static void AsyncGetString(final String Url, final Activity activity, final OnGet get,final OnException onException) { new Thread(new Runnable() { @Override @@ -38,10 +38,24 @@ public final class HttpAsyncClient { } ); } - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (final MalformedURLException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } + } catch (final IOException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } } finally { urlConnection.disconnect(); } @@ -66,7 +80,7 @@ public final class HttpAsyncClient { * @param get Download Finished Handler **/ public static void AsyncGetFile(final String Url, final Activity activity, final String savePath, - final String saveFileName, final OnProgress progress, final OnGet get) { + final String saveFileName, final OnProgress progress, final OnGet get,final OnException onException) { new Thread(new Runnable() { @Override public void run() { @@ -117,10 +131,24 @@ public final class HttpAsyncClient { } while (true); fos.close(); is.close(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (final MalformedURLException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } + } catch (final IOException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } } } }).start(); @@ -136,7 +164,7 @@ public final class HttpAsyncClient { * @param get Download Finished Handler **/ public static void AsyncGetFile(final String Url, final Activity activity, final String savePath - , final OnProgress progress, final OnGet get) { + , final OnProgress progress, final OnGet get,final OnException onException) { new Thread(new Runnable() { @Override public void run() { @@ -187,16 +215,30 @@ public final class HttpAsyncClient { } while (true); fos.close(); is.close(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (final MalformedURLException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } + } catch (final IOException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } } } }).start(); } - public static void AsyncPostString(final String Url,final Activity activity,final String ContentType,final String rawData,final OnPost post){ + public static void AsyncPostString(final String Url,final Activity activity,final String ContentType,final String rawData,final OnPost post,final OnException onException){ new Thread(new Runnable() { @Override public void run() { @@ -227,10 +269,24 @@ public final class HttpAsyncClient { } ); } - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (final MalformedURLException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } + } catch (final IOException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } } finally { urlConnection.disconnect(); } @@ -238,7 +294,7 @@ public final class HttpAsyncClient { }).start(); } - public static void AsyncRESTString(final String Url,final Activity activity,final String RESTMethod,final String ContentType,final String rawData,final OnREST post){ + public static void AsyncRESTString(final String Url,final Activity activity,final String RESTMethod,final String ContentType,final String rawData,final OnREST post,final OnException onException){ new Thread(new Runnable() { @Override public void run() { @@ -269,10 +325,24 @@ public final class HttpAsyncClient { } ); } - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (final MalformedURLException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } + } catch (final IOException e) { + if(onException != null){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + onException.OnError(e); + } + }); + } } finally { urlConnection.disconnect(); } diff --git a/ajaxlib/src/main/java/yuki/control/extended/OnException.java b/ajaxlib/src/main/java/yuki/control/extended/OnException.java new file mode 100644 index 0000000..d39640a --- /dev/null +++ b/ajaxlib/src/main/java/yuki/control/extended/OnException.java @@ -0,0 +1,11 @@ +package yuki.control.extended; + +/** + * Created by Yuki on 2018-02-05. + */ + +/* On Exception Handler*/ +public interface OnException { + + public void OnError(Exception error); +} -- GitLab