From 9710722b7df7b7903494993c560a1fa5472b06c1 Mon Sep 17 00:00:00 2001 From: Blankj <625783482@qq.com> Date: Wed, 31 Jan 2018 11:30:08 +0800 Subject: [PATCH] see 01/31 log --- README-CN.md | 2 +- README.md | 2 +- app/build.gradle | 2 +- .../core/activity/ActivityActivity.java | 3 +- .../feature/core/screen/ScreenActivity.java | 2 - build.gradle | 4 +- .../com/blankj/subutil/util/CloneUtils.java | 66 +++++++++++++++++++ update_log.md | 3 +- utilcode/README-CN.md | 2 +- utilcode/README.md | 2 +- .../com/blankj/utilcode/util/ImageUtils.java | 19 +++--- .../com/blankj/utilcode/util/ScreenUtils.java | 3 +- 12 files changed, 88 insertions(+), 22 deletions(-) create mode 100644 subutil/src/main/java/com/blankj/subutil/util/CloneUtils.java diff --git a/README-CN.md b/README-CN.md index a4abf35b..4c2e3813 100644 --- a/README-CN.md +++ b/README-CN.md @@ -41,7 +41,7 @@ [logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png -[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.12.3-brightgreen.svg +[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.12.4-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apisvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/README.md b/README.md index 455890ea..8f7861bf 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If this ptoject helps you a lot, and you would like to support this ptoject's fu [logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png -[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.12.3-brightgreen.svg +[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.12.4-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apisvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/app/build.gradle b/app/build.gradle index 2b5a41c9..cdfb1c4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -67,7 +67,7 @@ dependencies { debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version" releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakcanary_version" -// implementation 'com.blankj:utilcode:1.12.3' +// implementation 'com.blankj:utilcode:1.12.4' } diff --git a/app/src/main/java/com/blankj/androidutilcode/feature/core/activity/ActivityActivity.java b/app/src/main/java/com/blankj/androidutilcode/feature/core/activity/ActivityActivity.java index 54e0dde0..b214864e 100644 --- a/app/src/main/java/com/blankj/androidutilcode/feature/core/activity/ActivityActivity.java +++ b/app/src/main/java/com/blankj/androidutilcode/feature/core/activity/ActivityActivity.java @@ -249,7 +249,6 @@ public class ActivityActivity extends BaseBackActivity { private Bundle getOption(int type) { switch (type) { - default: case 0: return ActivityOptionsCompat.makeCustomAnimation(this, R.anim.slide_in_right_1000, @@ -277,6 +276,8 @@ public class ActivityActivity extends BaseBackActivity { viewSharedElement, getString(R.string.activity_shared_element)) .toBundle(); + default: + return null; } } } diff --git a/app/src/main/java/com/blankj/androidutilcode/feature/core/screen/ScreenActivity.java b/app/src/main/java/com/blankj/androidutilcode/feature/core/screen/ScreenActivity.java index c0ee00a5..eff193f4 100644 --- a/app/src/main/java/com/blankj/androidutilcode/feature/core/screen/ScreenActivity.java +++ b/app/src/main/java/com/blankj/androidutilcode/feature/core/screen/ScreenActivity.java @@ -61,8 +61,6 @@ public class ScreenActivity extends BaseBackActivity { .append("isTablet: " + ScreenUtils.isTablet()) .create() ); - - } @Override diff --git a/build.gradle b/build.gradle index 1a60c83c..07fab041 100644 --- a/build.gradle +++ b/build.gradle @@ -32,8 +32,8 @@ ext { min_sdk_version = 14 target_sdk_version = 23 - version_code = 1_012_003 - version_name = '1.12.3'// E.g 1.9.72 => 1,009,072 + version_code = 1_012_004 + version_name = '1.12.4'// E.g 1.9.72 => 1,009,072 // App dependencies support_version = '26.1.0' diff --git a/subutil/src/main/java/com/blankj/subutil/util/CloneUtils.java b/subutil/src/main/java/com/blankj/subutil/util/CloneUtils.java new file mode 100644 index 00000000..69717a09 --- /dev/null +++ b/subutil/src/main/java/com/blankj/subutil/util/CloneUtils.java @@ -0,0 +1,66 @@ +package com.blankj.subutil.util; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; + +/** + *
+ *     author: Blankj
+ *     blog  : http://blankj.com
+ *     time  : 2018/01/30
+ *     desc  : 克隆相关工具类
+ * 
+ */ +public final class CloneUtils { + + public static T deepClone(final Serializable data) { + if (data == null) return null; + return (T) bytes2Object(serializable2Bytes((Serializable) data)); + } + + private static byte[] serializable2Bytes(final Serializable serializable) { + if (serializable == null) return null; + ByteArrayOutputStream baos; + ObjectOutputStream oos = null; + try { + oos = new ObjectOutputStream(baos = new ByteArrayOutputStream()); + oos.writeObject(serializable); + return baos.toByteArray(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + try { + if (oos != null) { + oos.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + private static Object bytes2Object(final byte[] bytes) { + if (bytes == null) return null; + ObjectInputStream ois = null; + try { + ois = new ObjectInputStream(new ByteArrayInputStream(bytes)); + return ois.readObject(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + try { + if (ois != null) { + ois.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/update_log.md b/update_log.md index 8c82f7f0..397c418b 100644 --- a/update_log.md +++ b/update_log.md @@ -1,4 +1,5 @@ -* 18/01/27 修复 ToastUtils 默认样式问题,发布 1.12.2,新增 DeviceUtils#getSDKVersionName,发布 1.12.3 +* 18/01/31 修复 default 相关的逻辑错误,发布 1.12.4 +* 18/01/28 修复 ToastUtils 默认样式问题,发布 1.12.2,新增 DeviceUtils#getSDKVersionName,发布 1.12.3 * 18/01/27 修复 PermissionUtils 某些机型闪烁问题,发布 1.12.1 * 18/01/17 完善 ReflectUtils 及 单元测试,发布 1.12.0 版本 * 18/01/16 完善 ReflectUtils 及 单元测试 diff --git a/utilcode/README-CN.md b/utilcode/README-CN.md index 9142022f..919af73d 100644 --- a/utilcode/README-CN.md +++ b/utilcode/README-CN.md @@ -2,7 +2,7 @@ Gradle: ```groovy -compile 'com.blankj:utilcode:1.12.3' +compile 'com.blankj:utilcode:1.12.4' ``` diff --git a/utilcode/README.md b/utilcode/README.md index eb13827a..7e5df65f 100644 --- a/utilcode/README.md +++ b/utilcode/README.md @@ -2,7 +2,7 @@ Gradle: ```groovy -compile 'com.blankj:utilcode:1.12.3' +compile 'com.blankj:utilcode:1.12.4' ``` diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/ImageUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/ImageUtils.java index 66a81f87..aed97ed2 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/ImageUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/ImageUtils.java @@ -576,33 +576,32 @@ public final class ImageUtils { /** * 获取图片旋转角度 + *

返回 -1 表示异常

* * @param filePath 文件路径 * @return 旋转角度 */ public static int getRotateDegree(final String filePath) { - int degree = 0; try { ExifInterface exifInterface = new ExifInterface(filePath); int orientation = exifInterface.getAttributeInt( ExifInterface.TAG_ORIENTATION, - ExifInterface.ORIENTATION_NORMAL); + ExifInterface.ORIENTATION_NORMAL + ); switch (orientation) { - default: case ExifInterface.ORIENTATION_ROTATE_90: - degree = 90; - break; + return 90; case ExifInterface.ORIENTATION_ROTATE_180: - degree = 180; - break; + return 180; case ExifInterface.ORIENTATION_ROTATE_270: - degree = 270; - break; + return 270; + default: + return 0; } } catch (IOException e) { e.printStackTrace(); + return -1; } - return degree; } /** diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/ScreenUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/ScreenUtils.java index 1dfe16ef..9476a4f3 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/ScreenUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/ScreenUtils.java @@ -150,7 +150,6 @@ public final class ScreenUtils { */ public static int getScreenRotation(@NonNull final Activity activity) { switch (activity.getWindowManager().getDefaultDisplay().getRotation()) { - default: case Surface.ROTATION_0: return 0; case Surface.ROTATION_90: @@ -159,6 +158,8 @@ public final class ScreenUtils { return 180; case Surface.ROTATION_270: return 270; + default: + return 0; } } -- GitLab