Эх сурвалжийг харах

1、打卡距离
2、自动登录

RaoMeng 5 жил өмнө
parent
commit
c9a9b5b122

+ 18 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -687,7 +687,7 @@ public class MainActivity extends BaseActivity implements ImStatusListener, NetW
 
         //初始化面部识别
         com.baidu.aip.excep.utils.FaceConfig.initFace(ct);
-        Login();
+//        Login();
     }
 
     private AutoPresenter autoPresenter;
@@ -1120,6 +1120,8 @@ public class MainActivity extends BaseActivity implements ImStatusListener, NetW
         mMeFragment = null;
         mBusinessCircleFragment = null;
         mLastFragment = null;
+
+        initMessageFragment();
         if (startAgain) {
             Intent intent = new Intent(this, MainActivity.class);
             startActivity(intent);
@@ -1223,13 +1225,7 @@ public class MainActivity extends BaseActivity implements ImStatusListener, NetW
         main_tab_three = findViewById(R.id.main_tab_three);
         mTabRadioGroup.setOnCheckedChangeListener(mTabRadioGroupChangeListener);
         if (savedInstanceState == null) {
-            mTabRadioGroup.check(R.id.main_tab_one);
-            if (mMessageFragment == null) {
-                mMessageFragment = new MessageFragment();
-                changeFragment(mMessageFragment, TAG_MESSAGE);
-                updateMessageTitle();
-                startAnimator(main_tab_one);
-            }
+            initMessageFragment();
         }
         mMsgUnReadTv = (TextView) findViewById(R.id.main_tab_one_tv);
         unWorkReadTV = (TextView) findViewById(R.id.main_tab_five_tv);
@@ -1249,17 +1245,27 @@ public class MainActivity extends BaseActivity implements ImStatusListener, NetW
         initPermission();
     }
 
