Ver código fonte

Merge remote-tracking branch 'origin/sheep_develop' into sheep_develop

liujiangyao 7 anos atrás
pai
commit
411bc592b7

+ 1 - 1
app/build.gradle

@@ -150,7 +150,7 @@ dependencies {
     compile 'org.xutils:xutils:3.5.0'
     compile 'com.mylhyl:acp:1.1.7'
 
-    //    compile 'cn.yipianfengye.android:zxing-library:2.2'
+    compile 'cn.yipianfengye.android:zxing-library:2.2'
     compile 'com.github.huburt-Hu:NewbieGuide:v1.2.0'
     debugCompile 'com.android.support:multidex:1.0.1'
 

BIN
app/libs/com.kfzs.safe.aar


+ 5 - 6
app/src/main/java/com/kfzs/duanduan/utils/net/APIRequest.java

@@ -9,7 +9,6 @@ import com.android.volleyplus.Request;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
 import com.google.protobuf.InvalidProtocolBufferException;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
@@ -22,6 +21,7 @@ import java.util.Map;
 
 import go.kfzssafe.Kfzssafe;
 
+
 /**
  * <pre>
  *     sinlov
@@ -66,8 +66,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
     @Override
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
             return super.getBody();
         }
@@ -78,9 +77,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
         try {
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
-            byte[] bytes = HexUtils.hexStr2Bytes(hexString);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-            ApiResponseOuterClass.ApiResponse apiResponse = ApiResponseOuterClass.ApiResponse.parseFrom(byteDecode);
+            ApiResponseOuterClass.ApiResponse apiResponse = ApiResponseOuterClass.ApiResponse.parseFrom(Kfzssafe.xDecodeS2B(hexString));
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
@@ -88,6 +85,8 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(e));
+        } catch (Exception e) {
+            return Response.error(new ParseError(e));
         }
     }
 

+ 6 - 8
app/src/main/java/com/kfzs/duanduan/utils/net/APIRequestV2.java

@@ -10,12 +10,11 @@ import com.android.volleyplus.ParseError;
 import com.android.volleyplus.Request;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
+import com.kfzs.duanduan.bean.BaseMsg;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.db.DataSave;
-import com.kfzs.duanduan.bean.BaseMsg;
 
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
@@ -23,6 +22,7 @@ import java.util.Map;
 
 import go.kfzssafe.Kfzssafe;
 
+
 /**
  * <pre>
  *     sinlov
@@ -65,8 +65,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
     @Override
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
             return super.getBody();
         }
@@ -77,10 +76,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
         try {
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
-            byte[] bytes = HexUtils.hexStr2Bytes(hexString);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-
-            BaseMsg apiResponse = JSON.parseObject(new String(byteDecode, "utf8"), BaseMsg.class);
+            BaseMsg apiResponse = JSON.parseObject(Kfzssafe.xDecodeS2B(hexString), BaseMsg.class);
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
@@ -88,6 +84,8 @@ public class APIRequestV2 extends Request<BaseMsg> {
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(e));
+        } catch (Exception e) {
+            return Response.error(new ParseError(e));
         }
     }
 

+ 2 - 5
app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java

@@ -5,9 +5,9 @@ import android.net.Uri;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.react.upfile.UpFileListener;
 import com.kfzs.duanduan.react.upfile.UpFileUtils;
+import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
@@ -18,7 +18,6 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-import go.kfzssafe.Kfzssafe;
 import me.iwf.photopicker.PhotoPicker;
 
 /**
@@ -185,9 +184,7 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
             json = msg;
         } else {
             try {
-                byte[] bytes = HexUtils.hexStr2Bytes(msg);
-                byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-                json = new String(byteDecode);
+                json = BaseMessageConverter.decrypt(msg);
             } catch (Exception e) {
                 e.printStackTrace();
                 return null;

+ 14 - 22
app/src/main/java/com/sheep/gamegroup/model/api/BaseMessageConverter.java

@@ -4,9 +4,7 @@ import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.util.LogUtil;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -32,41 +30,35 @@ public class BaseMessageConverter implements Converter<ResponseBody, BaseMessage
 
     /**
      * 加密
-     * @param requestJson
+     *
+     * @param data
      * @return
      */
-    public static String encrypt(String requestJson){
-        try {
-            byte[] byteEncode = Kfzssafe.XByteEncode(requestJson.getBytes());
-            return HexUtils.bytes2HexStr(byteEncode);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return requestJson;
-        }
+    public static String encrypt(String data) {
+        return Kfzssafe.xEncodeS2S(data);
     }
 
     /**
      * 解密
-     * @param respenseJson
+     *
+     * @param data
      * @return
      */
-    public static String decrypt(String respenseJson){
-        if(TextUtils.isEmpty(respenseJson)){
-            Map<String,String> map = new HashMap<>();
+    public static String decrypt(String data) {
+        if (TextUtils.isEmpty(data)) {
+            Map<String, String> map = new HashMap<>();
             map.put("msg", "0-byte body");
             return JSON.toJSONString(map);
         }
-        if(respenseJson.startsWith("{")){
-            return respenseJson;
+        if (data.startsWith("{")) {
+            return data;
         }
         try {
-            byte[] bytes = HexUtils.hexStr2Bytes(respenseJson);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-            return new String(byteDecode);
+            return Kfzssafe.xDecodeS2S(data);
         } catch (Exception e) {
             e.printStackTrace();
-            Map<String,String> map = new HashMap<>();
-            map.put("msg",respenseJson);
+            Map<String, String> map = new HashMap<>();
+            map.put("msg", data);
             return JSON.toJSONString(map);
         }
     }

+ 28 - 0
app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.util;
 
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.net.Uri;
 import android.text.TextUtils;
@@ -14,6 +15,7 @@ import com.sheep.gamegroup.util.glide.GlideCircleTransformWithBorder;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
 import com.zhy.http.okhttp.OkHttpUtils;
 import com.zhy.http.okhttp.callback.FileCallBack;
 
@@ -99,6 +101,32 @@ public class GlideImageLoader {
                 .into(imageView);
     }
 
+    /**
+     * 设置二维码图片
+     * @param imageView
+     * @param link
+     * @param w
+     */
+    public static void saveAndSetRqImage(final ImageView imageView, String link, int w) {
+        String fileName = String.format(Locale.CHINA, "%d.png", link.hashCode());
+        File file = new File(ClassFileHelper.DIR, fileName);
+        if(!file.exists()){
+            Bitmap mBitmap = CodeUtils.createImage(link, w, w, null);
+            if(mBitmap != null) {
+                ViewUtil.saveImage(mBitmap, ClassFileHelper.DIR, fileName);
+                if(imageView != null)
+                    imageView.setImageBitmap(mBitmap);
+            }
+        }
+        if(file.exists()){
+            if(imageView != null)
+                Glide.with(SheepApp.getInstance())
+                        .load(file)
+                        .apply(new RequestOptions().override(w, w))
+                        .into(imageView);
+        }
+    }
+
 
     public static void downloadAndSetImage(final ImageView imageView, final String link, final int w) {
         downLoadImage(String.format(Locale.CHINA, "%d", link.hashCode()), link, new Action1<File>() {

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -100,7 +100,6 @@ import com.sheep.jiuyan.samllsheep.service.FloatShotScreenService;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
-import org.afinal.simplecache.ACache;
 import org.xutils.ex.DbException;
 
 import java.io.File;
@@ -255,7 +254,7 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
+                    GlideImageLoader.saveAndSetRqImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
                 }
 
                 if(userEntity != null && userEntity.canBindMobile()
@@ -281,7 +280,7 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
+                    GlideImageLoader.saveAndSetRqImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
                 }
 
                 if(userEntity != null && userEntity.canBindMobile()

+ 3 - 12
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -14,7 +14,6 @@ import android.graphics.drawable.Drawable;
 import android.media.MediaPlayer;
 import android.net.Uri;
 import android.os.Build;
-import android.os.Bundle;
 import android.provider.MediaStore;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.GridLayoutManager;
@@ -23,23 +22,19 @@ import android.text.Html;
 import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
 import android.util.DisplayMetrics;
-import android.util.Log;
 import android.view.Display;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.Window;
 import android.view.WindowManager;
 import android.webkit.WebView;
-import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.VideoView;
 
@@ -48,7 +43,6 @@ import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.request.RequestOptions;
 import com.google.gson.Gson;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
-import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.sheep.gamegroup.dateview.DatePickerDialog;
 import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.Advertising;
@@ -58,8 +52,6 @@ import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
 import com.sheep.gamegroup.model.entity.RobTask;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
 import com.sheep.gamegroup.view.activity.PersonalInfoAct;
@@ -78,7 +70,6 @@ import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ACache;
-import org.greenrobot.eventbus.EventBus;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -88,7 +79,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import io.reactivex.annotations.Nullable;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
@@ -131,7 +121,8 @@ public class ViewUtil {
         final ImageView iv_qr = view.findViewById(R.id.iv_qr);
         View save_pic = view.findViewById(R.id.save_pic);
         ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
-        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
+
+        GlideImageLoader.saveAndSetRqImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         Glide.with(activity)
                 .load(R.drawable.icon)
                 .apply(new RequestOptions().override(G.WIDTH / 8))
@@ -474,7 +465,7 @@ public class ViewUtil {
         if (!TextUtils.isEmpty(link))
             tv_link.setText(link);
 
-        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
+        GlideImageLoader.saveAndSetRqImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         dialog_close.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java

@@ -279,7 +279,7 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
         personal_info_name.setText(userEntity.getNickname());
         personal_info_code.setText(userEntity.getInvitation_code());
 
-        GlideImageLoader.downloadAndSetImage(personal_info_qr, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 90), 90);
+        GlideImageLoader.saveAndSetRqImage(personal_info_qr, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 90), 90);
         GlideImageLoader.setAvatar(personal_info_avatar, userEntity.getAvatar());
         //账号与安全