Browse Source

提交分类: ui改版;
提交内容: 1、HttpParams添加请求超时设置
2、启动页添加网络请求需求
当前版本: 测试版本6.2.9
是否冲突: 否

raomeng 8 years ago
parent
commit
f9ce31afee

BIN
WeiChat/src/main/assets/gif_splash_welcome.gif


+ 158 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui;
 import android.Manifest;
 import android.annotation.SuppressLint;
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.os.Handler;
 import android.text.TextUtils;
@@ -13,11 +14,13 @@ import android.view.animation.AnimationUtils;
 import android.widget.RelativeLayout;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.file.FileUtils;
 import com.common.hmac.Md5Util;
 import com.common.preferences.PreferenceUtils;
 import com.common.system.SystemUtil;
@@ -29,6 +32,8 @@ import com.core.dao.UserDao;
 import com.core.model.ConfigBean;
 import com.core.model.LoginRegisterResult;
 import com.core.model.User;
+import com.core.net.ProgressDownloader;
+import com.core.net.ProgressResponseBody;
 import com.core.net.volley.ObjectResult;
 import com.core.net.volley.Result;
 import com.core.net.volley.StringJsonObjectRequest;
@@ -46,7 +51,10 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.activity.ADActivity;
 import com.xzjmyk.pm.activity.ui.me.TimeStatisticsActivity;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.HashMap;
+import java.util.List;
 
 import pl.droidsonroids.gif.AnimationListener;
 import pl.droidsonroids.gif.GifDrawable;
@@ -58,7 +66,7 @@ import pl.droidsonroids.gif.GifImageView;
  * @author Dean Tao
  * @version 1.0
  */
