|
|
@@ -4,6 +4,7 @@ import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
+import android.support.v7.app.AlertDialog;
|
|
|
import android.text.Html;
|
|
|
import android.text.TextUtils;
|
|
|
import android.util.Log;
|
|
|
@@ -78,6 +79,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
private Boolean item_readed;
|
|
|
private TextView msg_markread_tv;
|
|
|
private int aftermarktime_news = 0;
|
|
|
+ private TextView msg_detail_tv;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
@@ -101,10 +103,10 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
JSONArray msgsArray = resultJsonObject.getJSONArray("listdata");
|
|
|
if (!ListUtils.isEmpty(msgsArray)) {
|
|
|
handleMsgsArray(msgsArray);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
loadLocalData(msg_type);
|
|
|
}
|
|
|
- }catch (Exception e) {
|
|
|
+ } catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
break;
|
|
|
@@ -122,6 +124,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
/**
|
|
|
* 处理获取网络获取到的数据,先更新本地数据库,再加载本地数据库
|
|
|
+ *
|
|
|
* @param msgsArray
|
|
|
*/
|
|
|
private void handleMsgsArray(JSONArray msgsArray) {
|
|
|
@@ -168,7 +171,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
em_code = intent.getStringExtra("emcode") == null ? CommonUtil.getSharedPreferences(ct, "erp_username") : intent.getStringExtra("emcode");
|
|
|
mark_time = intent.getStringExtra("readTime");
|
|
|
|
|
|
- Log.i("mark_time",mark_time + "");
|
|
|
+ Log.i("mark_time", mark_time + "");
|
|
|
if (!StringUtils.isEmpty(msg_title)) {
|
|
|
getSupportActionBar().setTitle(msg_title);
|
|
|
}
|
|
|
@@ -176,7 +179,8 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
loadNet();
|
|
|
} else {
|
|
|
loadLocalData(msg_type); //无网下直接获取数据库显示老数据
|
|
|
- ToastMessage("您已经进入没有网络的异次元");
|
|
|
+ ToastMessage(getResources().getString(R.string.networks_out));
|
|
|
+ progressDialog.dismiss();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -196,14 +200,15 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
/**
|
|
|
* 加载本地数据
|
|
|
+ *
|
|
|
* @param msg_type
|
|
|
*/
|
|
|
private void loadLocalData(String msg_type) {
|
|
|
msgModel = MessageDao.getInstance().queryByType(msg_type);
|
|
|
if (!ListUtils.isEmpty(msgModel)) { //当数据库中有数据时,
|
|
|
- if (!TextUtils.isEmpty(mark_time)){
|
|
|
- doSecondMarkSave(msgModel,mark_time); // 当第一层 有标为已读标志时,进行第二次更新本地及新来消息否读状态
|
|
|
- }else {
|
|
|
+ if (!TextUtils.isEmpty(mark_time)) {
|
|
|
+ doSecondMarkSave(msgModel, mark_time); // 当第一层 有标为已读标志时,进行第二次更新本地及新来消息否读状态
|
|
|
+ } else {
|
|
|
doDataShow(msgModel); // 当第一层 没有标为已读标志时,直接显示第一次更新后的本地数据库
|
|
|
}
|
|
|
} else {
|
|
|
@@ -215,17 +220,18 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
/**
|
|
|
* 将本地最后要显示的数据加载到适配器中,以及更多消息显示逻辑、点击事件
|
|
|
+ *
|
|
|
* @param msgModel
|
|
|
*/
|
|
|
private void doDataShow(List<MessageModel> msgModel) {
|
|
|
jump_position.clear();
|
|
|
for (int i = 0; i < msgModel.size(); i++) {
|
|
|
- if (!msgModel.get(i).isReaded()){
|
|
|
+ if (!msgModel.get(i).isReaded()) {
|
|
|
unread_nums++; // 统计未读消息条数
|
|
|
jump_position.add(i);
|
|
|
}
|
|
|
- if (i == msgModel.size() -1){
|
|
|
- if (unread_nums > 10 && msgModel.size() >= unread_nums){
|
|
|
+ if (i == msgModel.size() - 1) {
|
|
|
+ if (unread_nums > 10 && msgModel.size() >= unread_nums) {
|
|
|
more_msg_tv.setVisibility(View.VISIBLE);
|
|
|
more_msg_tv.setText(unread_nums + "条新消息");
|
|
|
more_msg_tv.setOnClickListener(new View.OnClickListener() {
|
|
|
@@ -237,7 +243,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
ToastMessage(jump_position.get(0) + "");
|
|
|
}
|
|
|
});
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
more_msg_tv.setVisibility(View.GONE);
|
|
|
}
|
|
|
}
|
|
|
@@ -245,12 +251,12 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
msgAdapter.setMsgModel(msgModel);
|
|
|
msgAdapter.notifyDataSetChanged();
|
|
|
- myplv.getRefreshableView().setSelection(msgModel.size() -1);
|
|
|
+ myplv.getRefreshableView().setSelection(msgModel.size() - 1);
|
|
|
}
|
|
|
|
|
|
private void doSecondMarkSave(List<MessageModel> msgModel, String mark_time) {
|
|
|
for (int i = 0; i < msgModel.size(); i++) {
|
|
|
- if (mark_time.compareTo(msgModel.get(i).getTime()) >= 0){
|
|
|
+ if (mark_time.compareTo(msgModel.get(i).getTime()) >= 0) {
|
|
|
msgModel.get(i).setReaded(true);
|
|
|
}
|
|
|
}
|
|
|
@@ -262,9 +268,15 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
myplv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
|
|
|
@Override
|
|
|
public void onPullDownToRefresh(PullToRefreshBase refreshView) { //TODO 下拉刷新
|
|
|
+ if (MyApplication.getInstance().isNetworkActive()) {
|
|
|
+ loadNet();
|
|
|
+ } else {
|
|
|
+ ToastMessage(getResources().getString(R.string.networks_out));
|
|
|
+ }
|
|
|
new Handler().postDelayed(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
+ ToastMessage("刷新完毕");
|
|
|
myplv.onRefreshComplete();
|
|
|
}
|
|
|
}, 3000);
|
|
|
@@ -275,6 +287,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
new Handler().postDelayed(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
+ ToastMessage("加载完成");
|
|
|
myplv.onRefreshComplete();
|
|
|
}
|
|
|
}, 3000);
|
|
|
@@ -321,18 +334,19 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
|
|
|
private void doClickEvent(int mPosition, int msg_id) {
|
|
|
- baseUrl = CommonUtil.getSharedPreferences(mContext, "erp_baseurl");
|
|
|
- String url = baseUrl + "mobile/message/getDetail.action";
|
|
|
- Intent intent_web = new Intent(mContext, WebViewCommActivity.class);
|
|
|
- intent_web.putExtra("url", url);
|
|
|
- intent_web.putExtra("id", msg_id);
|
|
|
- intent_web.putExtra("title", msg_title);
|
|
|
- startActivityForResult(intent_web, MSG_MARKED_READED);
|
|
|
-
|
|
|
- msgModel.get(mPosition).setReaded(true);
|
|
|
- MessageDao.getInstance().upStatus(msg_id, true); //点击保存本地为已读状态操作
|
|
|
- msgAdapter.notifyDataSetChanged();
|
|
|
-
|
|
|
+ if ("note".equals(msg_type) || "meeting".equals(msg_type)) {
|
|
|
+ baseUrl = CommonUtil.getSharedPreferences(mContext, "erp_baseurl");
|
|
|
+ String url = baseUrl + "mobile/message/getDetail.action";
|
|
|
+ Intent intent_web = new Intent(mContext, WebViewCommActivity.class);
|
|
|
+ intent_web.putExtra("url", url);
|
|
|
+ intent_web.putExtra("id", msg_id);
|
|
|
+ intent_web.putExtra("title", msg_title);
|
|
|
+ startActivityForResult(intent_web, MSG_MARKED_READED);
|
|
|
+ } else {
|
|
|
+ msgModel.get(mPosition).setReaded(true);
|
|
|
+ MessageDao.getInstance().upStatus(msg_id, true);//点击保存本地为已读状态操作
|
|
|
+ msgAdapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void showPopupWindow() {
|
|
|
@@ -342,19 +356,22 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
DisplayUtil.backgroundAlpha(this, 0.4f);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void showMarkReadPW() {
|
|
|
View viewContext = LayoutInflater.from(ct).inflate(R.layout.msgs_long_click, null);
|
|
|
viewContext.findViewById(R.id.msg_delete_tv).setOnClickListener(this);
|
|
|
|
|
|
+ msg_detail_tv = (TextView) viewContext.findViewById(R.id.msg_detail_tv);
|
|
|
+ msg_detail_tv.setOnClickListener(this);
|
|
|
msg_markread_tv = (TextView) viewContext.findViewById(R.id.msg_markread_tv);
|
|
|
msg_markread_tv.setOnClickListener(this);
|
|
|
msg_markread_tv.setText("");
|
|
|
- if (msgModel.get(mPosition).isReaded()){
|
|
|
+ if (msgModel.get(mPosition).isReaded()) {
|
|
|
msg_markread_tv.setText("标为未读");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
msg_markread_tv.setText("标为已读");
|
|
|
}
|
|
|
- Log.i("Mark_Status",(msgModel.get(mPosition).isReaded()) + "");
|
|
|
+ Log.i("Mark_Status", (msgModel.get(mPosition).isReaded()) + "");
|
|
|
setWindow = new PopupWindow(viewContext,
|
|
|
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
|
LinearLayout.LayoutParams.WRAP_CONTENT, true);
|
|
|
@@ -363,11 +380,9 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
@Override
|
|
|
public void onDismiss() {
|
|
|
- closePopupWindow();
|
|
|
+ closePopupWindow();
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private void closePopupWindow() {
|
|
|
@@ -378,20 +393,34 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
+ closePopupWindow();
|
|
|
switch (v.getId()) {
|
|
|
case R.id.msg_delete_tv:
|
|
|
- doDeleteMsg(); //TODO 删除操作
|
|
|
- closePopupWindow();
|
|
|
+ doDeleteMsg(); // 删除操作
|
|
|
break;
|
|
|
case R.id.msg_markread_tv:
|
|
|
- if (item_readed){
|
|
|
+ if (item_readed) {
|
|
|
doMarkUnReadMsg();
|
|
|
- }else {
|
|
|
- doMarkReadedMsg(); // TODO 标为已读
|
|
|
+ } else {
|
|
|
+ doMarkReadedMsg(); // 标为已读
|
|
|
}
|
|
|
- closePopupWindow();
|
|
|
+ break;
|
|
|
+ case R.id.msg_detail_tv:
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ new AlertDialog.Builder(mContext)
|
|
|
+ .setTitle(msg_title)
|
|
|
+ .setMessage(Html.fromHtml(msgModel.get(mPosition).getSubTitle()))
|
|
|
+ .setPositiveButton("确定", null).show();
|
|
|
+
|
|
|
+ doMarkReadedMsg(); // 标为已读
|
|
|
+ }
|
|
|
+ }, 500);
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void doMarkUnReadMsg() {
|
|
|
@@ -400,12 +429,12 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
msgAdapter.notifyDataSetChanged();
|
|
|
|
|
|
// MessageDao.getInstance().upStatusByType(msg_type,false);
|
|
|
- MessageDao.getInstance().unReadForTwoFloor(msg_id,msg_type,false);
|
|
|
+ MessageDao.getInstance().unReadForTwoFloor(msg_id, msg_type, false);
|
|
|
}
|
|
|
|
|
|
private void doMarkReadedMsg() {
|
|
|
msgModel.get(mPosition).setReaded(true);
|
|
|
- MessageDao.getInstance().upStatus(msg_id,true); //标为已读保存本地
|
|
|
+ MessageDao.getInstance().upStatus(msg_id, true); //标为已读保存本地
|
|
|
msgAdapter.notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
@@ -421,7 +450,8 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
try {
|
|
|
if (requestCode == MSG_MARKED_READED && resultCode == 22 && data != null) {
|
|
|
- MessageDao.getInstance().upStatus(msg_id, true);
|
|
|
+ msgModel.get(mPosition).setReaded(true);
|
|
|
+ MessageDao.getInstance().upStatus(msg_id, true);//点击保存本地为已读状态操作
|
|
|
msgAdapter.notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
@@ -438,6 +468,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
//TODO 列表适配器
|
|
|
public class NewMsgAdapter extends BaseAdapter {
|
|
|
private List<MessageModel> msgModel;
|
|
|
+
|
|
|
public void setMsgModel(List<MessageModel> msgModel) {
|
|
|
this.msgModel = msgModel;
|
|
|
}
|
|
|
@@ -479,7 +510,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
imageurl = R.drawable.home_image_03_u;
|
|
|
break;
|
|
|
case "common": // 普通知会
|
|
|
- imageurl = R.drawable.shenpizhihui;
|
|
|
+ imageurl = R.drawable.putongzhihui;
|
|
|
break;
|
|
|
case "b2b": // b2b提醒
|
|
|
imageurl = R.drawable.b2btixing;
|
|
|
@@ -500,19 +531,19 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
imageurl = R.drawable.jihetixing;
|
|
|
break;
|
|
|
case "system": // 知会消息
|
|
|
- imageurl = R.drawable.shenpizhihui;
|
|
|
+ imageurl = R.drawable.zhihuixiaoxi;
|
|
|
break;
|
|
|
case "task": // 任务提醒
|
|
|
imageurl = R.drawable.home_image_02_u;
|
|
|
break;
|
|
|
default:
|
|
|
- imageurl = R.drawable.shenpizhihui;
|
|
|
+ imageurl = R.drawable.gongzuotixing;
|
|
|
}
|
|
|
|
|
|
viewHolder.msgs_img.setImageResource(imageurl);
|
|
|
viewHolder.msgs_title_tv.setText(msgModel.get(position).getTitle());
|
|
|
- if (!TextUtils.isEmpty(msgModel.get(position).getTime())){
|
|
|
- viewHolder.msgs_time_tv.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(msgModel.get(position).getTime()),"yyyy-MM-dd HH:mm"));
|
|
|
+ if (!TextUtils.isEmpty(msgModel.get(position).getTime())) {
|
|
|
+ viewHolder.msgs_time_tv.setText(TimeUtils.long2str(TimeUtils.f_str_2_long(msgModel.get(position).getTime()), "yyyy-MM-dd HH:mm"));
|
|
|
}
|
|
|
viewHolder.msgs_content_tv.setText(Html.fromHtml(msgModel.get(position).getSubTitle()));
|
|
|
if (msgModel.get(position).isReaded()) {
|
|
|
@@ -520,7 +551,7 @@ public class MsgsSecondCommonActivity extends BaseActivity implements View.OnCli
|
|
|
} else {
|
|
|
viewHolder.msgs_nums_tv.setVisibility(View.VISIBLE);
|
|
|
}
|
|
|
- if (position == msgModel.size() -1){
|
|
|
+ if (position == msgModel.size() - 1) {
|
|
|
progressDialog.dismiss(); //数据加载最后一个时才取消圆圈动画
|
|
|
}
|
|
|
return convertView;
|