diff --git a/README.md b/README.md index 932e94f..5c04fac 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # BaseProject #项目介绍: 本项目(Android库工程)为Android开发APP的通用模版框架,皆在使用本框架能快速开发Android项目尤其是含有网络请求的项目,优化项目代码结构、模块化编程。 -本项目力求能给阅读者、使用者在Android项目架构能力方面带来一定的速度、质量的提升。 +本项目力求能给阅读者、使用者在Android项目架构能力方面带来一定的速度、质量的提升,该版本为base分支。 #给取个名吧: BaseProject --> 基础工程 --> 能帮助Android开发者大众 --> 倒是想像济公,普渡众人(有点大了啊!!)--> 济公他老人家肯定不乐意,也怕其实难副!-->那就偕个音,就叫“基工”吧, diff --git a/src/main/java/common/base/fragments/BaseFragment.java b/src/main/java/common/base/fragments/BaseFragment.java index c813fe5..76cfc63 100644 --- a/src/main/java/common/base/fragments/BaseFragment.java +++ b/src/main/java/common/base/fragments/BaseFragment.java @@ -18,6 +18,7 @@ import common.base.netAbout.BaseServerResult; import common.base.netAbout.NetRequestLifeMarker; import common.base.utils.CommonLog; +import common.base.views.ToastUtil; /** * User: fee(lifei@cloudtone.com.cn) @@ -433,7 +434,13 @@ public void popupHint(String hintMsg) { public void popupHint(int hintMsgResID) { popupHint(getString(hintMsgResID)); } + protected void topToast(String msg) { + ToastUtil.topShow(msg); + } + protected void topToast(int msgResId) { + topToast(getString(msgResId)); + } protected void i(String tag,Object... logBodys) { if (tag == null) { tag = TAG + "[" + extraInfoInLifeDebug + "]"; diff --git a/src/main/java/common/base/netAbout/NetDataAndErrorListener.java b/src/main/java/common/base/netAbout/NetDataAndErrorListener.java index 10dd6d4..270824d 100644 --- a/src/main/java/common/base/netAbout/NetDataAndErrorListener.java +++ b/src/main/java/common/base/netAbout/NetDataAndErrorListener.java @@ -53,7 +53,9 @@ public void onFailure(Call call, Throwable t) { String errorMsg = INetEvent.UNKNOW_ERROR; if (t != null) { if (!Util.isEmpty(t.getMessage())) { - errorMsg = t.getMessage(); +// errorMsg = t.getMessage(); + //modified here by fee 2017-02-21:这样可以拿到更详细的异常信息 + errorMsg = t.toString(); } } if (netEvent != null) { diff --git a/src/main/java/common/base/netclients/RetrofitClient.java b/src/main/java/common/base/netclients/RetrofitClient.java index 400761d..6c62a5c 100644 --- a/src/main/java/common/base/netclients/RetrofitClient.java +++ b/src/main/java/common/base/netclients/RetrofitClient.java @@ -52,7 +52,7 @@ private RetrofitClient() { // .addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(JacksonConverterFactory.create(objectMapper)); - mRetrofit = retrofitBuilder.build(); + mRetrofit = retrofitBuilder.build();//调用这里时,Retrofit类中会新建一个默认的OkhttClient对象 } } @@ -89,6 +89,7 @@ public void initRetrofitModule(String baseUrl, Converter.Factory converterFactor public RetrofitClient resetOkHttpClient(OkHttpClient customOkHttpClient) { if (retrofitBuilder != null) { mRetrofit = retrofitBuilder.callFactory(customOkHttpClient).build(); + } return this; } @@ -188,4 +189,20 @@ public void cancelAllCall() { cachedCalls.clear(); } } + + /** + * 获取当前的Retrofit中所配置的OkhttClient对象 + * @return + */ + public OkHttpClient getCurHttpClient() { + if (mRetrofit != null) { + return (OkHttpClient) mRetrofit.callFactory(); + } + return null; + } + + public void addLog() { + +// getCurHttpClient().interceptors().add() + } } diff --git a/src/main/java/common/base/utils/NetHelper.java b/src/main/java/common/base/utils/NetHelper.java index c6f5227..0ffd947 100644 --- a/src/main/java/common/base/utils/NetHelper.java +++ b/src/main/java/common/base/utils/NetHelper.java @@ -110,7 +110,7 @@ public static int netType(Context context) { * 是否已经联网 */ public static boolean isNetConnected(Context context) { - return getNetType(context) > 0; + return getNetType(context) >= 0; } /** diff --git a/src/main/java/common/base/utils/ViewUtil.java b/src/main/java/common/base/utils/ViewUtil.java index 256ada9..7be315a 100644 --- a/src/main/java/common/base/utils/ViewUtil.java +++ b/src/main/java/common/base/utils/ViewUtil.java @@ -3,6 +3,11 @@ import android.app.Activity; import android.content.res.ColorStateList; import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; +import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.support.v4.graphics.drawable.DrawableCompat; @@ -11,6 +16,7 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; @@ -89,10 +95,43 @@ public static void changeViewBgDrawableColor(View view, int argbColor) { */ public static Drawable tintDrawable(Drawable originDrawable, ColorStateList colors) { final Drawable wrappedDrawable = DrawableCompat.wrap(originDrawable); - DrawableCompat.setTintList(wrappedDrawable, colors); + if (wrappedDrawable != null) {//avoid nullpointer exception + DrawableCompat.setTintList(wrappedDrawable, colors); + } return wrappedDrawable; } + /** + * 用来改变ImageView的饱和度的 + * @param target + * @param saturationValue + */ + public static void changeImageViewSaturation(ImageView target, int saturationValue) { + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(saturationValue); + ColorMatrixColorFilter colorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix); + target.setColorFilter(colorMatrixColorFilter); + } + + /** + * 修改一张源位图的饱和度来生成一个新位图 + * @param sourceBitmap 源位图 + * @param expectantSaturation 期望的饱和度值 + * @return 更改饱和度后的新位图 + */ + public static Bitmap changeSrcBitmapSaturation(Bitmap sourceBitmap,int expectantSaturation) { + int width = sourceBitmap.getWidth(); + int height = sourceBitmap.getHeight(); + Bitmap compoundResultBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(compoundResultBitmap); + Paint paint = new Paint(); + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(expectantSaturation); + ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(colorMatrix); + paint.setColorFilter(colorMatrixFilter); + canvas.drawBitmap(sourceBitmap, 0, 0, paint); + return compoundResultBitmap; + } /** * 给输入框控件View的光标着色 * Android 3.1 (API 12) 开始就支持了 textCursorDrawable,