-public class SplashActivity extends BaseActivity {
+public class SplashActivity extends BaseActivity implements ProgressResponseBody.ProgressListener {
     private RelativeLayout mSelectLv;
     private GifImageView mGifImageView;
     private final String IS_FIRST = "IS_FIRST";
@@ -67,6 +75,9 @@ public class SplashActivity extends BaseActivity {
     private boolean mConfigReady = false;// 配置获取成功
     private GifDrawable mGifDrawable;
     private boolean mAnimationCompleted = false;
+    private ProgressDownloader mDownloader;
+    private String mSplshUrl;
+    private long mStartTime;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -75,38 +86,135 @@ public class SplashActivity extends BaseActivity {
         getSupportActionBar().hide();
         StatusBarUtil.immersive(this, 0x00000000, 0.0f);
 
+        mStartTime = System.currentTimeMillis();
         new Handler().postDelayed(new Runnable() {
             @Override
             public void run() {
                 jump();
             }
-        }, 3000);
+        }, 2500);
         mGifImageView = findViewById(R.id.splash_gif_view);
+        showSplash();
+        mSelectLv = (RelativeLayout) findViewById(R.id.select_lv);
+        mSelectLv.setVisibility(View.INVISIBLE);
+        initConfig();// 初始化配置
+        updateAccountToken();//更新账户中心token
+        requestSplash();
+    }
+
+    private void showSplash() {
         try {
-            mGifDrawable = new GifDrawable(getAssets(), "gif_splash_welcome.gif");
-            mGifDrawable.setLoopCount(1);
-            mGifDrawable.setSpeed(1f);
-            mGifDrawable.addAnimationListener(new AnimationListener() {
-                @Override
-                public void onAnimationCompleted(int loopNumber) {
-                    Log.d("gifdrawable", "AnimationCompleted");
-                    mAnimationCompleted = true;
-                    if (isJumpable) {
-                        jump();
+            List<String> pictures = FileUtils.getPictures(Constants.SPLASH_FILE_PATH);
+            if (pictures != null && pictures.size() > 0) {
+                String localSplash = pictures.get(0);
+                int dotIndex = localSplash.lastIndexOf(".");
+                if (dotIndex >= 0) {
+                    String resExtension = localSplash.substring(dotIndex + 1).toLowerCase();
+                    if ("gif".equals(resExtension)) {
+                        mGifDrawable = new GifDrawable(new File(localSplash));
+                    } else {
+                        Bitmap localBitmap = FileUtils.getLocalBitmap(localSplash);
+                        mGifImageView.setImageBitmap(localBitmap);
+                        mAnimationCompleted = true;
+                        return;
                     }
+                } else {
+                    mGifDrawable = new GifDrawable(getAssets(), "gif_splash_welcome.gif");
                 }
-            });
-            mGifImageView.setImageDrawable(mGifDrawable);
-
-            mGifDrawable.start();
+            } else {
+                mGifDrawable = new GifDrawable(getAssets(), "gif_splash_welcome.gif");
+            }
         } catch (Exception e) {
+            try {
+                mGifDrawable = new GifDrawable(getAssets(), "gif_splash_welcome.gif");
+            } catch (IOException e1) {
+            }
+        }
+        mGifDrawable.setLoopCount(1);
+        mGifDrawable.setSpeed(1f);
+        mGifDrawable.addAnimationListener(new AnimationListener() {
+            @Override
+            public void onAnimationCompleted(int loopNumber) {
+                mAnimationCompleted = true;
+                if (isJumpable) {
+                    jump();
+                }
+            }
+        });
+        mGifImageView.setImageDrawable(mGifDrawable);
+        mGifDrawable.start();
+    }
 
+    private void requestSplash() {
+        if (!CommonUtil.isNetWorkConnected(mContext)) {
+            return;
         }
+        HttpRequest.getInstance().sendRequest(Constants.IM_BASE_URL,
+                new HttpParams.Builder()
+                        .url("user/appStart")
+                        .method(Method.GET)
+                        .addParam("token", 1)
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        try {
+                            String result = o.toString();
+                            if (JSONUtil.validate(result)) {
+                                JSONObject resultObject = JSON.parseObject(result);
+                                JSONArray resArray = resultObject.getJSONArray("result");
+                                if (resArray != null && resArray.size() > 0) {
+                                    JSONObject resObject = resArray.getJSONObject(0);
+                                    String resUrl = JSONUtil.getText(resObject, "aa_urlc");
+                                    if (!TextUtils.isEmpty(resUrl)) {
+                                        String oldUrl = CommonUtil.getSharedPreferences(mContext, Constants.CACHE.CACHE_SPLASH_URL);
+                                        if (resUrl.equals(oldUrl)) {
+                                            return;
+                                        } else {
+                                            initSplashDir();
+                                            mSplshUrl = resUrl;
+                                            downloadSplash(resUrl);
+                                        }
+                                    } else {
+                                        initSplashDir();
+                                        CommonUtil.setSharedPreferences(mContext, Constants.CACHE.CACHE_SPLASH_URL, "");
+                                    }
+                                } else {
+                                    initSplashDir();
+                                    CommonUtil.setSharedPreferences(mContext, Constants.CACHE.CACHE_SPLASH_URL, "");
+                                }
+                            }
+                        } catch (Exception e) {
+                        }
+                    }
 
-        mSelectLv = (RelativeLayout) findViewById(R.id.select_lv);
-        mSelectLv.setVisibility(View.INVISIBLE);
-        initConfig();// 初始化配置
-        updateAccountToken();//更新账户中心token
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                    }
+                });
+    }
+
+    private void initSplashDir() {
+        File directory = new File(Constants.SPLASH_FILE_PATH);
+        if (!directory.exists() && !directory.isDirectory()) {
+            boolean mkdirs = directory.mkdirs();
+        } else {
+            CommonUtil.delAllFile(Constants.SPLASH_FILE_PATH);
+        }
+    }
+
+    private void downloadSplash(String resUrl) {
+        int dotIndex = resUrl.lastIndexOf(".");
+        if (dotIndex >= 0) {
+            String resExtension = resUrl.substring(dotIndex);
+            File splashFile = new File(Constants.SPLASH_FILE_PATH, Constants.SPLASH_FILE_NAME + resExtension);
+            try {
+                splashFile.createNewFile();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            mDownloader = new ProgressDownloader(resUrl, splashFile, SplashActivity.this);
+            mDownloader.download(0L);
+        }
     }
 
     @Override
@@ -192,6 +300,18 @@ public class SplashActivity extends BaseActivity {
             return;
         }
 
+        long currentTime = System.currentTimeMillis();
+        long duration = currentTime - mStartTime;
+        if (duration < 2500) {
+            new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    jump();
+                }
+            }, 2500 - duration);
+            return;
+        }
+
         int userStatus = LoginHelper.prepareUser(mContext);
         switch (userStatus) {
             case LoginHelper.STATUS_USER_FULL://5
@@ -340,7 +460,23 @@ public class SplashActivity extends BaseActivity {
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        mGifDrawable.recycle();
-        mGifDrawable = null;
+        if (mGifDrawable != null) {
+            mGifDrawable.recycle();
+            mGifDrawable = null;
+        }
+    }
+
+    @Override
+    public void onPreExecute(long contentLength) {
+
+    }
+
+    @Override
+    public void update(long totalBytes, boolean done) {
+        if (done) {
+            if (!TextUtils.isEmpty(mSplshUrl)) {
+                CommonUtil.setSharedPreferences(mContext, Constants.CACHE.CACHE_SPLASH_URL, mSplshUrl);
+            }
+        }
     }
 }

