From a45036d4003974f8e78eb819a932895291d677d6 Mon Sep 17 00:00:00 2001
From: 陈奇 <1650699704@qq.com>
Date: Tue, 27 Nov 2018 17:14:41 +0800
Subject: [PATCH] [*]

---
 app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java             |  185 ++++++++++
 app/src/main/java/com/moral/yunfushao/ui/PanelView.java                      |    4 
 app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java       |  384 +++++++++++++---------
 app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java           |   96 +++++
 app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java        |   83 ++++
 app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java              |   41 ++
 app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java            |   19 +
 app/src/main/java/com/moral/yunfushao/model/User.java                        |   18 
 app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java             |  106 ++++++
 app/src/main/java/com/moral/yunfushao/MainApp.java                           |    4 
 app/src/main/java/com/moral/yunfushao/common/WXConstants.java                |   18 +
 app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java |   34 ++
 app/src/main/java/com/moral/yunfushao/MainActivity.java                      |   11 
 13 files changed, 823 insertions(+), 180 deletions(-)

diff --git a/app/src/main/java/com/moral/yunfushao/MainActivity.java b/app/src/main/java/com/moral/yunfushao/MainActivity.java
index ccc4547..e9c221c 100644
--- a/app/src/main/java/com/moral/yunfushao/MainActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/MainActivity.java
@@ -142,7 +142,9 @@
 
     @Override
     protected void initData() {
-        prepare();
+        //������������������
+        wxLoadingOutTime();
+//        prepare();
         if (MainApp.theApp.bleManager != null) {
             if (MainApp.theApp.bleManager.isSupportBle()) {
                 MainApp.theApp.bleManager.enableBluetooth();
@@ -155,6 +157,13 @@
         getAd();
     }
 
+    /**
+     * ���������������������������������
+     */
+    private void wxLoadingOutTime() {
+
+    }
+
     @Override
     protected void processClick(View view) {
 
diff --git a/app/src/main/java/com/moral/yunfushao/MainApp.java b/app/src/main/java/com/moral/yunfushao/MainApp.java
index 2ea0394..dcfb44c 100644
--- a/app/src/main/java/com/moral/yunfushao/MainApp.java
+++ b/app/src/main/java/com/moral/yunfushao/MainApp.java
@@ -47,10 +47,12 @@
         OkGo.getInstance().setCookieStore(new PersistentCookieStore());
 
         if (sharedPreferencesUtil == null) {
-            sharedPreferencesUtil = new SharedPreferencesUtil(this);
+            sharedPreferencesUtil = SharedPreferencesUtil.getUtil(this);
         }
         userId = sharedPreferencesUtil.getUserid();
 
+
+
         if (MainApp.theApp.sharedPreferencesUtil.getVoiceType() == 0) {
             AppConfig.voideUrl1 = "http://yfsapi.7drlb.com/video/boy/music.mp3";
             AppConfig.voideUrl2 = "http://yfsapi.7drlb.com/video/boy/music1.mp3";
diff --git a/app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java b/app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java
index 8074f2b..8e1b0d4 100644
--- a/app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/activity/LoginActivity.java
@@ -1,5 +1,6 @@
 package com.moral.yunfushao.activity;
 
+import android.animation.ObjectAnimator;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
@@ -36,6 +37,7 @@
     private TextView tv_forget, tv_register;
     private EditText et_phone, et_pwd;
     private IWXAPI iwxapi;
+    private ObjectAnimator animator;
 
     @Override
     protected void getBundleExtras(Bundle extras) {
@@ -77,8 +79,24 @@
         et_phone = findView(R.id.et_phone);
         et_pwd = findView(R.id.et_pwd);
         weixinlogin = findView(R.id.weixinlogin);
+
+
 //        et_phone.setText("18362724160");
 //        et_pwd.setText("123456");
+        initAnimator();
+    }
+
+    private void initAnimator() {
+//        ObjectAnimator an = ObjectAnimator.ofFloat(bt_sure, "translationX", 500f, 0f);
+//        an.start();
+////        ObjectAnimator translationY = ObjectAnimator.ofFloat(bt_sure, "rotation", 360f, 0f);
+//        ObjectAnimator scaleY = ObjectAnimator.ofFloat(bt_sure, "scaleY", 0f, 1f);
+//        ObjectAnimator scaleX = ObjectAnimator.ofFloat(bt_sure, "scaleX", 0f, 1f);
+//
+//        AnimatorSet oo = new AnimatorSet();
+//        oo.playTogether(scaleY, scaleX);
+//        oo.setDuration(500);
+//        oo.start();
     }
 
     @Override
@@ -86,6 +104,7 @@
         bt_sure.setOnClickListener(this);
         tv_forget.setOnClickListener(this);
         tv_register.setOnClickListener(this);
+        weixinlogin.setOnClickListener(this);
     }
 
     @Override
diff --git a/app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java b/app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java
index 8fdcadc..a51f9d5 100644
--- a/app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/activity/SplashActivity.java
@@ -5,18 +5,30 @@
 import android.text.TextUtils;
 import android.view.View;
 
+import com.lzy.okgo.cache.CacheMode;
+import com.moral.andbrickslib.utils.GsonUtil;
+import com.moral.andbrickslib.utils.NetworkUtil;
 import com.moral.andbrickslib.utils.StatusBarUtil;
+import com.moral.yunfushao.wxapi.WXEntryActivity;
+import com.moral.yunfushao.wxapi.data.AccessTokenBean;
+import com.moral.yunfushao.wxapi.data.TokenEffectivenessBean;
 import com.moral.yunfushao.MainActivity;
 import com.moral.yunfushao.MainApp;
 import com.moral.yunfushao.R;
 import com.moral.yunfushao.base.BaseActivity;
+import com.moral.yunfushao.common.WXConstants;
+import com.moral.yunfushao.httputils.HttpCallBack;
+import com.moral.yunfushao.httputils.WXHttpUtil;
+import com.moral.yunfushao.utils.SharedPreferencesUtil;
 
 
 /**
  * Created by haijiang on 2017/2/20.
  */
 
-public class SplashActivity extends BaseActivity implements Runnable{
+public class SplashActivity extends BaseActivity implements Runnable {
+    private AccessTokenBean bean = null;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -68,13 +80,89 @@
     public void run() {
         try {
             Thread.sleep(1000);
-        } catch(InterruptedException e) {
+        } catch (InterruptedException e) {
             e.printStackTrace();
         }
-        if(!TextUtils.isEmpty(MainApp.userId)){
+        bean = SharedPreferencesUtil.getUtil(this).getWXToken();
+
+        if (NetworkUtil.isAvailable(this)) {
+            //������������������������
+            if (bean == null) {
+                goHome();
+                //���������������
+            } else {
+                //������������
+//                checkWXLogin();
+                checkTokenEffective();
+            }
+        }
+    }
+
+    /**
+     * ������������token������
+     */
+    private void checkTokenEffective() {
+        //https:api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
+
+        String url = "https:api.weixin.qq.com/sns/auth?access_token=" + bean.getAccess_token() + "&openid=" + WXConstants.APP_ID;
+        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
+            @Override
+            public void onSuccess(String res, String msg) {
+                TokenEffectivenessBean bean = GsonUtil.toObj(msg, TokenEffectivenessBean.class);
+                if (bean.getErrcode() == 0) {
+                    //������������
+                    checkWXLogin();
+                }
+            }
+
+            @Override
+            public void showLoadingDialog() {
+
+            }
+
+            @Override
+            public void onFail(int errno, String s) {
+                //������������
+                goHome();
+            }
+        });
+    }
+
+    /**
+     * ������������������������
+     */
+    private void checkWXLogin() {
+        //
+        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid= " +
+                WXConstants.APP_ID +
+                "&secret=" + "������������" + "&code="+
+                WXEntryActivity.code +
+                "&grant_type=authorization_code";
+//        String url = "https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID";
+        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
+            @Override
+            public void onSuccess(String res, String msg) {
+                AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class);
+
+            }
+
+            @Override
+            public void showLoadingDialog() {
+                //
+            }
+
+            @Override
+            public void onFail(int errno, String s) {
+                goHome();
+            }
+        });
+    }
+
+    private void goHome() {
+        if (!TextUtils.isEmpty(MainApp.userId)) {
             Intent intent = new Intent(this, MainActivity.class);
             startActivity(intent);
-        }else{
+        } else {
             Intent intent = new Intent(this, LoginActivity.class);
             startActivity(intent);
         }
diff --git a/app/src/main/java/com/moral/yunfushao/common/WXConstants.java b/app/src/main/java/com/moral/yunfushao/common/WXConstants.java
new file mode 100644
index 0000000..f32c9a4
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/common/WXConstants.java
@@ -0,0 +1,18 @@
+package com.moral.yunfushao.common;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ */
+public class WXConstants {
+    // APP_ID ������������������������������������������������������appId
+    public static final String APP_ID = "wxd930ea5d5a258f4f";
+
+    public static class ShowMsgActivity {
+        public static final String STitle = "showmsg_title";
+        public static final String SMessage = "showmsg_message";
+        public static final String BAThumbData = "showmsg_thumb_data";
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java b/app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java
new file mode 100644
index 0000000..3d6a326
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/httputils/WXHttpUtil.java
@@ -0,0 +1,41 @@
+package com.moral.yunfushao.httputils;
+
+import com.lzy.okgo.OkGo;
+import com.lzy.okgo.cache.CacheMode;
+import com.lzy.okgo.callback.StringCallback;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ */
+public class WXHttpUtil {
+    public static void doGet(String url, CacheMode cacheMode, final HttpCallBack httpCallBack) {
+        OkGo.get(url)
+                .cacheKey(String.valueOf(url))
+                .tag(String.valueOf(url))
+                .cacheMode(cacheMode)
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        //������������accessTokenBean
+                        if (httpCallBack != null) {
+                            httpCallBack.onSuccess(response.message(), s);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        if (httpCallBack != null) {
+                            httpCallBack.onFail(response.code(), null);
+                        }
+                        //{"errcode":40029,"errmsg":"invalid code"}
+                    }
+                });
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/model/User.java b/app/src/main/java/com/moral/yunfushao/model/User.java
index d276b54..8e45eea 100644
--- a/app/src/main/java/com/moral/yunfushao/model/User.java
+++ b/app/src/main/java/com/moral/yunfushao/model/User.java
@@ -7,16 +7,16 @@
  */
 
 public class User {
-    @JSONField(name="_id")
+    @JSONField(name = "_id")
     private String _id;//������id
-    private String phone;	//������������
-    private String encypt;	//���������
-    private String password;	//������
-    private String nickname;	//������������
-    private int refresh_frequency;	//������������
-    private int is_open_upload;	//������������������
-    private int is_lock;	//������������������0������������������1������������
-    private int video;	//
+    private String phone;    //������������
+    private String encypt;    //���������
+    private String password;    //������
+    private String nickname;    //������������
+    private int refresh_frequency;    //������������
+    private int is_open_upload;    //������������������
+    private int is_lock;    //������������������0������������������1������������
+    private int video;    //
 
     public String get_id() {
         return _id;
diff --git a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
index 20de007..e1a9218 100644
--- a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
+++ b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
@@ -14,7 +14,6 @@
 import android.util.AttributeSet;
 import android.util.TypedValue;
 import android.view.View;
-import android.view.animation.Animation;
 
 import com.moral.yunfushao.R;
 
@@ -187,8 +186,7 @@
                 postInvalidate();
             }
         });
-        anim.setDuration(3000L);
-        anim.setRepeatCount(Animation.INFINITE);
+        anim.setDuration(500L);
         anim.start();
     }
 //
diff --git a/app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java b/app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java
index 5f936b3..cb44f12 100644
--- a/app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java
+++ b/app/src/main/java/com/moral/yunfushao/utils/SharedPreferencesUtil.java
@@ -4,190 +4,250 @@
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 
+import com.moral.andbrickslib.utils.GsonUtil;
+import com.moral.yunfushao.wxapi.data.AccessTokenBean;
 import com.moral.yunfushao.MainApp;
 import com.moral.yunfushao.model.User;
 
 public class SharedPreferencesUtil {
-	private Context mContext;
-	public final static String SP_LOGIN_USER_KEY = "login_user";
-	public final static String SP_BLE = "ble";
-	public SharedPreferencesUtil(Context context) {
-		this.mContext = context;
-	}
+    private static Context mContext = null;
+    public final static String SP_LOGIN_USER_KEY = "login_user";
+    public final static String SP_BLE = "ble";
 
-	/**
-	 * ������������������������
-	 * @param mac
+    public static SharedPreferencesUtil getUtil(Context context) {
+        mContext = context;
+        return Instants.sharedPreferencesUtil;
+    }
+
+    public static class Instants {
+        public static SharedPreferencesUtil sharedPreferencesUtil = new SharedPreferencesUtil();
+    }
+
+    /**
+     * ������������������������������������������������
+     *
+     * @return
      */
-	public void saveBLE(String  mac){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("mac", mac);
-		editor.commit();
-	}
+    public static boolean getLoginModel() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        return preferences.getBoolean("wx", false);
+    }
 
-	public String getBLE(){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE);
-		String mac = preferences.getString("mac","");
-		return mac;
-	}
+    /**
+     * ������������������Token
+     */
+    public void saveWXToken(AccessTokenBean bean) {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor edit = preferences.edit();
+        edit.putString("token_wx", GsonUtil.toStr(bean));
+        edit.commit();
+    }
+
+    /**
+     * ������������������Token
+     */
+    public AccessTokenBean getWXToken() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        String s = preferences.getString("token_wx", null);
+        if (s == null) {
+            return null;
+        } else
+            return GsonUtil.toObj(s, AccessTokenBean.class);
+    }
+
+    /**
+     * ������������������Token
+     */
+    public void removeWXToken() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor edit = preferences.edit();
+        edit.putString("token_wx", null);
+    }
 
 
-	public void saveLoginInfo(User loginUser){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("id",loginUser.get_id());
-		editor.putString("phone",loginUser.getPhone());
-		editor.putString("encypt",loginUser.getEncypt());
-		editor.putString("password",loginUser.getPassword());
-		editor.putString("nickname",loginUser.getNickname());
-		editor.putInt("refresh_frequency",loginUser.getRefresh_frequency());
-		editor.putInt("is_open_upload",loginUser.getIs_open_upload());
-		editor.putInt("is_lock",loginUser.getIs_lock());
-		editor.putInt("video",loginUser.getVideo());
-		editor.commit();
-	}
+    /**
+     * ������������������������
+     *
+     * @param mac
+     */
+    public void saveBLE(String mac) {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("mac", mac);
+        editor.commit();
+    }
 