+    private void initMessageFragment() {
+        mTabRadioGroup.check(R.id.main_tab_one);
+        if (mMessageFragment == null) {
+            mMessageFragment = new MessageFragment();
+            changeFragment(mMessageFragment, TAG_MESSAGE);
+            updateMessageTitle();
+            startAnimator(main_tab_one);
+        }
+    }
+
     private void changeFragment(Fragment addFragment, String tag) {
-        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();// 开始事物
         if (mLastFragment == addFragment) {
             return;
         }
-        if (mLastFragment != null && mLastFragment != addFragment) {// 如果最后一次加载的不是现在要加载的Fragment,那么僵最后一次加载的移出
-            fragmentTransaction.detach(mLastFragment);
-        }
         if (addFragment == null) {
             return;
         }
+        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();// 开始事物
+        if (mLastFragment != null && mLastFragment != addFragment) {// 如果最后一次加载的不是现在要加载的Fragment,那么僵最后一次加载的移出
+            fragmentTransaction.detach(mLastFragment);
+        }
         if (!addFragment.isAdded())// 如果还没有添加,就加上
             fragmentTransaction.add(R.id.main_content, addFragment, tag);
         if (addFragment.isDetached())

+ 70 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java

@@ -14,6 +14,7 @@ import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -22,6 +23,7 @@ import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.data.StringUtil;
 import com.common.file.FileUtils;
 import com.common.hmac.Md5Util;
 import com.common.preferences.PreferenceUtils;
@@ -34,12 +36,14 @@ import com.core.dao.UserDao;
 import com.core.model.ConfigBean;
 import com.core.model.LoginRegisterResult;
 import com.core.model.User;
+import com.core.net.http.ViewUtil;
 import com.core.net.volley.ObjectResult;
 import com.core.net.volley.Result;
 import com.core.net.volley.StringJsonObjectRequest;
 import com.core.utils.CommonUtil;
 import com.core.utils.StatusBarUtil;
 import com.core.utils.TimeUtils;
+import com.core.utils.ToastUtil;
 import com.core.utils.helper.LoginHelper;
 import com.core.utils.sp.UserSp;
 import com.me.network.app.base.HttpCallback;
@@ -73,12 +77,16 @@ import pl.droidsonroids.gif.GifImageView;
 public class SplashActivity extends BaseActivity {
     private final int TIMER_SPLASH_COUNDOWN = 0x11;
 
+    private final int AUTO_LOGIN_SUCCESS = 0x12;
+    private final int AUTO_LOGIN_FAIL = 0x13;
+
     private RelativeLayout mSelectLv;
     private GifImageView mGifImageView;
     private TextView mSkipTextView;
 
     private final String IS_FIRST = "IS_FIRST";
     boolean isJumpable = false, isCountDown = false;
+    private int mLoginState = AUTO_LOGIN_SUCCESS;
 
     private boolean mConfigReady = false;// 配置获取成功
     private GifDrawable mGifDrawable;
@@ -145,6 +153,7 @@ public class SplashActivity extends BaseActivity {
         mSelectLv = (RelativeLayout) findViewById(R.id.select_lv);
         mSelectLv.setVisibility(View.INVISIBLE);
         initConfig();// 初始化配置
+        autoLogin();//自动登录
         updateAccountToken();//更新账户中心token
         requestSplash();
 
@@ -160,12 +169,71 @@ public class SplashActivity extends BaseActivity {
         });
     }
 
+    /**
+     * 自动登录
+     */
+    private void autoLogin() {
+        String role = CommonUtil.getUserRole();
+        String user_phone = CommonUtil.getSharedPreferences(this, "user_phone");
+        String password = PreferenceUtils.getString(this, "PASS_WORDS");
+        String erp_master = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(ct, "erp_master");
+
+        if (StringUtil.hasOneEmpty(user_phone, password, CommonUtil.getAppBaseUrl(this))) {
+            mLoginState = AUTO_LOGIN_FAIL;
+            return;
+        }
+        if (role.equals("2")) {//Erp用户
+            HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(this),
+                    new HttpParams.Builder()
+                            .url("mobile/login.action")
+                            .addParam("username", user_phone)
+                            .addParam("password", password)
+                            .addParam("master", erp_master)
+                            .connectTimeOut(3)
+                            .readTimeOut(3)
+                            .method(Method.POST)
+                            .build(), new HttpCallback() {
+                        @Override
+                        public void onSuccess(int flag, Object o) throws Exception {
+                            try {
+                                String result = o.toString();
+                                JSONObject resultObject = JSON.parseObject(result);
+                                boolean success = JSONUtil.getBoolean(resultObject, "success");
+                                if (success) {
+                                    mLoginState = AUTO_LOGIN_SUCCESS;
+                                } else {
+                                    mLoginState = AUTO_LOGIN_FAIL;
+                                    ViewUtil.clearAccount(MyApplication.getInstance());
+                                    String reason = JSONUtil.getText(resultObject, "reason");
+                                    if (!TextUtils.isEmpty(reason)) {
+                                        Toast.makeText(MyApplication.getInstance(), reason, Toast.LENGTH_LONG).show();
+                                    }
+                                }
+                            } catch (Exception e) {
+                                mLoginState = AUTO_LOGIN_SUCCESS;
+                            }
+                        }
+
+                        @Override
+                        public void onFail(int flag, String failStr) throws Exception {
+                            Toast.makeText(MyApplication.getInstance(), failStr, Toast.LENGTH_LONG).show();
+                            mLoginState = AUTO_LOGIN_FAIL;
+                        }
+                    });
+        }
+    }
+
     private void showSplash() {
         try {
             List<String> pictures = FileUtils.getPictures(Constants.SPLASH_FILE_PATH);
             if (pictures != null && pictures.size() > 0) {
                 isCountDown = false;
-                mSkipTextView.setVisibility(View.VISIBLE);
+                new Handler().postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        mSkipTextView.setVisibility(View.VISIBLE);
+                    }
+                }, 1000);
                 mTimer = new Timer();
                 mTimer.schedule(new TimerTask() {
                     @Override
@@ -519,7 +587,7 @@ public class SplashActivity extends BaseActivity {
             intent.setClass(this, ADActivity.class);
             intent.putExtra("type", type);
         } else {
-            if (type == 1) {
+            if (type == 1 && mLoginState == AUTO_LOGIN_SUCCESS) {
                 intent.setClass(this, MainActivity.class);
             } else {
                 intent.setClass(this, LoginActivity.class);

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Wed May 06 16:45:37 CST 2020
+#Tue May 19 15:43:11 CST 2020
 debugName=972
-versionName=715
+versionName=717
 debugCode=972
-versionCode=269
+versionCode=271

+ 9 - 0
app_core/common/src/main/java/com/common/data/StringUtil.java

@@ -30,6 +30,15 @@ public class StringUtil {
 		return false;
 	}
 
+	public static boolean hasOneEmpty(String... texts) {
+		if (texts == null || texts.length <= 0) return true;
+		for (String text : texts) {
+			if (TextUtils.isEmpty(text))
+				return true;
+		}
+		return false;
+	}
+
 	/*判断是不是一个合法的电子邮件地址*/
 	public static boolean isEmail(String email) {
 		if (email == null || email.trim().length() == 0)

+ 0 - 3
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -1180,9 +1180,6 @@ public class ViewUtil {
 ////            url=CommonUtil.getAppBaseUrl(MyApplication.getInstance());
 ////        }
         String loginToken = CommonUtil.getSharedPreferences(ct, Constants.CACHE.ACCOUNT_CENTER_TOKEN);
-        LogUtil.i("gong","url="+url+"mobile/login.action");
-        LogUtil.i("gong","token="+loginToken);
-        LogUtil.i("gong","enuu="+enuu);
         HttpRequest.getInstance().sendRequest(url,
                 new HttpParams.Builder()
                         .url("mobile/login.action")

+ 5 - 5
app_modular/apputils/src/main/java/com/modular/apputils/utils/SignUtils.java

@@ -93,8 +93,8 @@ public class SignUtils implements OnHttpResultListener {
 
                 if (!ListUtils.isEmpty(beanList)) {
                     for (WorkLocationModel bean : beanList) {
-                        float dis= LocationDistanceUtils.distanceMeBack(bean.getLocation());
-                        if ( dis< bean.getValidrange()) {
+                        float dis = LocationDistanceUtils.distanceMeBack(bean.getLocation());
+                        if (dis < bean.getValidrange()) {
                             return -1;
                         }
                     }
@@ -144,8 +144,8 @@ public class SignUtils implements OnHttpResultListener {
                 }
                 float minDis = -1;
                 for (WorkLocationModel bean : beanList) {
-                    Float dis =  LocationDistanceUtils.getDistance(new LatLng(bean.getLocation().longitude,bean.getLocation().latitude), latLng);
-                    if (dis < bean.getValidrange() && (minDis < 0 || dis < minDis)) {
+                    Float dis = LocationDistanceUtils.getDistance(new LatLng(bean.getLocation().longitude, bean.getLocation().latitude), latLng);
+                    if (dis != -1 && dis < bean.getValidrange() && (minDis < 0 || dis < minDis)) {
                         minDis = dis;
                     }
                 }
@@ -295,7 +295,7 @@ public class SignUtils implements OnHttpResultListener {
             String address = null;
             String name = null;
             if (this.localPoi == null) {
-                UASLocation helper =UasLocationHelper.getInstance().getUASLocation();
+                UASLocation helper = UasLocationHelper.getInstance().getUASLocation();
                 address = helper.getAddress();
                 name = helper.getName();
             } else {