From 2c66651ed2ee82aec93d577ff121e514168237ae Mon Sep 17 00:00:00 2001 From: Ztiany Date: Sat, 23 Nov 2019 12:05:47 +0800 Subject: [PATCH] optimize code --- .../base/utils/android/DevicesUtils.java | 51 ------------------- .../com/android/base/utils/common/Lang.kt | 2 - .../sdk/mediaselector/BoxingUcrop.java | 4 +- .../sdk/mediaselector/MediaSelectorStyle.java | 28 ++++++++++ .../android/sdk/mediaselector/StyleUtils.java | 28 ---------- .../mediaselector/SystemMediaSelector.java | 11 ++-- .../com/android/sdk/mediaselector/Utils.java | 2 +- 7 files changed, 36 insertions(+), 90 deletions(-) create mode 100644 lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelectorStyle.java delete mode 100644 lib_media_selector/src/main/java/com/android/sdk/mediaselector/StyleUtils.java diff --git a/lib_base/src/main/java/com/android/base/utils/android/DevicesUtils.java b/lib_base/src/main/java/com/android/base/utils/android/DevicesUtils.java index 77ab34a..dc4b957 100644 --- a/lib_base/src/main/java/com/android/base/utils/android/DevicesUtils.java +++ b/lib_base/src/main/java/com/android/base/utils/android/DevicesUtils.java @@ -1,18 +1,11 @@ package com.android.base.utils.android; -import android.Manifest; import android.annotation.SuppressLint; import android.os.Build; import android.util.Log; -import com.android.base.utils.android.compat.AndroidVersion; - import java.text.SimpleDateFormat; import java.util.Date; -import java.util.UUID; - -import androidx.annotation.RequiresPermission; -import timber.log.Timber; public class DevicesUtils { @@ -30,50 +23,6 @@ public class DevicesUtils { return model; } - /** - * for getDeviceId,DevicesId 形式: - *
-     *      00000000-1082-436b-ffff-ffffc2e337a1
-     *      ffffffff-a987-897a-0000-000000de11f7
-     * 
- */ - private static final String M_SZ_DEV_ID_SHORT = "35" + - Build.BOARD.length() % 10 + Build.BRAND.length() % 10 + - Build.CPU_ABI.length() % 10 + Build.DEVICE.length() % 10 + - Build.DISPLAY.length() % 10 + Build.HOST.length() % 10 + - Build.ID.length() % 10 + Build.MANUFACTURER.length() % 10 + - Build.MODEL.length() % 10 + Build.PRODUCT.length() % 10 + - Build.TAGS.length() % 10 + Build.TYPE.length() % 10 + - Build.USER.length() % 10; //13 位 - - /** - * 参考:http://blog.csdn.net/nugongahou110/article/details/47003257 - * 参考:https://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id/2853253#2853253 - * 参考:https://www.jianshu.com/p/b6f4b0aca6b0 - * - * @return device id - */ - @RequiresPermission(value = Manifest.permission.READ_PHONE_STATE) - public static String getDeviceId() { - String serial = null; - try { - if (AndroidVersion.atLeast(26)) { - //add in api 26, need Permission.READ_PHONE_STATE - serial = Build.getSerial(); - } else { - serial = Build.class.getField("SERIAL").get(null).toString(); - } - } catch (Exception e) { - Timber.w("getDeviceId error: " + e.getMessage()); - } - if (serial == null) { - //serial 需要一个初始化 - serial = "serial"; // 随便一个初始化 - } - //使用硬件信息拼凑出来的15位号码 - return new UUID(M_SZ_DEV_ID_SHORT.hashCode(), serial.hashCode()).toString(); - } - @SuppressLint("ObsoleteSdkInt") public static void printSystemInfo() { Date date = new Date(System.currentTimeMillis()); diff --git a/lib_base/src/main/java/com/android/base/utils/common/Lang.kt b/lib_base/src/main/java/com/android/base/utils/common/Lang.kt index 16e6103..396591a 100644 --- a/lib_base/src/main/java/com/android/base/utils/common/Lang.kt +++ b/lib_base/src/main/java/com/android/base/utils/common/Lang.kt @@ -77,7 +77,6 @@ fun closeIO(closeable: Closeable?) { } catch (e: IOException) { e.printStackTrace() } - } } @@ -90,7 +89,6 @@ fun closeIOQuietly(closeable: Closeable?) { closeable.close() } catch (ignored: IOException) { } - } } diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java index 51558a6..5660243 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java @@ -25,10 +25,8 @@ import android.net.Uri; import com.bilibili.boxing.loader.IBoxingCrop; import com.bilibili.boxing.model.config.BoxingCropOption; import com.yalantis.ucrop.UCrop; -import com.ztiany.mediaselector.R; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; /** @@ -53,7 +51,7 @@ final class BoxingUcrop implements IBoxingCrop { crop.withAspectRatio(cropConfig.getAspectRatioX(), cropConfig.getAspectRatioY()); //颜色 - int color = ContextCompat.getColor(context, R.color.boxing_colorPrimaryDark); + int color = MediaSelectorStyle.fetchPrimaryColor(); crop.setToolbarColor(color); crop.setStatusBarColor(color); diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelectorStyle.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelectorStyle.java new file mode 100644 index 0000000..a53d21a --- /dev/null +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelectorStyle.java @@ -0,0 +1,28 @@ +package com.android.sdk.mediaselector; + +import android.graphics.Color; + +import androidx.annotation.ColorInt; + +/** + * @author Ztiany + * Email: ztiany3@gmail.com + * Date : 2019-11-22 11:36 + */ +public class MediaSelectorStyle { + + private static int sPrimaryColor = -1; + + public static void setPrimaryColor(@ColorInt int primaryColor) { + sPrimaryColor = primaryColor; + } + + static int fetchPrimaryColor() { + if (sPrimaryColor == -1) { + return Color.WHITE; + } else { + return sPrimaryColor; + } + } + +} \ No newline at end of file diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/StyleUtils.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/StyleUtils.java deleted file mode 100644 index 347cd85..0000000 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/StyleUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.android.sdk.mediaselector; - -import android.content.Context; -import android.os.Build; -import android.util.TypedValue; - -/** - * @author Ztiany - * Email: ztiany3@gmail.com - * Date : 2019-11-22 11:36 - */ -class StyleUtils { - - //https://stackoverflow.com/questions/27611173/how-to-get-accent-color-programmatically - static int fetchPrimaryColor(Context context) { - int colorAttr; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - colorAttr = android.R.attr.colorPrimary; - } else { - //Get colorAccent defined for AppCompat - colorAttr = context.getResources().getIdentifier("colorPrimary", "attr", context.getPackageName()); - } - TypedValue outValue = new TypedValue(); - context.getTheme().resolveAttribute(colorAttr, outValue, true); - return outValue.data; - } - -} \ No newline at end of file diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java index b8df925..e51c454 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java @@ -30,7 +30,7 @@ public class SystemMediaSelector { private static final int REQUEST_CROP = 197; private static final int REQUEST_ALBUM = 198; private static final int REQUEST_FILE = 199; - private static final int REQUEST_LINRARY_CROP = 200; + private static final int REQUEST_LIBRARY_CROP = 200; private static final String POSTFIX = ".file.provider"; private String mAuthority; @@ -87,6 +87,7 @@ public class SystemMediaSelector { mActivity.startActivityForResult(intent, code); } } + /////////////////////////////////////////////////////////////////////////// // setter /////////////////////////////////////////////////////////////////////////// @@ -119,7 +120,7 @@ public class SystemMediaSelector { } /** - * 为了保证裁裁剪图片不出问题,务必指定CropOptions中的各个参数(不要为0,比如魅族手机如果指定OutputX和OutputY为0,则只会裁减出一个像素),否则可能出现问题 + * 为了保证裁裁剪图片不出问题,务必指定 CropOptions 中的各个参数不要为 0,否则可能出现问题(比如魅族手机如果指定 OutputX 和 OutputY 为 0,则只会裁减出一个像素)。 */ public boolean takePhotoFromCameraAndCrop(String savePath, @Nullable CropOptions cropOptions, String cropTitle) { mSavePhotoPath = savePath; @@ -230,7 +231,7 @@ public class SystemMediaSelector { processAlbumResult(resultCode, data); } else if (requestCode == REQUEST_FILE) { processFileResult(resultCode, data); - } else if (requestCode == REQUEST_LINRARY_CROP) { + } else if (requestCode == REQUEST_LIBRARY_CROP) { processUCropResult(data); } } @@ -264,7 +265,7 @@ public class SystemMediaSelector { Uri uri = data.getData(); if (mNeedCrop) { if (mUseInnerCrop) { - Utils.toUCrop(getContext(), mFragment, Utils.getAbsolutePath(getContext(), uri), mSavePhotoPath, getCropOptions(), REQUEST_LINRARY_CROP); + Utils.toUCrop(getContext(), mFragment, Utils.getAbsolutePath(getContext(), uri), mSavePhotoPath, getCropOptions(), REQUEST_LIBRARY_CROP); } else { boolean success = toCropPhotoFromAlbum(uri); if (!success) { @@ -310,7 +311,7 @@ public class SystemMediaSelector { } if (mUseInnerCrop) { - Utils.toUCrop(getContext(), mFragment, mSavePhotoPathForCropCamera, mSavePhotoPath, getCropOptions(), REQUEST_LINRARY_CROP); + Utils.toUCrop(getContext(), mFragment, mSavePhotoPathForCropCamera, mSavePhotoPath, getCropOptions(), REQUEST_LIBRARY_CROP); } else { boolean success = toCropPhotoFromCamera(); if (!success) { diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java index 479e6e5..8ac67f0 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java @@ -202,7 +202,7 @@ final class Utils { crop.withAspectRatio(cropConfig.getAspectX(), cropConfig.getAspectY()); //颜色 - int color = StyleUtils.fetchPrimaryColor(context); + int color = MediaSelectorStyle.fetchPrimaryColor(); crop.setToolbarColor(color); crop.setStatusBarColor(color);