-	public User getLoginInfo(){
-		SharedPreferences sp = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		User loginUserInfo = new User();
-		loginUserInfo.set_id(sp.getString("id",""));
-		loginUserInfo.setEncypt(sp.getString("encypt",""));
-		loginUserInfo.setPhone(sp.getString("phone",""));
-		loginUserInfo.setPassword(sp.getString("password",""));
-		loginUserInfo.setNickname(sp.getString("nickname",""));
-		loginUserInfo.setRefresh_frequency(sp.getInt("refresh_frequency",10));
-		loginUserInfo.setIs_open_upload(sp.getInt("is_open_upload",1));
-		loginUserInfo.setIs_lock(sp.getInt("is_lock",0));
-		loginUserInfo.setVideo(sp.getInt("video",0));
-		return loginUserInfo;
-	}
+    public String getBLE() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_BLE, Context.MODE_PRIVATE);
+        String mac = preferences.getString("mac", "");
+        return mac;
+    }
 
-	public String getUserid(){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		String userid = preferences.getString("id","");
-		return userid;
-	}
+    /**
+     * ������������
+     * ������������������������������
+     *
+     * @param loginUser
+     */
+    public void saveLoginInfo(User loginUser) {
+        removeWXToken();
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("id", loginUser.get_id());
+        editor.putString("phone", loginUser.getPhone());
+        editor.putString("encypt", loginUser.getEncypt());
+        editor.putString("password", loginUser.getPassword());
+        editor.putString("nickname", loginUser.getNickname());
+        editor.putInt("refresh_frequency", loginUser.getRefresh_frequency());
+        editor.putInt("is_open_upload", loginUser.getIs_open_upload());
+        editor.putInt("is_lock", loginUser.getIs_lock());
+        editor.putInt("video", loginUser.getVideo());
+        editor.commit();
+    }
 