+ 0 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/WorkPlatFragment.java

@@ -158,8 +158,6 @@ public class WorkPlatFragment extends BaseMVPFragment<WorkPlatPresenter> impleme
 
                 @Override
                 public void onHeaderPulling(RefreshHeader header, float percent, int offset, int headerHeight, int extendHeight) {
-                    Log.d("工作台下拉", "offset->" + offset + "||percent->" + percent + "||headerHeight->" + headerHeight + "||extendHeight->" + extendHeight);
-
                     ViewGroup.LayoutParams layoutParams = mHeaderRelativeLayout.getLayoutParams();
                     layoutParams.height = (int) (mHeaderHeight * (1 + percent));
                     mHeaderRelativeLayout.setLayoutParams(layoutParams);
@@ -169,8 +167,6 @@ public class WorkPlatFragment extends BaseMVPFragment<WorkPlatPresenter> impleme
 
                 @Override
                 public void onHeaderReleasing(RefreshHeader header, float percent, int offset, int headerHeight, int extendHeight) {
-                    Log.d("工作台释放", "offset->" + offset + "||percent->" + percent + "||headerHeight->" + headerHeight + "||extendHeight->" + extendHeight);
-
                     ViewGroup.LayoutParams layoutParams = mHeaderRelativeLayout.getLayoutParams();
                     layoutParams.height = (int) (mHeaderHeight * (1 + percent));
                     mHeaderRelativeLayout.setLayoutParams(layoutParams);

+ 1 - 1
WeiChat/src/main/res/values/styles.xml

@@ -998,7 +998,7 @@
     </style>
 
     <!--TabPageIndicatorStyle-->
-    <style name="StyledIndicators" parent="@style/AppTheme">
+    <style name="StyledIndicators" parent="@style/MainBaseTheme">
         <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
         <item name="vpiUnderlinePageIndicatorStyle">@style/CustomUnderlinePageIndicator</item>
     </style>

+ 58 - 3
app_core/common/src/main/java/com/common/file/FileUtils.java

@@ -1,6 +1,8 @@
 package com.common.file;
 
 import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.os.Environment;
 import android.util.Log;
@@ -13,6 +15,8 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by Bitliker on 2017/8/10.
@@ -46,10 +50,10 @@ public class FileUtils {
     public static String getMIMEType(File f) {
         String type = "";
         String fName = f.getName();
-      /* 取得扩展名 */
+        /* 取得扩展名 */
         String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase();
 
-      /* 依扩展名的类型决定MimeType */
+        /* 依扩展名的类型决定MimeType */
         if (end.equals("pdf")) {
             type = "application/pdf";//
         } else if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") ||
@@ -63,7 +67,7 @@ public class FileUtils {
         } else if (end.equals("apk")) {
             type = "application/vnd.android.package-archive";
         } else {
-        /*如果无法直接打开,就跳出软件列表给用户选择 */
+            /*如果无法直接打开,就跳出软件列表给用户选择 */
             type = "*/*";
         }
         LogUtil.d("下载文件类型:" + type);
@@ -234,4 +238,55 @@ public class FileUtils {
             Log.e("deleteFileOrDir", "delete file no exists " + file.getAbsolutePath());
         }
     }
+
+    /**
+     * 获取SDCard中某个目录下图片路径集合
+     */
+
+    public static List<String> getPictures(final String strPath) {
+        try {
+            List<String> list = new ArrayList<String>();
+            File file = new File(strPath);
+            File[] allfiles = file.listFiles();
+            if (allfiles == null) {
+                return null;
+            }
+            for (int i = 0; i < allfiles.length; i++) {
+                final File fi = allfiles[i];
+                if (fi.isFile()) {
+                    int idx = fi.getPath().lastIndexOf(".");
+                    if (idx <= 0) {
+                        continue;
+                    }
+                    String suffix = fi.getPath().substring(idx);
+                    if (suffix.toLowerCase().equals(".jpg") ||
+                            suffix.toLowerCase().equals(".jpeg") ||
+                            suffix.toLowerCase().equals(".bmp") ||
+                            suffix.toLowerCase().equals(".png") ||
+                            suffix.toLowerCase().equals(".gif")) {
+                        list.add(fi.getPath());
+                    }
+                }
+            }
+            return list;
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    /**
+     * 加载本地图片
+     *
+     * @param url
+     * @return
+     */
+    public static Bitmap getLocalBitmap(String url) {
+        try {
+            FileInputStream fis = new FileInputStream(url);
+            return BitmapFactory.decodeStream(fis);  ///把流转化为Bitmap图片
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
 }

+ 7 - 1
app_core/common/src/main/java/com/core/app/Constants.java

@@ -1,5 +1,7 @@
 package com.core.app;
 
+import android.os.Environment;
+
 import com.common.config.BaseConfig;
 import com.core.db.DatabaseTables;
 
@@ -10,7 +12,7 @@ public class Constants {
     public static final String BASE_URL_LOGIN = "http://manage.ubtob.com/public/account";
     //账户中心地址
     public static final String ACCOUNT_CENTER_HOST = "https://sso.ubtob.com/";
-//    public static final String ACCOUNT_CENTER_HOST = "http://10.1.51.50:3001/";
+    //    public static final String ACCOUNT_CENTER_HOST = "http://10.1.51.50:3001/";
     //    public static final String ACCOUNT_CENTER_HOST = "https://account.ubtob.com/";
     //IM正式地址
     public static final String IM_BASE_URL = "http://113.105.74.140:8092/";
@@ -472,6 +474,8 @@ public class Constants {
     public static String BASE_CHARIT_ACTIVITY_URL = "http://lj.ubtob.com/mobile#/activity/detail/";
     public static String BASE_CHARIT_PROJECT_URL = "http://lj.ubtob.com/mobile#/project/detail/";
 
+    public static String SPLASH_FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/UU/splash";
+    public static String SPLASH_FILE_NAME = "splash";
 
     public interface FLAG {
         //webview Cookie缓存
@@ -547,5 +551,7 @@ public class Constants {
         String EN_BUSINESS_CODE = "en_business_code";
 
         String MODIFY_PASSWORD_VERIFY_CODE = "modify_password_verify_code";
+
+        String CACHE_SPLASH_URL = "cache_splash_url";
     }
 }

+ 34 - 33
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -93,13 +93,13 @@ public class ViewUtil {
 
 
     public static void ToastMessage(Context cont, String msg) {
-        ToastUtil.showToast(cont,msg);
+        ToastUtil.showToast(cont, msg);
 
     }
 
 
     public static void ToastMessage(Context cont, String msg, int toastColor, int toastTime) {
-        ToastUtil.showToast(cont,msg);
+        ToastUtil.showToast(cont, msg);
 //        if (cont instanceof Activity) {
 //            if (crouton != null) {
 //                crouton.cancel();
@@ -276,7 +276,7 @@ public class ViewUtil {
      */
     public static void LoginTask(final String user_phone, final String user_password, final Context ct) {
         ViewUtil.ct = ct;
-        LogUtil.d("AppInfo","password:"+user_password+" phone:"+user_phone);
+        LogUtil.d("AppInfo", "password:" + user_password + " phone:" + user_phone);
         mdProcessDialog = new MaterialDialog.Builder(ct).title(
                 MyApplication.getInstance().getString(R.string.app_dialog_title))
                 .content(MyApplication.getInstance().getString(R.string.login_progress_erp))
@@ -527,10 +527,10 @@ public class ViewUtil {
                 ct.startActivity(new Intent("com.modular.main.DataDownloadActivity"));
             }
             CommonUtil.setSharedPreferences(ct, "erp_baseurl", erp_baseurl);
-        }else{
+        } else {
             if (!StringUtil.isEmpty(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_baseurl"))) {
             } else {
-              MyApplication.getInstance().startActivity(new Intent("com.modular.main.DataDownloadActivity"));
+                MyApplication.getInstance().startActivity(new Intent("com.modular.main.DataDownloadActivity"));
             }
             CommonUtil.setSharedPreferences(ct, "erp_baseurl", erp_baseurl);
         }
@@ -639,8 +639,7 @@ public class ViewUtil {
     }
 
 
-   
-      /*@功能:管理平台的返回信息处理*/
+    /*@功能:管理平台的返回信息处理*/
     public static void LoginSucess(String json, String phone, String password) {
         CommonUtil.setSharedPreferences(ct, "loginJson", json);
         try {
@@ -654,7 +653,7 @@ public class ViewUtil {
                 }
             }
         } catch (Exception e) {
-             e.printStackTrace();
+            e.printStackTrace();
         }
         if (JSONUtil.validate(json)) {
             // showDialogCompany(json, phone, password);
@@ -665,7 +664,6 @@ public class ViewUtil {
     }
 
 
-
     public static void showLoginDialog(String loginResult, final String phone, final String password) {
         List<LoginEntity> loginMsg = JSON.parseArray(loginResult, LoginEntity.class);
         List<LoginEntity> loginEntities = new ArrayList<>();
@@ -723,16 +721,16 @@ public class ViewUtil {
             erpEntities = loginEntities;
             String[] items = new String[loginEntities.size()];
             int select = 0;
-            List<ItemsSelectType1> itemsSelectType1s=new ArrayList<>();
+            List<ItemsSelectType1> itemsSelectType1s = new ArrayList<>();
             for (int j = 0; j < loginEntities.size(); j++) {
-                ItemsSelectType1 model=new ItemsSelectType1();
+                ItemsSelectType1 model = new ItemsSelectType1();
                 model.setName(loginEntities.get(j).getName());
                 items[j] = loginEntities.get(j).getName();
                 itemsSelectType1s.add(model);
-                String companyName=CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_commpany");
-                if (!StringUtil.isEmpty(companyName)){
-                    if (companyName.equals(loginEntities.get(j).getName())){
-                        selectId=j;
+                String companyName = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_commpany");
+                if (!StringUtil.isEmpty(companyName)) {
+                    if (companyName.equals(loginEntities.get(j).getName())) {
+                        selectId = j;
                     }
                 }
             }
@@ -743,8 +741,8 @@ public class ViewUtil {
 //                if (select > items.length) {
 //                    select = 0;
 //                }
-                popupWindow=null;
-                showPopDialog((Activity) ct,itemsSelectType1s,phone,password);
+                popupWindow = null;
+                showPopDialog((Activity) ct, itemsSelectType1s, phone, password);
 //                loginERPDialog = new MaterialDialog.Builder(ct)
 //                        .title(ct.getString(R.string.user_dialog_company))
 //                        .items(items)
@@ -763,22 +761,23 @@ public class ViewUtil {
 
 
     public static PopupWindow popupWindow = null;
-    public static int selectId=0;
+    public static int selectId = 0;
     public static ItemPopListAdapter adapter;
-    public static void  showPopDialog(final Activity ct, List<ItemsSelectType1> itemsSelectType1s
-    , final String phone, final String password){
-        erp_phone=phone;
-        erp_password=password;
+
+    public static void showPopDialog(final Activity ct, List<ItemsSelectType1> itemsSelectType1s
+            , final String phone, final String password) {
+        erp_phone = phone;
+        erp_password = password;
         View view = null;
-        if (DialogUtils.isDialogShowing(mdProcessDialog)){
+        if (DialogUtils.isDialogShowing(mdProcessDialog)) {
             mdProcessDialog.dismiss();
         }
-        WindowManager windowManager = (WindowManager)ct. getSystemService(Context.WINDOW_SERVICE);
+        WindowManager windowManager = (WindowManager) ct.getSystemService(Context.WINDOW_SERVICE);
         if (popupWindow == null) {
             LayoutInflater layoutInflater = (LayoutInflater) ct.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             view = layoutInflater.inflate(R.layout.pop_dialog_list, null);
             ListView plist = view.findViewById(R.id.mList);
-            List<ItemsSelectType1> datas =itemsSelectType1s;
+            List<ItemsSelectType1> datas = itemsSelectType1s;
             adapter = new ItemPopListAdapter(ct, datas);
             adapter.setSelectId(selectId);
             plist.setAdapter(adapter);
@@ -792,11 +791,12 @@ public class ViewUtil {
                     selectId = position;
                     adapter.setSelectId(selectId);
                     adapter.notifyDataSetChanged();
-                    ItemPopListAdapter.ViewHolder viewHolder= (ItemPopListAdapter.ViewHolder) view.getTag();
-                    String text= viewHolder.tvItemName.getText().toString();
+                    ItemPopListAdapter.ViewHolder viewHolder = (ItemPopListAdapter.ViewHolder) view.getTag();
+                    String text = viewHolder.tvItemName.getText().toString();
                     selectCompanyItems(selectId, text, phone, password);
-                }});
-            popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth()- DensityUtil.dp2px(50), LinearLayout.LayoutParams.WRAP_CONTENT);
+                }
+            });
+            popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth() - DensityUtil.dp2px(50), LinearLayout.LayoutParams.WRAP_CONTENT);
         }
         popupWindow.setFocusable(true);
         popupWindow.setOutsideTouchable(true);
@@ -811,8 +811,7 @@ public class ViewUtil {
         popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
         popupWindow.showAtLocation(ct.getWindow().getDecorView(), Gravity.CENTER, 0, 0);
     }
-        
-  
+
 
     private static boolean selectCompanyItems(int which, CharSequence text, String phone, String password) {
         if (!CommonUtil.isNetWorkConnected(ct)) {
@@ -1210,6 +1209,8 @@ public class ViewUtil {
                         .url("mobile/login.action")
                         .addParam("token", loginToken)
                         .addParam("enuu", enuu)
+                        .connectTimeOut(5)
+                        .readTimeOut(5)
                         .method(Method.POST)
                         .build(), new HttpCallback() {
                     @Override
@@ -1222,8 +1223,8 @@ public class ViewUtil {
 
                     @Override
                     public void onFail(int flag, String failStr) throws Exception {
-                        Log.e("erp登录失败", "登录失败:"+failStr);
-                        ToastMessage(MyApplication.getInstance(),"登录失败:"+failStr);
+                        Log.e("erp登录失败", "登录失败:" + failStr);
+                        ToastMessage(MyApplication.getInstance(), "登录失败:" + failStr);
                         mdProcessDialog.setContent("登录失败");
                         new Handler().postDelayed(new Runnable() {
                             @Override

+ 42 - 0
app_core/network/src/main/java/com/me/network/app/base/HttpParams.java

@@ -10,6 +10,9 @@ import java.util.Map;
  */
 
 public class HttpParams {
+    public static final long CONNECT_TIME_OUT = 30;
+    public static final long READ_TIME_OUT = 30;
+    public static final long WRITE_TIME_OUT = 30;
 
     /**
      * 请求地址
@@ -36,6 +39,12 @@ public class HttpParams {
      */
     private int method;
 
+    private long connectTimeOut = CONNECT_TIME_OUT;
+
+    private long readTimeOut = READ_TIME_OUT;
+
+    private long writeTimeOut = WRITE_TIME_OUT;
+
 
     public HttpParams(Builder builder) {
         this.url = builder.url;
@@ -43,6 +52,9 @@ public class HttpParams {
         this.params = builder.params;
         this.headers = builder.headers;
         this.method = builder.method;
+        this.connectTimeOut = builder.connectTimeOut;
+        this.readTimeOut = builder.readTimeOut;
+        this.writeTimeOut = builder.writeTimeOut;
     }
 
     public String getUrl() {
@@ -65,12 +77,27 @@ public class HttpParams {
         return method;
     }
 
+    public long getConnectTimeOut() {
+        return connectTimeOut;
+    }
+
+    public long getReadTimeOut() {
+        return readTimeOut;
+    }
+
+    public long getWriteTimeOut() {
+        return writeTimeOut;
+    }
+
     public static class Builder {
         private String url;
         private int flag;
         private Map<String, Object> params = new HashMap<>();
         private Map<String, Object> headers = new HashMap<>();
         private int method;
+        private long connectTimeOut = CONNECT_TIME_OUT;
+        private long readTimeOut = READ_TIME_OUT;
+        private long writeTimeOut = WRITE_TIME_OUT;
 
         public Builder url(String val) {
             this.url = val;
@@ -123,6 +150,21 @@ public class HttpParams {
             return this;
         }
 
+        public Builder connectTimeOut(long seconds) {
+            this.connectTimeOut = seconds;
+            return this;
+        }
+
+        public Builder readTimeOut(long seconds) {
+            this.readTimeOut = seconds;
+            return this;
+        }
+
+        public Builder writeTimeOut(long seconds) {
+            this.writeTimeOut = seconds;
+            return this;
+        }
+
         public HttpParams build() {
             return new HttpParams(this);
         }

+ 3 - 0
app_core/network/src/main/java/com/me/network/app/http/HttpRequest.java

@@ -79,6 +79,9 @@ public class HttpRequest {
 
         mHttpClient.Api().send(new HttpClient.Builder()
                 .url(httpParams.getUrl())
+                .connectTimeout(httpParams.getConnectTimeOut())
+                .readTimeout(httpParams.getReadTimeOut())
+                .writeTimeout(httpParams.getWriteTimeOut())
                 .addHeaders(httpParams.getHeaders())
                 .addParams(httpParams.getParams())
                 .method((httpParams.getMethod() == Method.GET) ? Method.GET : Method.POST)

+ 2 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/PurchaseDetailsActivity.java

@@ -23,6 +23,7 @@ import com.common.thread.ThreadPool;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
+import com.core.base.view.AndroidBug5497Workaround;
 import com.core.net.http.http.OAHttpHelper;
 import com.core.utils.CommonUtil;
 import com.core.utils.ToastUtil;
@@ -81,6 +82,7 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
 
     @Override
     protected void init() throws Exception {
+        AndroidBug5497Workaround.assistActivity(this);
         Intent intent = getIntent();
         initIntent(intent);
         initView();

+ 5 - 4
app_modular/appworks/src/main/java/com/uas/appworks/activity/CustomerInquiryDetailActivity.java

@@ -22,6 +22,7 @@ import com.core.api.wxapi.ApiPlatform;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.activity.BaseMVPActivity;
+import com.core.base.view.AndroidBug5497Workaround;
 import com.core.utils.CommonUtil;
 import com.me.network.app.base.HttpCallback;
 import com.me.network.app.base.HttpParams;
@@ -76,7 +77,7 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
 
     @Override
     protected void initView() {
-
+        AndroidBug5497Workaround.assistActivity(this);
         mDataRecyclerView = $(R.id.customer_inquiry_detail_data_rv);
         mQuoteRecyclerView = $(R.id.customer_inquiry_detail_quote_rv);
         mAddImageView = $(R.id.customer_inquiry_detail_add_iv);
@@ -150,7 +151,7 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
                         initEditable(false, View.GONE);
                         break;
                     case Constants.FLAG.STATE_CUSTOMER_INQUIRY_REFUSED:
-                       setTitle(R.string.str_quotation_unadopted);
+                        setTitle(R.string.str_quotation_unadopted);
                         initEditable(false, View.GONE);
                         break;
                     case Constants.FLAG.STATE_CUSTOMER_INQUIRY_INVALID:
@@ -162,7 +163,7 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
                         initEditable(false, View.GONE);
                         break;
                     case Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO:
-                       setTitle(R.string.str_wait_quoted);
+                        setTitle(R.string.str_wait_quoted);
                         initEditable(true, View.VISIBLE);
                         break;
                     case Constants.FLAG.STATE_PUBLIC_INQUIRY_INVALID:
@@ -532,7 +533,7 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
         String result = o.toString();
         LogUtil.prinlnLongMsg("customerdetailsuccess", result);
         if (flag == CUSTOMER_INQUIRY_REPLY) {
-          setTitle(R.string.str_quoted_price);
+            setTitle(R.string.str_quoted_price);
             toast(getString(R.string.quote_success));
             String publicId = "";
             if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {