Browse Source

查询统计菜单缓存

raomeng 8 years ago
parent
commit
eb880875f6

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

@@ -10,6 +10,9 @@ public interface Constants {
         String PDF_FILE_NAME = "statement.pdf";
         String PDF_FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/UU/statementFile";
 
+        String DATA_INQUIRY_MENU_CACHE = "data_inquiry_menu_cache";
+        String REPORT_QUERY_MENU_CACHE = "report_query_menu_cache";
+
         //打印成功
         int DOWNLOAD_SUCCESS = 1;
         //打印失败
@@ -18,5 +21,6 @@ public interface Constants {
         int PDF_OVERLOAD = 3;
         //打印进度
         int DOWNLOAD_PROGRESS = 4;
+
     }
 }

+ 96 - 54
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryActivity.java

@@ -3,11 +3,14 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.TextUtils;
 import android.widget.ListView;
 
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMenuListAdapter;
@@ -30,7 +33,7 @@ import java.util.Map;
  */
 public class DataInquiryActivity extends BaseActivity {
     private final int GET_MENU_DATA = 0x08;
-    private ListView mMenuListView;
+    private PullToRefreshListView mMenuListView;
     private List<GridMenuDataInquiryBean> mGridMenuDataInquiryBeans;
     private DataInquiryMenuListAdapter mDataInquiryMenuListAdapter;
 
@@ -40,16 +43,44 @@ public class DataInquiryActivity extends BaseActivity {
         setContentView(R.layout.activity_data_inquiry);
         getSupportActionBar().setTitle(R.string.select_query_service);
 
-        mMenuListView = (ListView) findViewById(R.id.data_inquiry_menu_lv);
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
         mGridMenuDataInquiryBeans = new ArrayList<>();
         mDataInquiryMenuListAdapter = new DataInquiryMenuListAdapter(this, mGridMenuDataInquiryBeans);
         mMenuListView.setAdapter(mDataInquiryMenuListAdapter);
 
-        if (!CommonUtil.isNetWorkConnected(this)) {
-            ToastMessage(getString(R.string.networks_out));
+        String dataInquiryMenuCache = CommonUtil.getSharedPreferences(this, com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_CACHE);
+        if (TextUtils.isEmpty(dataInquiryMenuCache)) {
+            if (!CommonUtil.isNetWorkConnected(this)) {
+                ToastMessage(getString(R.string.networks_out));
+            } else {
+                getMenuData();
+            }
         } else {
-            getMenuData();
+            analysisMenuData(dataInquiryMenuCache);
         }
+
+        mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (!CommonUtil.isNetWorkConnected(DataInquiryActivity.this)) {
+                    ToastMessage(getString(R.string.networks_out));
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mMenuListView.onRefreshComplete();
+                            }
+                        }, 500);
+                } else {
+                    getMenuData();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+
+            }
+        });
     }
 
     private void getMenuData() {
@@ -68,66 +99,77 @@ public class DataInquiryActivity extends BaseActivity {
             switch (msg.what) {
                 case GET_MENU_DATA:
                     progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
                     String result = msg.getData().getString("result");
-                    if (result != null) {
-                        LogUtil.prinlnLongMsg("menudata", result);
-                        try {
-                            JSONObject resultObject = new JSONObject(result);
-                            JSONArray dataArray = resultObject.optJSONArray("data");
-                            if (dataArray != null) {
-                                for (int i = 0; i < dataArray.length(); i++) {
-                                    JSONObject dataObject = dataArray.optJSONObject(i);
-                                    if (dataObject != null) {
-                                        GridMenuDataInquiryBean gridMenuDataInquiryBean = new GridMenuDataInquiryBean();
-                                        String modelName = optStringNotNull(dataObject, "modelName");
-                                        gridMenuDataInquiryBean.setModelName(modelName);
-                                        JSONArray listArray = dataObject.optJSONArray("list");
-                                        if (listArray != null) {
-                                            List<GridMenuDataInquiryBean.QueryScheme> querySchemes = new ArrayList<>();
-                                            for (int j = 0; j < listArray.length(); j++) {
-                                                JSONObject listObject = listArray.optJSONObject(j);
-                                                if (listObject != null) {
-                                                    String title = optStringNotNull(listObject, "title");
-                                                    String caller = optStringNotNull(listObject, "caller");
-                                                    JSONArray schemeArray = listObject.optJSONArray("schemes");
-                                                    if (schemeArray != null) {
-                                                        for (int k = 0; k < schemeArray.length(); k++) {
-                                                            JSONObject schemeObject = schemeArray.optJSONObject(k);
-                                                            if (schemeObject != null) {
-                                                                String scheme = optStringNotNull(schemeObject, "scheme");
-                                                                String schemeId = optStringNotNull(schemeObject, "schemeId");
-
-                                                                GridMenuDataInquiryBean.QueryScheme queryScheme = new GridMenuDataInquiryBean.QueryScheme();
-                                                                queryScheme.setTitle(title);
-                                                                queryScheme.setCaller(caller);
-                                                                queryScheme.setScheme(scheme);
-                                                                queryScheme.setSchemeId(schemeId);
-
-                                                                querySchemes.add(queryScheme);
-                                                            }
-                                                        }
-                                                    }
+                    if (result != null)
+                        CommonUtil.setSharedPreferences(DataInquiryActivity.this, com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_CACHE,
+                                result);
+                    analysisMenuData(result);
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
+                    ToastMessage(msg.getData().getString("result"));
+                    break;
+            }
+        }
+    };
+
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            LogUtil.prinlnLongMsg("menudata", result);
+            try {
+                JSONObject resultObject = new JSONObject(result);
+                JSONArray dataArray = resultObject.optJSONArray("data");
+                if (dataArray != null) {
+                    for (int i = 0; i < dataArray.length(); i++) {
+                        JSONObject dataObject = dataArray.optJSONObject(i);
+                        if (dataObject != null) {
+                            GridMenuDataInquiryBean gridMenuDataInquiryBean = new GridMenuDataInquiryBean();
+                            String modelName = optStringNotNull(dataObject, "modelName");
+                            gridMenuDataInquiryBean.setModelName(modelName);
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            if (listArray != null) {
+                                List<GridMenuDataInquiryBean.QueryScheme> querySchemes = new ArrayList<>();
+                                for (int j = 0; j < listArray.length(); j++) {
+                                    JSONObject listObject = listArray.optJSONObject(j);
+                                    if (listObject != null) {
+                                        String title = optStringNotNull(listObject, "title");
+                                        String caller = optStringNotNull(listObject, "caller");
+                                        JSONArray schemeArray = listObject.optJSONArray("schemes");
+                                        if (schemeArray != null) {
+                                            for (int k = 0; k < schemeArray.length(); k++) {
+                                                JSONObject schemeObject = schemeArray.optJSONObject(k);
+                                                if (schemeObject != null) {
+                                                    String scheme = optStringNotNull(schemeObject, "scheme");
+                                                    String schemeId = optStringNotNull(schemeObject, "schemeId");
+
+                                                    GridMenuDataInquiryBean.QueryScheme queryScheme = new GridMenuDataInquiryBean.QueryScheme();
+                                                    queryScheme.setTitle(title);
+                                                    queryScheme.setCaller(caller);
+                                                    queryScheme.setScheme(scheme);
+                                                    queryScheme.setSchemeId(schemeId);
+
+                                                    querySchemes.add(queryScheme);
                                                 }
                                             }
-                                            gridMenuDataInquiryBean.setQuerySchemes(querySchemes);
                                         }
-                                        mGridMenuDataInquiryBeans.add(gridMenuDataInquiryBean);
                                     }
                                 }
-                                mDataInquiryMenuListAdapter.notifyDataSetChanged();
+                                gridMenuDataInquiryBean.setQuerySchemes(querySchemes);
                             }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
+                            mGridMenuDataInquiryBeans.add(gridMenuDataInquiryBean);
                         }
                     }
-                    break;
-                case Constants.APP_SOCKETIMEOUTEXCEPTION:
-                    progressDialog.dismiss();
-                    ToastMessage(msg.getData().getString("result"));
-                    break;
+                    mDataInquiryMenuListAdapter.notifyDataSetChanged();
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
             }
         }
-    };
+    }
 
 
     public String optStringNotNull(JSONObject json, String key) {

+ 4 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryListActivity.java

@@ -113,7 +113,8 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 case GET_QUERY_CRITERIA:
                     if (mDataListView.isRefreshing())
                         mDataListView.onRefreshComplete();
-                    analysisCondition(msg);
+                    String result = msg.getData().getString("result");
+                    analysisCondition(result);
                     getSchemeData();
                     break;
                 case GET_DATA_RESULT:
@@ -579,10 +580,9 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
         }
     }
 
-    private void analysisCondition(Message msg) {
-        String result = msg.getData().getString("result");
+    private void analysisCondition(String result) {
         if (result != null) {
-            LogUtil.prinlnLongMsg("querycriteria", msg.getData().getString("result"));
+            LogUtil.prinlnLongMsg("querycriteria", result);
             try {
                 JSONObject resultObject = new JSONObject(result);
                 JSONArray dataArray = resultObject.optJSONArray("data");

+ 87 - 48
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsActivity.java

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ListAdapter;
@@ -11,6 +12,8 @@ import android.widget.ListView;
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.ReportStatisticsMenuListAdapter;
@@ -33,7 +36,7 @@ import java.util.Map;
  */
 public class ReportStatisticsActivity extends BaseActivity {
     private final int GET_MENU_DATA = 0x16;
-    private ListView mMenuListView;
+    private PullToRefreshListView mMenuListView;
     private List<GridMenuReportStatisticsBean> mGridMenuReportStatisticsBeans;
     private ReportStatisticsMenuListAdapter mReportStatisticsMenuListAdapter;
 
@@ -43,16 +46,45 @@ public class ReportStatisticsActivity extends BaseActivity {
         setContentView(R.layout.activity_data_inquiry);
         getSupportActionBar().setTitle(R.string.select_query_service);
 
-        mMenuListView = (ListView) findViewById(R.id.data_inquiry_menu_lv);
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
         mGridMenuReportStatisticsBeans = new ArrayList<>();
         mReportStatisticsMenuListAdapter = new ReportStatisticsMenuListAdapter(this, mGridMenuReportStatisticsBeans);
         mMenuListView.setAdapter(mReportStatisticsMenuListAdapter);
 
-        if (!CommonUtil.isNetWorkConnected(this)) {
-            ToastMessage(getString(R.string.networks_out));
+        String reportQueryMenuCache = CommonUtil.getSharedPreferences(this, com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE);
+        if (TextUtils.isEmpty(reportQueryMenuCache)) {
+            if (!CommonUtil.isNetWorkConnected(this)) {
+                ToastMessage(getString(R.string.networks_out));
+            } else {
+                getMenuData();
+            }
         } else {
-            getMenuData();
+            analysisMenuData(reportQueryMenuCache);
         }
+
+        mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (!CommonUtil.isNetWorkConnected(ReportStatisticsActivity.this)) {
+                    ToastMessage(getString(R.string.networks_out));
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mMenuListView.onRefreshComplete();
+                            }
+                        }, 500);
+                } else {
+                    getMenuData();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+
+            }
+        });
+
     }
 
     private void getMenuData() {
@@ -72,49 +104,10 @@ public class ReportStatisticsActivity extends BaseActivity {
                 case GET_MENU_DATA:
                     progressDialog.dismiss();
                     String result = msg.getData().getString("result");
-                    if (result != null) {
-                        LogUtil.prinlnLongMsg("menudata", result);
-                        try {
-                            JSONObject resultObject = new JSONObject(result);
-                            JSONArray dataArray = resultObject.optJSONArray("data");
-                            if (dataArray != null) {
-                                for (int i = 0; i < dataArray.length(); i++) {
-                                    JSONObject dataObject = dataArray.optJSONObject(i);
-                                    if (dataObject != null) {
-                                        GridMenuReportStatisticsBean gridMenuReportStatisticsBean
-                                                = new GridMenuReportStatisticsBean();
-                                        String modelName = optStringNotNull(dataObject, "modelName");
-                                        gridMenuReportStatisticsBean.setModelName(modelName);
-                                        JSONArray listArray = dataObject.optJSONArray("list");
-                                        List<GridMenuReportStatisticsBean.ListBean> listBeans = new ArrayList<>();
-                                        if (listArray != null) {
-                                            for (int j = 0; j < listArray.length(); j++) {
-                                                JSONObject listObject = listArray.optJSONObject(j);
-                                                if (listObject != null) {
-                                                    GridMenuReportStatisticsBean.ListBean listBean = new GridMenuReportStatisticsBean.ListBean();
-                                                    String caller = optStringNotNull(listObject, "caller");
-                                                    String title = optStringNotNull(listObject, "title");
-                                                    String reportName = optStringNotNull(listObject, "reportName");
-
-                                                    listBean.setCaller(caller);
-                                                    listBean.setReportName(reportName);
-                                                    listBean.setTitle(title);
-
-                                                    listBeans.add(listBean);
-                                                }
-                                            }
-                                            gridMenuReportStatisticsBean.setList(listBeans);
-                                        }
-                                        mGridMenuReportStatisticsBeans.add(gridMenuReportStatisticsBean);
-                                    }
-                                }
-                                mReportStatisticsMenuListAdapter.notifyDataSetChanged();
-                                //setListViewHeightBasedOnChildren(mMenuListView);
-                            }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
-                        }
-                    }
+                    if (result != null)
+                        CommonUtil.setSharedPreferences(ReportStatisticsActivity.this, com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE,
+                                result);
+                    analysisMenuData(result);
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
@@ -124,6 +117,52 @@ public class ReportStatisticsActivity extends BaseActivity {
         }
     };
 
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            LogUtil.prinlnLongMsg("menudata", result);
+            try {
+                JSONObject resultObject = new JSONObject(result);
+                JSONArray dataArray = resultObject.optJSONArray("data");
+                if (dataArray != null) {
+                    for (int i = 0; i < dataArray.length(); i++) {
+                        JSONObject dataObject = dataArray.optJSONObject(i);
+                        if (dataObject != null) {
+                            GridMenuReportStatisticsBean gridMenuReportStatisticsBean
+                                    = new GridMenuReportStatisticsBean();
+                            String modelName = optStringNotNull(dataObject, "modelName");
+                            gridMenuReportStatisticsBean.setModelName(modelName);
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            List<GridMenuReportStatisticsBean.ListBean> listBeans = new ArrayList<>();
+                            if (listArray != null) {
+                                for (int j = 0; j < listArray.length(); j++) {
+                                    JSONObject listObject = listArray.optJSONObject(j);
+                                    if (listObject != null) {
+                                        GridMenuReportStatisticsBean.ListBean listBean = new GridMenuReportStatisticsBean.ListBean();
+                                        String caller = optStringNotNull(listObject, "caller");
+                                        String title = optStringNotNull(listObject, "title");
+                                        String reportName = optStringNotNull(listObject, "reportName");
+
+                                        listBean.setCaller(caller);
+                                        listBean.setReportName(reportName);
+                                        listBean.setTitle(title);
+
+                                        listBeans.add(listBean);
+                                    }
+                                }
+                                gridMenuReportStatisticsBean.setList(listBeans);
+                            }
+                            mGridMenuReportStatisticsBeans.add(gridMenuReportStatisticsBean);
+                        }
+                    }
+                    mReportStatisticsMenuListAdapter.notifyDataSetChanged();
+                    //setListViewHeightBasedOnChildren(mMenuListView);
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     public String optStringNotNull(JSONObject json, String key) {
         if (json.isNull(key)) {
             return "";

+ 1 - 1
WeiChat/src/main/res/layout/activity_data_inquiry.xml

@@ -6,7 +6,7 @@
               android:background="@color/bg_underlying"
               android:orientation="vertical">
 
-    <ListView
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/data_inquiry_menu_lv"
         android:layout_width="match_parent"
         android:layout_height="match_parent"