-	public void setUpload(int is_open_upload){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putInt("is_open_upload",is_open_upload);
-		editor.commit();
-	}
+    public User getLoginInfo() {
+        SharedPreferences sp = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        User loginUserInfo = new User();
+        loginUserInfo.set_id(sp.getString("id", ""));
+        loginUserInfo.setEncypt(sp.getString("encypt", ""));
+        loginUserInfo.setPhone(sp.getString("phone", ""));
+        loginUserInfo.setPassword(sp.getString("password", ""));
+        loginUserInfo.setNickname(sp.getString("nickname", ""));
+        loginUserInfo.setRefresh_frequency(sp.getInt("refresh_frequency", 10));
+        loginUserInfo.setIs_open_upload(sp.getInt("is_open_upload", 1));
+        loginUserInfo.setIs_lock(sp.getInt("is_lock", 0));
+        loginUserInfo.setVideo(sp.getInt("video", 0));
+        return loginUserInfo;
+    }
 
-	public void setVideo(int video){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putInt("video",video);
-		editor.commit();
-	}
-	public void setRefreh(int refresh){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putInt("refresh_frequency",refresh);
-		editor.commit();
-	}
-	
-	public void exitLogin(){
-		SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("id","");
-		editor.putString("phone","");
-		editor.putString("encypt","");
-		editor.putString("password","");
-		editor.putString("nickname","");
-		editor.putInt("refresh_frequency",0);
-		editor.putInt("is_open_upload",0);
-		editor.putInt("is_lock",0);
-		editor.putInt("video",0);
-		editor.commit();
-		MainApp.theApp.userId="";
-		saveShowAd("");
-	}
+    public String getUserid() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        String userid = preferences.getString("id", "");
+        return userid;
+    }
 
