|
|
@@ -5,7 +5,6 @@ import android.content.DialogInterface;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
-import android.util.Log;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
@@ -27,6 +26,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.Constants;
|
|
|
+import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
import com.xzjmyk.pm.activity.view.MyListView;
|
|
|
|
|
|
@@ -48,10 +48,10 @@ public class SubscriptionActivity extends BaseActivity {
|
|
|
private SubscriptionAdapter adapter;
|
|
|
private SubscriptionActivity activity = this;
|
|
|
private ArrayList<SortSubsrciprion> sortSubsrciprions;
|
|
|
- private int date = -1;
|
|
|
private final long daylong = 24 * 60 * 60 * 1000;//一天的毫秒数
|
|
|
private long newlong; //当前指定位置的毫秒数
|
|
|
- private boolean isRef = false;
|
|
|
+ private boolean isRef = true;
|
|
|
+ private long oldTime = 0;
|
|
|
private int[] srcs = {
|
|
|
R.drawable.list_01, R.drawable.list_02, R.drawable.list_03
|
|
|
};
|
|
|
@@ -75,131 +75,195 @@ public class SubscriptionActivity extends BaseActivity {
|
|
|
//错误信息
|
|
|
if (listView != null)
|
|
|
listView.onRefreshComplete();
|
|
|
+ } else if (msg.what == RESULT_OK) {
|
|
|
+ if (adapter == null) {
|
|
|
+ adapter = new SubscriptionAdapter();
|
|
|
+ listView.setAdapter(adapter);
|
|
|
+ } else {
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ listView.onRefreshComplete();
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
String mLoginUserId;
|
|
|
+ private String emCode;
|
|
|
|
|
|
@Override//设置右划退出
|
|
|
public void setTouch(boolean b) {
|
|
|
super.setTouch(false);
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_subscription);
|
|
|
getSupportActionBar().setTitle("订阅号");
|
|
|
- mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
- baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
|
|
|
+ initView();
|
|
|
+ init();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
listView = (PullToRefreshListView) findViewById(R.id.listview);
|
|
|
listView.setMode(PullToRefreshBase.Mode.BOTH);
|
|
|
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
|
|
|
@Override
|
|
|
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
|
|
|
isRef = true;
|
|
|
- init();
|
|
|
+ //刷新时候优先获取网络
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ newlong = calendar.getTimeInMillis();
|
|
|
+ loadNetData(newlong);//获取当天的网络数据
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
|
|
|
- //TODo 加载前一天的数据
|
|
|
- newlong -= daylong;
|
|
|
- date = TimeUtils.int_long_2_str(newlong);
|
|
|
isRef = false;
|
|
|
- initData(date);
|
|
|
+ //优先获取数据库
|
|
|
+ if (oldTime == 0) {
|
|
|
+ newlong -= daylong;
|
|
|
+ } else {
|
|
|
+ newlong = oldTime - daylong;
|
|
|
+ }
|
|
|
+ oldTime = newlong;
|
|
|
+ SubscriptionMessages = SubscriptionDao.getInstance().findByDate(newlong, daylong + newlong, emCode);//获取数据库
|
|
|
+ if (SubscriptionMessages == null || SubscriptionMessages.size() <= 0) {//数据库中没有数据
|
|
|
+ loadNetData(newlong);
|
|
|
+ } else {//数据库中有数据
|
|
|
+ loadMore();
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
- init();
|
|
|
}
|
|
|
|
|
|
private void init() {
|
|
|
- newlong = System.currentTimeMillis();
|
|
|
- date = TimeUtils.int_long_2_str(newlong);
|
|
|
- initData(date);
|
|
|
+ mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
|
|
|
+ baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
|
|
|
+ emCode = CommonUtil.getSharedPreferences(mContext, "erp_username");
|
|
|
+ //第一次进来获取数据库
|
|
|
+ //获取当天时间
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ newlong = calendar.getTimeInMillis();
|
|
|
+ SubscriptionMessages = SubscriptionDao.getInstance().findByDate(newlong, newlong + daylong, emCode);
|
|
|
+
|
|
|
+ if (SubscriptionMessages != null && SubscriptionMessages.size() > 0) {//当天数据库有数据
|
|
|
+ loadMore();
|
|
|
+ } else {//当天数据库没有数据
|
|
|
+ loadNetData(newlong);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- private void cancelData() {
|
|
|
- if (sortSubsrciprions != null) {
|
|
|
- sortSubsrciprions.clear();
|
|
|
- }
|
|
|
-// if (SubscriptionMessages != null) {
|
|
|
-// SubscriptionMessages.clear();
|
|
|
-// }
|
|
|
- if (adapter != null)
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
+ private void refresh() {
|
|
|
+ ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ SortSubsrciprion sortSubsrciprion = null;
|
|
|
+ for (int i = 0; i < SubscriptionMessages.size(); i++) {
|
|
|
+ sortSubsrciprion = new SortSubsrciprion();
|
|
|
+ sortSubsrciprion.num_id = SubscriptionMessages.get(i).getNUM_ID_();
|
|
|
+ sortSubsrciprion.tiem = Long.parseLong(SubscriptionMessages.get(i).getCREATEDATE_());
|
|
|
+ sortSubsrciprion.beans = new ArrayList<>();
|
|
|
+ sortSubsrciprion.beans.add(SubscriptionMessages.get(i));
|
|
|
+ if (sortSubsrciprions.size() > 0) {
|
|
|
+ for (int j = 0; j < sortSubsrciprions.size(); j++) {
|
|
|
+ if (sortSubsrciprion.num_id == sortSubsrciprions.get(j).num_id) {//如果相同
|
|
|
+ sortSubsrciprions.get(j).beans.add(SubscriptionMessages.get(i));
|
|
|
+ break;
|
|
|
+ } else if (j == (sortSubsrciprions.size() - 1)) {//如果到最后一个都不相同
|
|
|
+ sortSubsrciprions.add(sortSubsrciprion);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sortSubsrciprions.add(sortSubsrciprion);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ handler.sendEmptyMessage(RESULT_OK);
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- int pager = 0;
|
|
|
+ private void loadMore() {
|
|
|
+ ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ if (sortSubsrciprions == null)
|
|
|
+ sortSubsrciprions = new ArrayList<>();
|
|
|
+ ArrayList<SortSubsrciprion> chche = new ArrayList<>();
|
|
|
+ SortSubsrciprion sortSubsrciprion = null;
|
|
|
+ for (int i = 0; i < SubscriptionMessages.size(); i++) {
|
|
|
+ sortSubsrciprion = new SortSubsrciprion();
|
|
|
+ sortSubsrciprion.num_id = SubscriptionMessages.get(i).getNUM_ID_();
|
|
|
+ sortSubsrciprion.tiem = Long.parseLong(SubscriptionMessages.get(i).getCREATEDATE_());
|
|
|
+ sortSubsrciprion.beans = new ArrayList<>();
|
|
|
+ sortSubsrciprion.beans.add(SubscriptionMessages.get(i));
|
|
|
+ if (chche.size() > 0) {
|
|
|
+ for (int j = 0; j < chche.size(); j++) {
|
|
|
+ if (sortSubsrciprion.num_id == chche.get(j).num_id) {//如果相同
|
|
|
+ chche.get(j).beans.add(SubscriptionMessages.get(i));
|
|
|
+ break;
|
|
|
+ } else if (j == (chche.size() - 1)) {//如果到最后一个都不相同
|
|
|
+ chche.add(sortSubsrciprion);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ chche.add(sortSubsrciprion);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sortSubsrciprions.addAll(chche);
|
|
|
+ handler.sendEmptyMessage(RESULT_OK);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- private void setData() {
|
|
|
+ private void setData() {//网络获取数据时候
|
|
|
if (SubscriptionMessages == null || SubscriptionMessages.size() <= 0) {
|
|
|
ToastMessage("没有更多内容");
|
|
|
listView.onRefreshComplete();
|
|
|
View emptyView = LayoutInflater.from(mContext).inflate(R.layout.layout_list_empty_view, null);
|
|
|
listView.setEmptyView(emptyView);
|
|
|
+ if (adapter != null)
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
return;
|
|
|
}
|
|
|
- if (isRef) cancelData();
|
|
|
- if (sortSubsrciprions == null)
|
|
|
- sortSubsrciprions = new ArrayList<>();
|
|
|
|
|
|
- ArrayList<SortSubsrciprion> chche = new ArrayList<>();
|
|
|
-
|
|
|
-// clearDataToDB(date);
|
|
|
-// saveDataToDB(SubscriptionMessages);
|
|
|
-
|
|
|
- SortSubsrciprion sortSubsrciprion = null;
|
|
|
- for (int i = 0; i < SubscriptionMessages.size(); i++) {
|
|
|
- sortSubsrciprion = new SortSubsrciprion();
|
|
|
- sortSubsrciprion.num_id = SubscriptionMessages.get(i).getNUM_ID_();
|
|
|
- sortSubsrciprion.tiem = Long.parseLong(SubscriptionMessages.get(i).getCREATEDATE_());
|
|
|
- sortSubsrciprion.beans = new ArrayList<>();
|
|
|
- sortSubsrciprion.beans.add(SubscriptionMessages.get(i));
|
|
|
- if (chche.size() > 0) {
|
|
|
- for (int j = 0; j < chche.size(); j++) {
|
|
|
- if (sortSubsrciprion.num_id == chche.get(j).num_id) {//如果相同
|
|
|
- chche.get(j).beans.add(SubscriptionMessages.get(i));
|
|
|
- break;
|
|
|
- } else if (j == (chche.size() - 1)) {//如果到最后一个都不相同
|
|
|
- chche.add(sortSubsrciprion);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- chche.add(sortSubsrciprion);
|
|
|
- }
|
|
|
- }
|
|
|
- sortSubsrciprions.addAll(chche);
|
|
|
-
|
|
|
- if (adapter == null) {
|
|
|
- adapter = new SubscriptionAdapter();
|
|
|
- listView.setAdapter(adapter);
|
|
|
- } else {
|
|
|
- Log.i("gongpenging", "sortSubsrciprions=" + sortSubsrciprions.size());
|
|
|
- adapter.notifyDataSetChanged();
|
|
|
+ //保存数据库
|
|
|
+ clearDataToDB(newlong, newlong + daylong);
|
|
|
+ saveDataToDB(SubscriptionMessages);
|
|
|
+ if (sortSubsrciprions == null) {
|
|
|
+ sortSubsrciprions = new ArrayList<>();
|
|
|
}
|
|
|
- listView.onRefreshComplete();
|
|
|
- }
|
|
|
+ if (isRef) refresh();
|
|
|
+ else loadMore();
|
|
|
|
|
|
- private void clearDataToDB(long date) {
|
|
|
- //Todo chear the db
|
|
|
+ }
|
|
|
|
|
|
+ private void clearDataToDB(long newlong, long date) {
|
|
|
+ long k = SubscriptionDao.getInstance().deleteMessage(newlong, date, emCode);
|
|
|
}
|
|
|
|
|
|
private void saveDataToDB(ArrayList<SubscriptionMessage> subscriptionMessages) {
|
|
|
- // add message to db
|
|
|
- long k = SubscriptionDao.getInstance().addMessage(subscriptionMessages);
|
|
|
+ long k = SubscriptionDao.getInstance().addMessage(subscriptionMessages, emCode);
|
|
|
}
|
|
|
|
|
|
- private ArrayList<SubscriptionMessage> findDataFromDB() {
|
|
|
- return SubscriptionDao.getInstance().findAll();
|
|
|
- }
|
|
|
|
|
|
private void popWindou(final int position, final int i) {
|
|
|
new AlertDialog.Builder(mContext).setTitle(R.string.app_name).setMessage(R.string.delete_item).setNegativeButton(R.string.cancel, null)
|
|
|
.setPositiveButton(R.string.sure, new DialogInterface.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
+ int id = sortSubsrciprions.get(position).beans.get(i).getID_();
|
|
|
+ SubscriptionDao.getInstance().deleteMessageById(id, emCode);
|
|
|
sortSubsrciprions.get(position).beans.remove(i);
|
|
|
if (!(sortSubsrciprions.get(position).beans.size() > 0)) {
|
|
|
sortSubsrciprions.remove(position);
|
|
|
@@ -209,12 +273,12 @@ public class SubscriptionActivity extends BaseActivity {
|
|
|
}).create().show();
|
|
|
}
|
|
|
|
|
|
- public void initData(int date) {
|
|
|
+ public void loadNetData(long date) {
|
|
|
+ //获取网络数据
|
|
|
String url = baseUrl + "common/desktop/subs/getSubs.action";
|
|
|
final Map<String, Object> param = new HashMap<>();
|
|
|
param.put("count", 100);
|
|
|
- if (date == -1) param.put("condition", "where 1=1");
|
|
|
- else param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + date + "'");
|
|
|
+ param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + TimeUtils.int_long_2_str(date) + "'");
|
|
|
param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
|
|
|
LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
|
|
|
@@ -331,7 +395,6 @@ public class SubscriptionActivity extends BaseActivity {
|
|
|
} else {
|
|
|
isRe = "已读";
|
|
|
isReColor = R.color.text_color;
|
|
|
-
|
|
|
}
|
|
|
holder.big_isre_tv.setText(isRe);
|
|
|
holder.big_isre_tv.setTextColor(getResources().getColor(isReColor));
|
|
|
@@ -339,7 +402,6 @@ public class SubscriptionActivity extends BaseActivity {
|
|
|
Calendar c = Calendar.getInstance();
|
|
|
c.setTimeInMillis(Long.parseLong(beans.get(i).getCREATEDATE_()));
|
|
|
int mWay = c.get(Calendar.DAY_OF_WEEK);
|
|
|
- Log.i("gonss", "mWay=" + mWay);
|
|
|
holder.big_img.setImageDrawable(getResources().getDrawable(srcsBig[mWay - 1]));
|
|
|
} else {
|
|
|
holder.ll.setVisibility(View.VISIBLE);
|