-	/**
-	 * ���������������������������
-	 * @param flag
-	 */
-	public void saveFirstUse(int flag) {
-		SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
-				Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putInt("firstUse", flag);
-		editor.commit();
-	}
-	
-	public int getFirstUse() {
-		SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
-				Context.MODE_PRIVATE);
-		int firstUse = preferences.getInt("firstUse", 0);
-		return firstUse;
-	}
+    public void setUpload(int is_open_upload) {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putInt("is_open_upload", is_open_upload);
+        editor.commit();
+    }
+
+    public void setVideo(int video) {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putInt("video", video);
+        editor.commit();
+    }
+
+    public void setRefreh(int refresh) {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putInt("refresh_frequency", refresh);
+        editor.commit();
+    }
+
+    public void exitLogin() {
+        SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("id", "");
+        editor.putString("phone", "");
+        editor.putString("encypt", "");
+        editor.putString("password", "");
+        editor.putString("nickname", "");
+        editor.putInt("refresh_frequency", 0);
+        editor.putInt("is_open_upload", 0);
+        editor.putInt("is_lock", 0);
+        editor.putInt("video", 0);
+        editor.commit();
+        MainApp.theApp.userId = "";
+        saveShowAd("");
+    }
+
+    /**
+     * ���������������������������
+     *
+     * @param flag
+     */
+    public void saveFirstUse(int flag) {
+        SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
+                Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putInt("firstUse", flag);
+        editor.commit();
+    }
+
+    public int getFirstUse() {
+        SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
+                Context.MODE_PRIVATE);
+        int firstUse = preferences.getInt("firstUse", 0);
+        return firstUse;
+    }
 
 
-	public void saveShowAd(String time) {
-		SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
-				Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("time", time);
-		editor.commit();
-	}
+    public void saveShowAd(String time) {
+        SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
+                Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("time", time);
+        editor.commit();
+    }
 
-	public String getShowAd() {
-		SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
-				Context.MODE_PRIVATE);
-		String time = preferences.getString("time","");
-		return time;
-	}
+    public String getShowAd() {
+        SharedPreferences preferences = mContext.getSharedPreferences("firstInfo",
+                Context.MODE_PRIVATE);
+        String time = preferences.getString("time", "");
+        return time;
+    }
 
-	/**
-	 * ������
-	 * @param video
-	 */
-	public void saveVideoList(String video) {
-		SharedPreferences preferences = mContext.getSharedPreferences("videoInfo",
-				Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("video", video);
-		editor.commit();
-	}
+    /**
+     * ������
+     *
+     * @param video
+     */
+    public void saveVideoList(String video) {
+        SharedPreferences preferences = mContext.getSharedPreferences("videoInfo",
+                Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("video", video);
+        editor.commit();
+    }
 
-	public String getVideoList() {
-		SharedPreferences preferences = mContext.getSharedPreferences("videoInfo",
-				Context.MODE_PRIVATE);
-		String video = preferences.getString("video","");
-		return video;
-	}
+    public String getVideoList() {
+        SharedPreferences preferences = mContext.getSharedPreferences("videoInfo",
+                Context.MODE_PRIVATE);
+        String video = preferences.getString("video", "");
+        return video;
+    }
 
 
-	public void saveTest(String test) {
-		SharedPreferences preferences = mContext.getSharedPreferences("test",
-				Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putString("test", test);
-		editor.commit();
-	}
+    public void saveTest(String test) {
+        SharedPreferences preferences = mContext.getSharedPreferences("test",
+                Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putString("test", test);
+        editor.commit();
+    }
 
-	public String getTest() {
-		SharedPreferences preferences = mContext.getSharedPreferences("test",
-				Context.MODE_PRIVATE);
-		String test = preferences.getString("test","");
-		return test;
-	}
+    public String getTest() {
+        SharedPreferences preferences = mContext.getSharedPreferences("test",
+                Context.MODE_PRIVATE);
+        String test = preferences.getString("test", "");
+        return test;
+    }
 
-	public void saveVoiceType(int sex) {
-		SharedPreferences preferences = mContext.getSharedPreferences("sex",
-				Context.MODE_PRIVATE);
-		Editor editor = preferences.edit();
-		editor.putInt("sex", sex);
-		editor.commit();
-	}
+    public void saveVoiceType(int sex) {
+        SharedPreferences preferences = mContext.getSharedPreferences("sex",
+                Context.MODE_PRIVATE);
+        Editor editor = preferences.edit();
+        editor.putInt("sex", sex);
+        editor.commit();
+    }
 
-	public int getVoiceType() {
-		SharedPreferences preferences = mContext.getSharedPreferences("sex",
-				Context.MODE_PRIVATE);
-		int test = preferences.getInt("sex",0);
-		return test;
-	}
+    public int getVoiceType() {
+        SharedPreferences preferences = mContext.getSharedPreferences("sex",
+                Context.MODE_PRIVATE);
+        int test = preferences.getInt("sex", 0);
+        return test;
+    }
 }
diff --git a/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java b/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
new file mode 100644
index 0000000..561afbd
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/wxapi/WXEntryActivity.java
@@ -0,0 +1,185 @@
+package com.moral.yunfushao.wxapi;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.widget.Toast;
+
+import com.lzy.okgo.cache.CacheMode;
+import com.moral.andbrickslib.utils.GsonUtil;
+import com.moral.yunfushao.MainActivity;
+import com.moral.yunfushao.common.WXConstants;
+import com.moral.yunfushao.httputils.HttpCallBack;
+import com.moral.yunfushao.httputils.WXHttpUtil;
+import com.moral.yunfushao.model.User;
+import com.moral.yunfushao.wxapi.data.AccessTokenBean;
+import com.moral.yunfushao.wxapi.data.WXUserBean;
+import com.tencent.mm.opensdk.constants.ConstantsAPI;
+import com.tencent.mm.opensdk.modelbase.BaseReq;
+import com.tencent.mm.opensdk.modelbase.BaseResp;
+import com.tencent.mm.opensdk.modelmsg.SendAuth;
+import com.tencent.mm.opensdk.modelmsg.ShowMessageFromWX;
+import com.tencent.mm.opensdk.modelmsg.WXAppExtendObject;
+import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
+import com.tencent.mm.opensdk.openapi.IWXAPI;
+import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
+import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ */
+public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
+    private IWXAPI api;
+    public static String code = "";
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        api = WXAPIFactory.createWXAPI(this, WXConstants.APP_ID, false);
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        setIntent(intent);
+        api.handleIntent(intent, this);
+    }
+
+    @Override
+    public void onReq(BaseReq baseReq) {
+        switch (baseReq.getType()) {
+            case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
+                goToGetMsg();
+                break;
+            case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
+                goToShowMsg((ShowMessageFromWX.Req) baseReq);
+                break;
+            default:
+                break;
+        }
+    }
+
+    @Override
+    public void onResp(BaseResp baseResp) {
+        String result;
+
+        Toast.makeText(this, "baseresp.getType = " + baseResp.getType(), Toast.LENGTH_SHORT).show();
+
+        switch (baseResp.errCode) {
+            case BaseResp.ErrCode.ERR_OK:
+                code = ((SendAuth.Resp) baseResp).code;
+                result = "������������";
+                checkWXLogin();
+                //������������
+                break;
+            case BaseResp.ErrCode.ERR_USER_CANCEL:
+                result = "������������";
+                break;
+            case BaseResp.ErrCode.ERR_AUTH_DENIED:
+                result = "���������������";
+                break;
+            case BaseResp.ErrCode.ERR_UNSUPPORT:
+                result = "���������������";
+                break;
+            default:
+                result = "������������";
+                break;
+        }
+
+        Toast.makeText(this, result, Toast.LENGTH_LONG).show();
+    }
+
+    /**
+     * ������������������������
+     */
+    private void checkWXLogin() {
+        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid= " +
+                WXConstants.APP_ID +
+                "&secret=" + "������������" + "&code=" +
+                WXEntryActivity.code +
+                "&grant_type=authorization_code";
+        WXHttpUtil.doGet(url, CacheMode.DEFAULT, new HttpCallBack() {
+            @Override
+            public void onSuccess(String res, String msg) {
+                AccessTokenBean accessTokenBean = GsonUtil.toObj(msg, AccessTokenBean.class);
+                if (accessTokenBean.getAccess_token() == null && accessTokenBean.getOpenid() == null)
+                    getUserInfor(accessTokenBean.getAccess_token(), accessTokenBean.getOpenid());
+            }
+
+            @Override
+            public void showLoadingDialog() {
+                //
+            }
+
+            @Override
+            public void onFail(int errno, String s) {
+            }
+        });
+    }
+
+    /**
+     * ������������������������
+     *
+     * @param access_token
+     * @param openid
+     */
+    private void getUserInfor(String access_token, String openid) {
+        String path = "https://api.weixin.qq.com/sns/userinfo?access_token="
+                + access_token
+                + "&openid="
+                + openid;
+        WXHttpUtil.doGet(path, CacheMode.DEFAULT, new HttpCallBack() {
+            @Override
+            public void onSuccess(String res, String msg) {
+                WXUserBean bean = new WXUserBean();
+                User user = new User();
+                user.set_id(bean.getOpenid());
+                user.setNickname(bean.getNickname());
+            }
+
+            @Override
+            public void showLoadingDialog() {
+
+            }
+
+            @Override
+            public void onFail(int errno, String s) {
+
+            }
+        });
+    }
+
+    private void goToGetMsg() {
+        Intent intent = new Intent(this, MainActivity.class);
+        intent.putExtras(getIntent());
+        startActivity(intent);
+        finish();
+    }
+
+
+    private void goToShowMsg(ShowMessageFromWX.Req showReq) {
+        WXMediaMessage wxMsg = showReq.message;
+        WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject;
+
+        StringBuffer msg = new StringBuffer(); // ������������������������������������
+        msg.append("description: ");
+        msg.append(wxMsg.description);
+        msg.append("\n");
+        msg.append("extInfo: ");
+        msg.append(obj.extInfo);
+        msg.append("\n");
+        msg.append("filePath: ");
+        msg.append(obj.filePath);
+
+        Intent intent = new Intent(this, MainActivity.class);
+        intent.putExtra(WXConstants.ShowMsgActivity.STitle, wxMsg.title);
+        intent.putExtra(WXConstants.ShowMsgActivity.SMessage, msg.toString());
+        intent.putExtra(WXConstants.ShowMsgActivity.BAThumbData, wxMsg.thumbData);
+        startActivity(intent);
+        finish();
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java b/app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java
new file mode 100644
index 0000000..8cacdaf
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/wxapi/data/AccessTokenBean.java
@@ -0,0 +1,83 @@
+package com.moral.yunfushao.wxapi.data;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ * ������������������������������code������access_token
+ * ������������������code������������������������������access_token���
+ * access_token	������������������
+ * expires_in	access_token������������������������������������������������
+ * refresh_token	������������access_token
+ * openid	������������������������
+ * scope	������������������������������������������,���������
+ * unionid	������������������������������������������������userinfo���������������������������������
+ *
+ */
+public class AccessTokenBean {
+
+    /**
+     * access_token : ACCESS_TOKEN
+     * expires_in : 7200
+     * refresh_token : REFRESH_TOKEN
+     * openid : OPENID
+     * scope : SCOPE
+     * unionid : o6_bmasdasdsad6_2sgVt7hMZOPfL
+     */
+
+    private String access_token;
+    private int expires_in;
+    private String refresh_token;
+    private String openid;
+    private String scope;
+    private String unionid;
+
+    public String getAccess_token() {
+        return access_token;
+    }
+
+    public void setAccess_token(String access_token) {
+        this.access_token = access_token;
+    }
+
+    public int getExpires_in() {
+        return expires_in;
+    }
+
+    public void setExpires_in(int expires_in) {
+        this.expires_in = expires_in;
+    }
+
+    public String getRefresh_token() {
+        return refresh_token;
+    }
+
+    public void setRefresh_token(String refresh_token) {
+        this.refresh_token = refresh_token;
+    }
+
+    public String getOpenid() {
+        return openid;
+    }
+
+    public void setOpenid(String openid) {
+        this.openid = openid;
+    }
+
+    public String getScope() {
+        return scope;
+    }
+
+    public void setScope(String scope) {
+        this.scope = scope;
+    }
+
+    public String getUnionid() {
+        return unionid;
+    }
+
+    public void setUnionid(String unionid) {
+        this.unionid = unionid;
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java b/app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java
new file mode 100644
index 0000000..aaca234
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/wxapi/data/TokenEffectivenessBean.java
@@ -0,0 +1,34 @@
+package com.moral.yunfushao.wxapi.data;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ */
+public class TokenEffectivenessBean {
+
+    /**
+     * errcode : 0
+     * errmsg : ok
+     */
+
+    private int errcode;
+    private String errmsg;
+
+    public int getErrcode() {
+        return errcode;
+    }
+
+    public void setErrcode(int errcode) {
+        this.errcode = errcode;
+    }
+
+    public String getErrmsg() {
+        return errmsg;
+    }
+
+    public void setErrmsg(String errmsg) {
+        this.errmsg = errmsg;
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java b/app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java
new file mode 100644
index 0000000..b29f5ec
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/wxapi/data/WXUserBean.java
@@ -0,0 +1,106 @@
+package com.moral.yunfushao.wxapi.data;
+
+import java.util.List;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/26.
+ * @Package_name: pregnancy_guard_android
+ */
+public class WXUserBean {
+
+    /**
+     * openid : OPENID
+     * nickname : NICKNAME
+     * sex : 1
+     * province : PROVINCE
+     * city : CITY
+     * country : COUNTRY
+     * headimgurl : http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0
+     * privilege : ["PRIVILEGE1","PRIVILEGE2"]
+     * unionid :  o6_bmasdasdsad6_2sgVt7hMZOPfL
+     */
+
+    private String openid;
+    private String nickname;
+    private int sex;
+    private String province;
+    private String city;
+    private String country;
+    private String headimgurl;
+    private String unionid;
+    private List<String> privilege;
+
+    public String getOpenid() {
+        return openid;
+    }
+
+    public void setOpenid(String openid) {
+        this.openid = openid;
+    }
+
+    public String getNickname() {
+        return nickname;
+    }
+
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
+    }
+
+    public int getSex() {
+        return sex;
+    }
+
+    public void setSex(int sex) {
+        this.sex = sex;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCountry() {
+        return country;
+    }
+
+    public void setCountry(String country) {
+        this.country = country;
+    }
+
+    public String getHeadimgurl() {
+        return headimgurl;
+    }
+
+    public void setHeadimgurl(String headimgurl) {
+        this.headimgurl = headimgurl;
+    }
+
+    public String getUnionid() {
+        return unionid;
+    }
+
+    public void setUnionid(String unionid) {
+        this.unionid = unionid;
+    }
+
+    public List<String> getPrivilege() {
+        return privilege;
+    }
+
+    public void setPrivilege(List<String> privilege) {
+        this.privilege = privilege;
+    }
+}

--
Gitblit v1.8.0