Arisono il y a 9 ans
Parent
commit
3c01bd67f5
21 fichiers modifiés avec 1078 ajouts et 748 suppressions
  1. 7 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  2. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java
  3. 54 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/PhoneSelectActivity.java
  4. 2 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendShuoshuoActivity.java
  5. 35 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NewsTwoActivity.java
  6. 76 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticeMenuActivity.java
  7. 42 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticesActivity.java
  8. 241 218
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ScheduleActivity.java
  9. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java
  10. 67 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  11. 112 67
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java
  12. 427 420
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/TimeUtils.java
  13. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue1.jpg
  14. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue2.jpg
  15. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue3.jpg
  16. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue4.jpg
  17. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue5.jpg
  18. BIN
      WeiChat/src/main/res/drawable-xhdpi/dingyue6.jpg
  19. 6 4
      WeiChat/src/main/res/layout/activity_phone_select.xml
  20. 5 4
      WeiChat/src/main/res/layout/bigimage_subscription.xml
  21. 2 1
      WeiChat/src/main/res/values/gpm_string.xml

+ 7 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -471,6 +471,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             }
         });
     }
+
     public void updateVersion() {
         BDAutoUpdateSDK.uiUpdateAction(this, new UICheckUpdateCallback() {
             @Override
@@ -635,7 +636,6 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             Intent intent = new Intent(Intent.ACTION_MAIN);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             intent.addCategory(Intent.CATEGORY_HOME);
-
             startActivity(intent);
             return true;
         }
@@ -694,7 +694,12 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
     private void initMsgUnReadTips(String userId) {// 初始化未读条数
         // 消息未读条数累加
         mMsgUnReadNum = FriendDao.getInstance().getMsgUnReadNumTotal(userId);
-        updateMsgUnReadTv();
+        mUnReadHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                updateMsgUnReadTv();
+            }
+        });
     }
 
     private void updateMsgUnReadTv() {

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -469,6 +469,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                     mMessages.clear();
                     mMessages.addAll(result.getData());
                     mAdapter.notifyDataSetInvalidated();
+
                 }
                 requestData(true);
             }

+ 54 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/PhoneSelectActivity.java

@@ -1,15 +1,69 @@
 package com.xzjmyk.pm.activity.ui.circle;
 
+import android.net.Uri;
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
 
 import com.xzjmyk.pm.activity.R;
 
+import java.util.ArrayList;
+
 public class PhoneSelectActivity extends AppCompatActivity {
+    private ArrayList<Photo> photos = new ArrayList<>();
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_phone_select);
+        init();
+        initView();
+    }
+
+    private void initView() {
+
+
+    }
+
+    private void init() {
+
+
+    }
+
+
+    class GridAdapter extends BaseAdapter {
+        @Override
+        public int getCount() {
+            return photos.size();
+        }
+
+        @Override
+        public Object getItem(int i) {
+            return photos.get(i);
+        }
+
+        @Override
+        public long getItemId(int i) {
+            return i;
+        }
+
+        @Override
+        public View getView(int i, View view, ViewGroup viewGroup) {
+
+            return null;
+        }
+
+        class VoiewHolder{
+
+
+        }
+    }
+
+    class Photo {
+        public String path;
+        public Uri uri;
+        public String smilPath;
     }
 }

+ 2 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendShuoshuoActivity.java

@@ -82,7 +82,6 @@ public class SendShuoshuoActivity extends BaseActivity {
         mProgressDialog = ProgressDialogUtil.init(this, null, getString(R.string.please_wait));
         initView();
     }
-
     private void initView() {
         if (mType == 0) {
             getSupportActionBar().setTitle(R.string.send_text);
@@ -108,9 +107,9 @@ public class SendShuoshuoActivity extends BaseActivity {
                 int viewType = mAdapter.getItemViewType(position);
 
                 if (viewType == 1) {
-//                    showSelectPictureDialog();//第一个
+                    showSelectPictureDialog();//第一个
                     //TODO 选择图片页面
-                    startActivityForResult(new Intent(SendShuoshuoActivity.this, PhoneSelectActivity.class), 222);
+//                    startActivityForResult(new Intent(SendShuoshuoActivity.this, PhoneSelectActivity.class), 222);
 
                 } else {
                     showPictureActionDialog(position);

+ 35 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NewsTwoActivity.java

@@ -8,6 +8,7 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
@@ -50,7 +51,7 @@ public class NewsTwoActivity extends BaseActivity {
     private CardItemAdapter adapter;
     public EmptyLayout mEmptyLayout;
     private Context ct;
-
+    private int num = 0;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -83,10 +84,36 @@ public class NewsTwoActivity extends BaseActivity {
                 intent.putExtra("id", model.id);
                 startActivity(intent);
                 model.img.setImageResource(R.drawable.notice_img_2);
+                if (model.hasRead == -1) {
+                    num++;
+                }
             }
         });
     }
 
+
+    @Override
+    public void onBackPressed() {
+        sendResult();
+        super.onBackPressed();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            sendResult();
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void sendResult() {
+        Intent intent = new Intent();
+        intent.putExtra(NoticeMenuActivity.NES, num);
+        setResult(RESULT_OK, intent);
+    }
+
     public void initData() {
         String url = Constants.getAppBaseUrl(ct) + "common/desktop/news/getNews.action";
         final Map<String, Object> param = new HashMap<>();
@@ -192,17 +219,22 @@ public class NewsTwoActivity extends BaseActivity {
             model.tv_theme.setText(datas.get(position).getNE_THEME());
             model.tv_author.setText("作者:" + datas.get(position).getNE_RELEASER());
             model.id = datas.get(position).getNE_ID();
-
             if (!ObjectUtils.isEquals(datas.get(position).getSTATUS(), null)) {
                 if (((int) datas.get(position).getSTATUS()) != -1) {
                     model.img.setImageResource(R.drawable.notice_img_1);
+                    model.hasRead = -1;
+
                 } else {
                     if (((int) datas.get(position).getSTATUS()) == -1) {
                         model.img.setImageResource(R.drawable.notice_img_2);
+                        model.hasRead = 1;
+
                     }
                 }
             } else {
                 model.img.setImageResource(R.drawable.notice_img_1);
+                model.hasRead = -1;
+
             }
             return convertView;
         }
@@ -216,7 +248,7 @@ public class NewsTwoActivity extends BaseActivity {
             //			private TextView tv_count;
             private TextView tv_theme;
             private TextView tv_author;
-//			private TextView tv_hasRead;//已读,未读
+            private int hasRead;//已读,未读
         }
 
     }

+ 76 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticeMenuActivity.java

@@ -4,6 +4,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
@@ -19,12 +20,14 @@ import java.util.ArrayList;
 
 public class NoticeMenuActivity extends BaseActivity {
     private ArrayList<Bean> beans;
+    public static final int NEWS_REC = 0x01, GONGGAO_REC = 0x03, NOTICES_REC = 0x02;
     private PullToRefreshSlideListView listView;
     private int GONGGAO_count = 0, NOTICE_count = 0, NES_count = 0;
     public static final String GONGGAO = "GONGGAO", NOTICE = "NOTICE", NES = "NES";
     private int[] src = {
             R.drawable.iconfont_bokexinwen, R.drawable.iconfont_tongzhi, R.drawable.iconfont_gonggao
     };
+    private MAdapter adapter;
 
     @Override
 
@@ -35,6 +38,34 @@ public class NoticeMenuActivity extends BaseActivity {
         initView();
     }
 
+
+    @Override
+    public void onBackPressed() {
+        sendResult();
+        Log.i("gongpengming", "onBackPressed");
+        super.onBackPressed();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            Log.i("gongpengming", "onOptionsItemSelected");
+            sendResult();
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void sendResult() {
+        Intent intent = new Intent();
+        intent.putExtra(NES, beans.get(0).unReNun);
+        intent.putExtra(NOTICE, beans.get(1).unReNun);
+        intent.putExtra(GONGGAO, beans.get(2).unReNun);
+        setResult(RESULT_OK, intent);
+    }
+
+
     private void initView() {
         listView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@@ -43,9 +74,12 @@ public class NoticeMenuActivity extends BaseActivity {
                 distribute((i - 1), itemClick);
             }
         });
-        listView.setAdapter(new MAdapter());
+        adapter = new MAdapter();
+        listView.setAdapter(adapter);
     }
-    private Bean bean = null;//临时的变量
+
+    private Bean bean = null;   //临时的变量
+
     private void init() {
         Intent intent = getIntent();
         GONGGAO_count = intent.getIntExtra(GONGGAO, 0);
@@ -67,8 +101,7 @@ public class NoticeMenuActivity extends BaseActivity {
         switch (i) {
             case 0:
                 if (type == itemClick) {
-                    startActivity(new Intent(NoticeMenuActivity.this, NewsTwoActivity.class).putExtra("type", 0));
-
+                    startActivityForResult(new Intent(NoticeMenuActivity.this, NewsTwoActivity.class).putExtra("type", 0), NEWS_REC);
                 } else if (setData == type) {
                     bean.unReNun = NES_count;
                     if (bean.unReNun > 0) {
@@ -83,7 +116,7 @@ public class NoticeMenuActivity extends BaseActivity {
                 break;
             case 1:
                 if (type == itemClick)
-                    startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 1));
+                    startActivityForResult(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 1), NOTICES_REC);
                 else if (setData == type) {
                     bean.unReNun = NOTICE_count;
                     if (bean.unReNun > 0) {
@@ -97,7 +130,7 @@ public class NoticeMenuActivity extends BaseActivity {
                 break;
             case 2:
                 if (type == itemClick)
-                    startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 2));
+                    startActivityForResult(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 2), GONGGAO_REC);
                 else if (setData == type) {
                     bean.unReNun = GONGGAO_count;
                     if (bean.unReNun > 0) {
@@ -149,6 +182,7 @@ public class NoticeMenuActivity extends BaseActivity {
                 holder.tvSubTitle = (TextView) view.findViewById(R.id.content_tv);
                 holder.tvTitle = (TextView) view.findViewById(R.id.nick_name_tv);
                 holder.tvNum = (TextView) view.findViewById(R.id.num_tv);
+                view.setTag(holder);
             } else {
                 holder = (MViewHolder) view.getTag();
             }
@@ -181,4 +215,40 @@ public class NoticeMenuActivity extends BaseActivity {
         }
     }
 
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch (requestCode) {
+            case NEWS_REC:
+                if (resultCode == RESULT_OK) {
+                    int num = data.getIntExtra(NES, -1);
+                    if (num != -1) {
+                        beans.get(0).unReNun -= num;
+                        adapter.notifyDataSetChanged();
+
+                    }
+                }
+                break;
+            case NOTICES_REC:
+                if (resultCode == RESULT_OK) {
+                    int num = data.getIntExtra(NOTICE, -1);
+                    if (num != -1) {
+                        beans.get(1).unReNun -= num;
+                        adapter.notifyDataSetChanged();
+                    }
+                }
+                break;
+            case GONGGAO_REC:
+                if (resultCode == RESULT_OK) {
+                    int num = data.getIntExtra(GONGGAO, -1);
+                    if (num != -1) {
+                        beans.get(2).unReNun -= num;
+                        adapter.notifyDataSetChanged();
+
+                    }
+                }
+                break;
+
+        }
+    }
 }

+ 42 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticesActivity.java

@@ -6,6 +6,7 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
@@ -48,23 +49,19 @@ public class NoticesActivity extends BaseActivity {
     private CardItemAdapter adapter;
     private int type;
     private Context ct;
+    private int gnum = 0, nnum = 0;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         setContentView(R.layout.act_notice_list);
-        mlist= (PullToRefreshListView) findViewById(R.id.list_notice);
+        mlist = (PullToRefreshListView) findViewById(R.id.list_notice);
         progress_bar = (ProgressBar) findViewById(R.id.progress_bar);
-
         initView();
         initData();
     }
 
     public void initView() {
-
-//        ViewUtils.inject(this);
-
         TAG = "NoticesActivity";
         ct = this;
         getSupportActionBar().setTitle("通知");
@@ -82,10 +79,47 @@ public class NoticesActivity extends BaseActivity {
                 intent.putExtra("type", type);
                 startActivity(intent);
                 model.img.setImageResource(R.drawable.notice_img_2);
+                if (model.hasRead == -1) {
+                    if (type == 1) {//通知
+                        nnum++;
+                    } else {//公告
+                        gnum++;
+                    }
+                }
+
             }
         });
     }
 
+
+    @Override
+    public void onBackPressed() {
+        sendResult();
+        super.onBackPressed();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            sendResult();
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void sendResult() {
+        Intent intent = new Intent();
+        if (type == 1) {//通知
+            intent.putExtra(NoticeMenuActivity.NOTICE, nnum);
+        } else {
+            intent.putExtra(NoticeMenuActivity.GONGGAO, gnum);
+
+        }
+        setResult(RESULT_OK, intent);
+    }
+
+
     public void initData() {
         String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/notice.action";
         final Map<String, Object> param = new HashMap<>();
@@ -211,6 +245,7 @@ public class NoticesActivity extends BaseActivity {
             model.tv_theme.setText(datas.get(position).getNO_TITLE());
             model.tv_author.setText(datas.get(position).getNO_APPROVER());
             model.id = datas.get(position).getNO_ID();
+            model.hasRead = datas.get(position).getSTATUS() == null ? -1 : (int) datas.get(position).getSTATUS();
             if (!ObjectUtils.isEquals(datas.get(position).getSTATUS(), null)) {
                 if (((int) datas.get(position).getSTATUS()) != -1) {
                     model.img.setImageResource(R.drawable.notice_img_1);
@@ -234,7 +269,7 @@ public class NoticesActivity extends BaseActivity {
             //			private TextView tv_count;
             private TextView tv_theme;
             private TextView tv_author;
-//			private TextView tv_hasRead;//已读,未读
+            private int hasRead;//已读,未读
         }
 
     }

+ 241 - 218
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ScheduleActivity.java

@@ -1,19 +1,28 @@
 package com.xzjmyk.pm.activity.ui.erp.activity;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ListView;
 
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
-import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
-import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.SchedultAdapter;
 import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
@@ -24,225 +33,239 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 
-import android.annotation.SuppressLint;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ListView;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @注释:代办事宜
  * @Administrator 2014年10月10日 上午10:05:02
  */
 @SuppressWarnings("deprecation")
 @SuppressLint("HandlerLeak")
-public class ScheduleActivity extends BaseActivity{
-
-	private EmptyLayout mEmptyLayout;
-	private PullToRefreshListView listview_main; 
-	private SchedultAdapter adapter;
-	private List<AllProcess> allList;
-	private HttpClient hClient;
-		
-
-	private Handler handler=new Handler(){
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public void handleMessage(Message msg) {
-			if (msg.what==1) {
-				//allList= (ArrayList)msg.getData().getParcelableArrayList("accounts");
-				  if (allList==null||allList.isEmpty()) {
-					  Log.i("Arison","加载数据为空!");
-					     adapter=new SchedultAdapter(ScheduleActivity.this, allList);
-					     listview_main.setAdapter(adapter);
-						 mEmptyLayout.showEmpty();
-					}else{
-					    Log.i("Arison","加载数据!size="+allList.size());
-						adapter=new SchedultAdapter(ScheduleActivity.this, allList);
-						listview_main.setAdapter(adapter);
-				  }
-				  listview_main.onRefreshComplete();
-			} else if (msg.what==0) {
-				mEmptyLayout.setErrorMessage("服务器异常!请刷新重试!");
-				mEmptyLayout.showError();
-				listview_main.onRefreshComplete();
-			}
-		};
-	};
-      @Override
+public class ScheduleActivity extends BaseActivity {
+
+    private EmptyLayout mEmptyLayout;
+    private PullToRefreshListView listview_main;
+    private SchedultAdapter adapter;
+    private List<AllProcess> allList;
+    private HttpClient hClient;
+
+
+    private Handler handler = new Handler() {
+        @SuppressWarnings({"unchecked", "rawtypes"})
+        public void handleMessage(Message msg) {
+            if (msg.what == 1) {
+                //allList= (ArrayList)msg.getData().getParcelableArrayList("accounts");
+                if (allList == null || allList.isEmpty()) {
+                    Log.i("Arison", "加载数据为空!");
+                    adapter = new SchedultAdapter(ScheduleActivity.this, allList);
+                    listview_main.setAdapter(adapter);
+                    mEmptyLayout.showEmpty();
+                } else {
+                    Log.i("Arison", "加载数据!size=" + allList.size());
+                    adapter = new SchedultAdapter(ScheduleActivity.this, allList);
+                    listview_main.setAdapter(adapter);
+                }
+                listview_main.onRefreshComplete();
+            } else if (msg.what == 0) {
+                mEmptyLayout.setErrorMessage("服务器异常!请刷新重试!");
+                mEmptyLayout.showError();
+                listview_main.onRefreshComplete();
+            }
+        }
+
+        ;
+    };
+
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
-    	super.onCreate(savedInstanceState);
-    	setContentView(R.layout.schedule_listview);
-    	ViewUtils.inject(this);
-    	listview_main=(PullToRefreshListView)findViewById(R.id.listview_schedult);
-		getSupportActionBar().setTitle("待审批的流程");
-		String  mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-		  // 表示已读
-		FriendDao.getInstance().markUserMessageRead(mLoginUserId, Friend.ID_ERP_PROCESS);
-
-    	mEmptyLayout = new EmptyLayout(this, listview_main.getRefreshableView());
-    	mEmptyLayout.setShowEmptyButton(false);
-    	mEmptyLayout.setShowErrorButton(false);
-    	mEmptyLayout.setShowLoadingButton(false);
-    	mEmptyLayout.showLoading();
-    	
-    	listview_main.setOnItemClickListener(new OnItemClickListener() {
-			@Override
-			public void onItemClick(AdapterView<?> parent, View view,
-									final int position, long id) {
-			handler.postDelayed(new Runnable() {
-
-					@Override
-					public void run() {
-						SharedPreferences setting = getSharedPreferences("setting", MODE_PRIVATE);
-						String password = setting.getString("user_password", null);
-						String d = null, t = null;
-						if (password != null) {
-							d = "" + new Date().getTime();
-							Blowfish blowfish = new Blowfish("00" + d);
-							t = blowfish.encryptString(password);
-						}
-						Intent intent = new Intent(ScheduleActivity.this, WebViewLoadActivity.class);
-						if (allList != null || !allList.isEmpty()) {
-							String url = allList.get(position - 1).getLink();
-							String master = allList.get(position - 1).getMaster();
-							intent.putExtra("url", url);
-							intent.putExtra("t", t);
-							intent.putExtra("d", d);
-							intent.putExtra("master", master);
-							startActivity(intent);
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.schedule_listview);
+        ViewUtils.inject(this);
+        listview_main = (PullToRefreshListView) findViewById(R.id.listview_schedult);
+        getSupportActionBar().setTitle("待审批的流程");
+        String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        // 表示已读
+        FriendDao.getInstance().markUserMessageRead(mLoginUserId, Friend.ID_ERP_PROCESS);
+
+        mEmptyLayout = new EmptyLayout(this, listview_main.getRefreshableView());
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.showLoading();
+
+        listview_main.setOnItemClickListener(new OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view,
+                                    final int position, long id) {
+                handler.postDelayed(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        SharedPreferences setting = getSharedPreferences("setting", MODE_PRIVATE);
+                        String password = setting.getString("user_password", null);
+                        String d = null, t = null;
+                        if (password != null) {
+                            d = "" + new Date().getTime();
+                            Blowfish blowfish = new Blowfish("00" + d);
+                            t = blowfish.encryptString(password);
+                        }
+                        Intent intent = new Intent(ScheduleActivity.this, WebViewLoadActivity.class);
+                        if (allList != null || !allList.isEmpty()) {
+                            String url = allList.get(position - 1).getLink();
+                            String master = allList.get(position - 1).getMaster();
+                            intent.putExtra("url", url);
+                            intent.putExtra("t", t);
+                            intent.putExtra("d", d);
+                            intent.putExtra("master", master);
+                            startActivity(intent);
 //
-						}
-					}
-				}, 0);
-			}
-		});
-    	
-    	listview_main.setOnRefreshListener(new OnRefreshListener<ListView>() {
-
-			@Override
-			public void onRefresh(PullToRefreshBase<ListView> refreshView) {
-				loaddata();
-			}
-		});
+                        }
+                    }
+                }, 0);
+            }
+        });
+
+        listview_main.setOnRefreshListener(new OnRefreshListener<ListView>() {
+
+            @Override
+            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
+                loaddata();
+            }
+        });
+    }
+
+    public class getallprocess_run implements Runnable {
+        @Override
+        public void run() {
+            loadData();
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void loadData() {
+        Looper.prepare();
+        hClient = new HttpClient();
+        String reString = null;
+        String url = Constants.getAppBaseUrl(this) + "mobile/getallprocess.action";
+        Map<String, String> param = new HashMap<String, String>();
+        param.put("employeeCode", CommonUtil.getSharedPreferences(this, "erp_username"));
+        param.put("currentMaster", CommonUtil.getSharedPreferences(this, "erp_master"));
+        param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
+        try {
+            reString = hClient.sendGetRequest(url, param);
+        } catch (Exception e1) {
+            e1.printStackTrace();
+        }
+        Message message = new Message();
+        Bundle bundle = new Bundle();
+        if (reString != null && !reString.equals("500")) {
+            Map<String, Object> results = FlexJsonUtil.fromJson(reString);
+            if (results.get("allProcess") != null) {
+                String count = results.get("count").toString();
+                Intent intent_update = new Intent("com.activity.update.data");
+                getSharedPreferences("setting", MODE_PRIVATE).edit().putString("count", count).commit();
+                List<AllProcess> allProcesses = new ArrayList<AllProcess>();
+                try {
+                    allProcesses = FlexJsonUtil.fromJsonArray(FlexJsonUtil.toJson(results.get("allProcess")), AllProcess.class);
+                } catch (Exception e) {
+                }
+                List<AllProcess> taskProcess = new ArrayList<AllProcess>();
+                for (int i = 0; i < allProcesses.size(); i++) {
+                    if (!allProcesses.get(i).getTypecode().contains("task") && !allProcesses.get(i).getTypecode().contains("pagingrelease")) {
+                        taskProcess.add(allProcesses.get(i));
+                    }
+                    ;
+                }
+                if (!taskProcess.isEmpty()) {
+                    intent_update.putExtra("count", String.valueOf(taskProcess.size()));
+                } else {
+                    intent_update.putExtra("count", "0");
+                }
+                intent_update.putExtra("type", "daiban");
+                intent_update.putExtra("totalcount", count);
+                sendBroadcast(intent_update);
+                // bundle.putParcelableArrayList("accounts", (ArrayList<? extends Parcelable>) taskProcess);
+                allList = taskProcess;
+            }
+            message.setData(bundle);
+            message.what = 1;
+            handler.sendMessage(message);
+        } else {
+            //Toast.makeText(ScheduleActivity.this, "网络请求失败,请重新请求", Toast.LENGTH_LONG).show();
+            handler.sendEmptyMessage(0);
+            Intent intent_update = new Intent("com.activity.update.data");
+            intent_update.putExtra("count", "0");
+            sendBroadcast(intent_update);
+        }
+        Looper.loop();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                onBackPressed();
+                break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onBackPressed() {
+        super.onBackPressed();
+
+    }
+
+    private OnrenewListener listener = null;
+
+    public interface OnrenewListener {
+        public void updata(int num);
+    }
+
+    public void setOnrenewListener(OnrenewListener listener) {
+        this.listener = listener;
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        Intent intent = new Intent("com.app.home.update");
+        intent.putExtra("falg", "home");
+        sendBroadcast(intent);
+
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        listview_main.setRefreshing(true);
+        loaddata();
+    }
+
+    /**
+     * @author Administrator
+     * @功能:统一开启线程加载数据
+     */
+    private void loaddata() {
+        mEmptyLayout.showLoading();
+        listview_main.setRefreshing(true);
+        if (CommonUtil.isNetWorkConnected(this)) {
+            new Thread(new getallprocess_run()).start();
+            Log.i("Arison", "initData()");
+        } else {
+            listview_main.onRefreshComplete();
+            mEmptyLayout.setErrorMessage("网络未连接!");
+            mEmptyLayout.showError();
+        }
     }
-	  public class getallprocess_run implements Runnable{
-			@Override
-			public void run() {
-				loadData();
-			}
-	  }
-
-	  @SuppressWarnings("unchecked")
-	  private void loadData(){
-		    Looper.prepare();
-	    	hClient=new HttpClient();
-		    String reString = null;
-		    String url= Constants.getAppBaseUrl(this)+"mobile/getallprocess.action";
-		    Map<String, String> param=new HashMap<String, String>();
-		    param.put("employeeCode", CommonUtil.getSharedPreferences(this, "erp_username"));
-		    param.put("currentMaster", CommonUtil.getSharedPreferences(this, "erp_master"));
-		    param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
-		    try {
-				reString = hClient.sendGetRequest(url, param);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
-	        Message message = new Message();
-	        Bundle bundle=new Bundle();
-	        if (reString!=null&&!reString.equals("500")) {
-	    	   Map<String, Object> results = FlexJsonUtil.fromJson(reString);
-	    	   if (results.get("allProcess")!=null) {
-	        	   String count=results.get("count").toString();
-	        	   Intent intent_update =new Intent("com.activity.update.data");
-	        	   getSharedPreferences("setting", MODE_PRIVATE).edit().putString("count", count).commit();
-	        	   List<AllProcess> allProcesses = new ArrayList<AllProcess>();
-	        	   try {
-	        		   allProcesses=FlexJsonUtil.fromJsonArray(FlexJsonUtil.toJson(results.get("allProcess")), AllProcess.class);
-				   } catch (Exception e) {
-				   }
-	        	   List<AllProcess> taskProcess=new ArrayList<AllProcess>();
-	        	   for (int i = 0; i < allProcesses.size(); i++) {
-					   if(!allProcesses.get(i).getTypecode().contains("task")&&!allProcesses.get(i).getTypecode().contains("pagingrelease")){
-						   taskProcess.add(allProcesses.get(i));
-					   };
-				   }
-	        	   if (!taskProcess.isEmpty()) {
-		        	   intent_update.putExtra("count", String.valueOf(taskProcess.size()));
-	        	   } else {
-		        	   intent_update.putExtra("count", "0");
-					}
-	        	   intent_update.putExtra("type", "daiban");
-	        	   intent_update.putExtra("totalcount", count);
-	        	   sendBroadcast(intent_update);
-	        	  // bundle.putParcelableArrayList("accounts", (ArrayList<? extends Parcelable>) taskProcess);
-				   allList=taskProcess;
-			}
-		           message.setData(bundle);
-		           message.what=1;
-	               handler.sendMessage(message);
-		    }else {
-		    	  //Toast.makeText(ScheduleActivity.this, "网络请求失败,请重新请求", Toast.LENGTH_LONG).show();
-				  handler.sendEmptyMessage(0);
-		    	  Intent intent_update =new Intent("com.activity.update.data");
-	        	  intent_update.putExtra("count", "0");
-	        	  sendBroadcast(intent_update);
-			}
-	        Looper.loop();  
-	 }
-
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-		return super.onCreateOptionsMenu(menu);
-	}
-
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-		switch (item.getItemId()){
-			case android.R.id.home:
-				onBackPressed();
-				break;
-		}
-		return super.onOptionsItemSelected(item);
-	}
-
-	@Override
-	public void onBackPressed() {
-		super.onBackPressed();
-		Intent intent=new Intent("com.app.home.update");
-		intent.putExtra("falg","home");
-		sendBroadcast(intent);
-	}
-
-	@Override
-	protected void onResume() {
-		super.onResume();
-		listview_main.setRefreshing(true);
-		loaddata();
-	}
-
-	/**
-	  * @author Administrator
-	  * @功能:统一开启线程加载数据
-	  */
-	private void loaddata() {
-		mEmptyLayout.showLoading();
-		listview_main.setRefreshing(true);
-		if (CommonUtil.isNetWorkConnected(this)) {
-			new Thread(new getallprocess_run()).start();
-			Log.i("Arison", "initData()");
-		}else{
-			listview_main.onRefreshComplete();
-			mEmptyLayout.setErrorMessage("网络未连接!");
-			mEmptyLayout.showError();
-		}
-	}
 
 }

+ 1 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -27,9 +27,8 @@ public class Constants {
     public final static int SUCCESS_LOGIN=3;//获取用户开通的平台信息
     public final static int SUCCESS_B2B=4;//B2B登录成功
     public final static int SUCCESS_ERP=5;//ERP登录成功
-    public final static int LOAD_EXCEPTION=0;
     public final static int SUCCESS_INITDATA =7;
-
+    public final static int SUCCESS_SUBCRIPTION =0x8;
     public final static int APP_SOCKETIMEOUTEXCEPTION=99;//网络请求超时,错误,404响应
 
 

+ 67 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -10,7 +10,6 @@ import android.os.Message;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -32,6 +31,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.AttentionUser;
 import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
@@ -66,6 +66,10 @@ import com.xzjmyk.pm.activity.volley.ArrayResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -86,7 +90,8 @@ public class MessageFragment extends EasyFragment {
     private Handler mHandler = new Handler();
     private boolean isRefeshed;
     private MainActivity mActivity;
-
+    public static final int REQUESTCODE = 0xa1;
+    public static final String REQUESTCODERe = "MessageFragment";
     //界面更新广播
     private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
         @Override
@@ -111,6 +116,7 @@ public class MessageFragment extends EasyFragment {
     };
 
     public OnRefreshUIListener refreshRedUIListener = null;
+    private ArrayList<SubscriptionMessage> SubscriptionMessages;
 
     public interface OnRefreshUIListener {
         void updata(int num);
@@ -291,7 +297,7 @@ public class MessageFragment extends EasyFragment {
                     intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
                     intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
                     intent.putExtra(NoticeMenuActivity.NES, NES_count);
-                    startActivity(intent);
+                    startActivityForResult(intent, REQUESTCODE);
                     break;
                 case R.id._rl:
                     startActivity(new Intent(mActivity, SubscriptionActivity.class));
@@ -311,6 +317,7 @@ public class MessageFragment extends EasyFragment {
         loadGongGaoCount(mActivity);
         loadNoticeCount(mActivity);
         loadERPNewsNum(mActivity);
+        loadSubscriptionNum(mActivity);
     }
 
 
@@ -411,6 +418,16 @@ public class MessageFragment extends EasyFragment {
 
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == MessageFragment.REQUESTCODE) {
+            GONGGAO_count = data.getIntExtra(NoticeMenuActivity.GONGGAO, -1);
+            NES_count = data.getIntExtra(NoticeMenuActivity.NES, -1);
+            NOTICE_count = data.getIntExtra(NoticeMenuActivity.NOTICE, -1);
+            setNOTICE_count(GONGGAO_count + NES_count + NOTICE_count);
+        }
+    }
+
     private final void setSortCondition(BaseSortModel<Friend> mode) {
         Friend friend = mode.getBean();
         if (friend == null) {
@@ -511,7 +528,7 @@ public class MessageFragment extends EasyFragment {
                 if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
                     avatar_img.setImageResource(R.drawable.qunliao);
                 } else {
-                        AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, false);// 目前在备注名放房间的创建者Id
+                    AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, false);// 目前在备注名放房间的创建者Id
                 }
             }
             nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
@@ -637,6 +654,17 @@ public class MessageFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_INITDATA, null, null, "get");
     }
 
+    private void loadSubscriptionNum(Context ct) {
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/subs/getSubs.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", 100);
+        param.put("condition", "where 1=1");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_SUBCRIPTION, null, null, "get");
+    }
+
 
     private final int load_success_erpMsgNum = 5;
     private Handler handler = new Handler() {
@@ -655,7 +683,9 @@ public class MessageFragment extends EasyFragment {
                 case Constants.SUCCESS_INITDATA://新闻
                     updateNews(msg);
                     break;
-
+                case Constants.SUCCESS_SUBCRIPTION:
+                    updateSubScription(msg);
+                    break;
                 //以下为更新页面
                 case GONGGAO_MSG:
                     setNOTICE_count(GONGGAO_count + NOTICE_count + NES_count);
@@ -675,7 +705,7 @@ public class MessageFragment extends EasyFragment {
                         task_time_tv.setText("刚刚");
                     } else {
                         task_num_tv.setVisibility(View.GONE);
-                        content_tv.setText("您暂无未阅读任务");
+                        task_content_tv.setText("您暂无未阅读任务");
                     }
                     break;
                 case DAIBAN_MSG:
@@ -687,7 +717,7 @@ public class MessageFragment extends EasyFragment {
                         schedule_time_tv.setText("刚刚");
                     } else {
                         schedule_num_tv.setVisibility(View.GONE);
-                        content_tv.setText("您暂无未阅读待审批流程");
+                        schedule_content_tv.setText("您暂无未阅读待审批流程");
                     }
                     break;
                 case SUBRICE_MSG:
@@ -699,14 +729,14 @@ public class MessageFragment extends EasyFragment {
                         time_tv.setText("刚刚");
                     } else {
                         num_tv.setVisibility(View.GONE);
-                        content_tv.setText("您暂无未阅读订阅消息");
+                        content_tv.setText("您暂无未阅读订阅消息");
                     }
                     break;
             }
-
         }
     };
 
+
     private void setNOTICE_count(int count) {
         setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
         if (count > 0) {
@@ -716,7 +746,7 @@ public class MessageFragment extends EasyFragment {
             notice_time_tv.setText("刚刚");
         } else {
             notice_num_tv.setVisibility(View.GONE);
-            content_tv.setText("您暂无未阅读通知");
+            notice_content_tv.setText("您暂无未阅读通知");
         }
     }
 
@@ -862,5 +892,31 @@ public class MessageFragment extends EasyFragment {
         }
     }
 
-
+    private void updateSubScription(Message msg) {
+        final String message = (String) msg.getData().get("result");
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                JSONObject object = null;
+                try {
+                    object = new JSONObject(message);
+                    JSONArray array = object.getJSONArray("data");
+                    SubscriptionMessages = (ArrayList<SubscriptionMessage>) JSON.parseArray(array.toString(), SubscriptionMessage.class);
+                    if (SubscriptionMessages == null || SubscriptionMessages.size() <= 0) return;
+                    int count = 0;
+                    for (int i = 0; i < SubscriptionMessages.size(); i++) {
+                        if (SubscriptionMessages.get(i).getSTATUS_() == 0)
+                            count++;
+                    }
+                    SUBRICE_count = count;
+                    handler.sendEmptyMessage(SUBRICE_MSG);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
 }
+
+
+

+ 112 - 67
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -9,7 +9,6 @@ import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.ListView;
@@ -35,6 +34,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -48,14 +48,17 @@ public class SubscriptionActivity extends BaseActivity {
     private SubscriptionActivity activity = this;
     private ArrayList<SortSubsrciprion> sortSubsrciprions;
     private int date = -1;
+    private final long daylong = 24 * 60 * 60 * 1000;//一天的毫秒数
+    private long newlong;  //当前指定位置的毫秒数
     private int[] srcs = {
-            R.drawable.dingyue, R.drawable.list_01, R.drawable.list_02, R.drawable.list_03
+            R.drawable.list_01, R.drawable.list_02, R.drawable.list_03
+    };
+    private int[] srcsBig = {
+            R.drawable.dingyue, R.drawable.dingyue1, R.drawable.dingyue2, R.drawable.dingyue3, R.drawable.dingyue4, R.drawable.dingyue5, R.drawable.dingyue6
     };
-
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-
             String message = (String) msg.getData().get("result");
             if (msg.what == 2) {
                 try {
@@ -69,12 +72,7 @@ public class SubscriptionActivity extends BaseActivity {
             } else if (Constants.APP_SOCKETIMEOUTEXCEPTION == msg.what) {
                 //错误信息
             }
-//               if ( msg.what==3){
-//                   listView.onRefreshComplete();
-//               }
-
         }
-
     };
 
     @Override//设置右划退出
@@ -87,28 +85,31 @@ public class SubscriptionActivity extends BaseActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_subscription);
         baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
-
         listView = (PullToRefreshListView) findViewById(R.id.listview);
-        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
+        listView.setMode(PullToRefreshBase.Mode.BOTH);
+        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                cancelData();
+                init();
+            }
+
             @Override
-            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
-                setData();
-                listView.onRefreshComplete();
-//                handler.sendEmptyMessage(3);
-//                listView.postDelayed(new Runnable() {
-//                    @Override
-//                    public void run() {
-//
-//                    }
-//                }, 10);
-                Log.i("gongpengming", "刷新");
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+                //TODo 加载前一天的数据
+                newlong -= daylong;
+                date = TimeUtils.int_long_2_str(newlong);
+                initData(date);
             }
         });
-        initData(date);
-//        SubscriptionMessages = findDataFromDB();
-//        setData();
+        init();
     }
 
+    private void init() {
+        newlong = System.currentTimeMillis();
+        date = TimeUtils.int_long_2_str(newlong);
+        initData(date);
+    }
 
     private void cancelData() {
         if (sortSubsrciprions != null) {
@@ -117,20 +118,25 @@ public class SubscriptionActivity extends BaseActivity {
         if (SubscriptionMessages != null) {
             SubscriptionMessages.clear();
         }
+        adapter.notifyDataSetChanged();
     }
 
     private void setData() {
-        if (SubscriptionMessages == null || SubscriptionMessages.size() <= 0) return;
-        clearDataToDB();
-        saveDataToDB(SubscriptionMessages);
-        sortSubsrciprions = new ArrayList<>();
+        if (SubscriptionMessages == null || SubscriptionMessages.size() <= 0) {
+            ToastMessage("没有更多内容");
+            listView.onRefreshComplete();
+            return;
+        }
+//        clearDataToDB(date);
+//        saveDataToDB(SubscriptionMessages);
+        if (sortSubsrciprions == null)
+            sortSubsrciprions = 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 (sortSubsrciprions.size() > 0) {
                 for (int j = 0; j < sortSubsrciprions.size(); j++) {
@@ -149,29 +155,45 @@ public class SubscriptionActivity extends BaseActivity {
         if (adapter == null) {
             adapter = new SubscriptionAdapter();
             listView.setAdapter(adapter);
-        }
+        } else
+            adapter.notifyDataSetChanged();
+        listView.onRefreshComplete();
     }
 
-    private void clearDataToDB() {
+    private void clearDataToDB(long date) {
         //Todo  chear the db
+
     }
 
     private void saveDataToDB(ArrayList<SubscriptionMessage> subscriptionMessages) {
         // add message to db
-//        long k = SubscriptionDao.getInstance().addMessage(subscriptionMessages);
+        long k = SubscriptionDao.getInstance().addMessage(subscriptionMessages);
     }
 
     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) {
+                        sortSubsrciprions.get(position).beans.remove(i);
+                        if (!(sortSubsrciprions.get(position).beans.size() > 0)) {
+                            sortSubsrciprions.remove(position);
+                        }
+                        adapter.notifyDataSetChanged();
+                    }
+                }).create().show();
+    }
+
     public void initData(int 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("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
@@ -180,6 +202,8 @@ public class SubscriptionActivity extends BaseActivity {
 
     //外层list
     class SubscriptionAdapter extends BaseAdapter {
+        private ListAdapter listAdapter = null;
+
         @Override
         public int getCount() {
             return sortSubsrciprions.size();
@@ -203,24 +227,14 @@ public class SubscriptionActivity extends BaseActivity {
                 viewholder = new Viewholder();
                 viewholder.tvTime = (TextView) contextView.findViewById(R.id.tvTime);
                 viewholder.listview = (MyListView) contextView.findViewById(R.id.listview);
-                viewholder.adapter = new ListAdapter(sortSubsrciprions.get(position).beans);
+                viewholder.adapter = new ListAdapter(sortSubsrciprions.get(position).beans, position);
                 contextView.setTag(viewholder);
             } else {
                 viewholder = (Viewholder) contextView.getTag();
             }
             viewholder.tvTime.setText(TimeUtils.s_long_2_str(sortSubsrciprions.get(position).tiem));
-            viewholder.listview.setAdapter(viewholder.adapter);
-            viewholder.listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-                @Override
-                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-                    SubscriptionMessage bean = sortSubsrciprions.get(position).beans.get(i);
-                    String url = "http://218.17.158.219:8090/ERP//jsps/mobile/charts.jsp?" + "numId=" + bean.getNUM_ID_() +
-                            "&mainId=" + bean.getINSTANCE_ID_() + "&insId=" + bean.getID_() +
-                            "&title=" + bean.getSON_TITLE_();
-                    ViewUtil.WebLinks(activity, url, "订阅");
-                }
-            });
-
+            listAdapter = new ListAdapter(sortSubsrciprions.get(position).beans, position);
+            viewholder.listview.setAdapter(listAdapter);
             return contextView;
         }
 
@@ -231,24 +245,15 @@ public class SubscriptionActivity extends BaseActivity {
         }
     }
 
-    private void popWindou() {
-        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) {
-                        //TODo 删除内容   操作数据库
-
-                    }
-                }).create().show();
-
-    }
 
     //内层list
     class ListAdapter extends BaseAdapter {
         private ArrayList<SubscriptionMessage> beans;
+        private int position;
 
-        private ListAdapter(ArrayList<SubscriptionMessage> beans) {
+        private ListAdapter(ArrayList<SubscriptionMessage> beans, int position) {
             this.beans = beans;
+            this.position = position;
         }
 
         @Override
@@ -268,7 +273,7 @@ public class SubscriptionActivity extends BaseActivity {
 
 
         @Override
-        public View getView(int i, View contextView, ViewGroup viewGroup) {
+        public View getView(final int i, View contextView, ViewGroup viewGroup) {
             VieweHolder holder = null;
             if (contextView == null) {
                 holder = new VieweHolder();
@@ -287,28 +292,70 @@ public class SubscriptionActivity extends BaseActivity {
             } else {
                 holder = (VieweHolder) contextView.getTag();
             }
-
             String sontitle = beans.get(i).getSONTITLE_() == null ? "" : beans.get(i).getSONTITLE_();
             String sumdata = beans.get(i).getSUMDATA_() == null ? "" : beans.get(i).getSUMDATA_();
             String chcheStr = sontitle + " : " + sumdata;
             if (chcheStr.equals(":")) {
                 chcheStr = "";
             }
+            String isRe = "";
+            int isReColor = 0;
             if (i == 0) {
                 holder.ll.setVisibility(View.GONE);
                 holder.rl.setVisibility(View.VISIBLE);
                 holder.big_tv.setText(beans.get(i).getTITLE_());
-                holder.big_isre_tv.setText(beans.get(i).getSTATUS_() == 0 ? "未读" : "已读");
+                if (beans.get(i).getSTATUS_() == 0) {
+                    isRe = "未读";
+                    isReColor = R.color.red;
+                } else {
+                    isRe = "已读";
+                    isReColor = R.color.text_color;
+
+                }
+                holder.big_isre_tv.setText(isRe);
+                holder.big_isre_tv.setTextColor(getResources().getColor(isReColor));
                 holder.big_sub_title_tv.setText(chcheStr);
-                holder.big_img.setImageDrawable(getResources().getDrawable(srcs[i]));
+                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);
                 holder.rl.setVisibility(View.GONE);
                 holder.small_tv.setText(beans.get(i).getTITLE_());
                 holder.sub_title_tv.setText(chcheStr);
-                holder.isre_tv.setText(beans.get(i).getSTATUS_() == 0 ? "未读" : "已读");
-                holder.small_img.setImageDrawable(getResources().getDrawable(srcs[i]));
+                if (beans.get(i).getSTATUS_() == 0) {
+                    isRe = "未读";
+                    isReColor = R.color.red;
+                } else {
+                    isRe = "已读";
+                    isReColor = R.color.text_color;
+
+                }
+                holder.isre_tv.setText(isRe);
+                holder.big_isre_tv.setTextColor(getResources().getColor(isReColor));
+                holder.small_img.setImageDrawable(getResources().getDrawable(srcs[i % 3]));
             }
+            contextView.setTag(R.id.position, position);
+            contextView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    SubscriptionMessage bean = sortSubsrciprions.get(position).beans.get(i);
+                    String url = "http://218.17.158.219:8090/ERP//jsps/mobile/charts.jsp?" + "numId=" + bean.getNUM_ID_() +
+                            "&mainId=" + bean.getINSTANCE_ID_() + "&insId=" + bean.getID_() +
+                            "&title=" + bean.getSON_TITLE_();
+                    ViewUtil.WebLinks(activity, url, "订阅");
+                }
+            });
+
+            contextView.setOnLongClickListener(new View.OnLongClickListener() {
+                @Override
+                public boolean onLongClick(View view) {
+                    popWindou(position, i);
+                    return false;
+                }
+            });
             return contextView;
         }
 
@@ -319,8 +366,6 @@ public class SubscriptionActivity extends BaseActivity {
             ImageView big_img, small_img;
             TextView sub_title_tv, isre_tv, big_sub_title_tv, big_isre_tv;
         }
-
-
     }
 }
 

+ 427 - 420
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/TimeUtils.java

@@ -13,424 +13,431 @@ import java.util.Date;
 @SuppressWarnings("deprecation")
 public class TimeUtils {
 
-	// ///s 代表Simple日期格式:yyyy-MM-dd
-	// ///f 代表Full日期格式:yyyy-MM-dd hh:mm:ss
-
-	public static final SimpleDateFormat ss_format = new SimpleDateFormat("MM-dd");
-	public static final SimpleDateFormat s_format = new SimpleDateFormat("yyyy-MM-dd");
-	public static final SimpleDateFormat f_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-	public static long s_str_2_long(String dateString) {
-		try {
-			Date d = s_format.parse(dateString);
-			return d.getTime();
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static long f_str_2_long(String dateString) {
-		try {
-			Date d = f_format.parse(dateString);
-			return d.getTime();
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static String ss_long_2_str(long timestamp) {
-		return ss_format.format(new Date(timestamp));
-	}
-
-	public static String s_long_2_str(long timestamp) {
-		return s_format.format(new Date(timestamp));
-	}
-
-	public static String f_long_2_str(long timestamp) {
-		return f_format.format(new Date(timestamp));
-	}
-
-	/**
-	 * 获取字符串时间的年份
-	 * 
-	 * @param dateString
-	 *            格式为yyyy-MM-ss,或者yyyy-MM-dd HH:mm:ss
-	 * @return
-	 */
-	public static int getYear(String dateString) {
-		try {
-			Date d = s_format.parse(dateString);
-			return d.getYear() + 1900;// 年份是基于格林威治时间,所以加上1900
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	/**
-	 * 获取字符串时间的月份
-	 * 
-	 * @param dateString
-	 *            格式为yyyy-MM-ss,或者yyyy-MM-dd hh:mm:ss
-	 * @return
-	 */
-	public static int getMonth(String dateString) {
-		try {
-			Date d = s_format.parse(dateString);
-			return d.getMonth();// 月份从0-11
-		} catch (ParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	/**
-	 * 获取字符串时间的天
-	 * 
-	 * @param dateString
-	 *            格式为yyyy-MM-ss,或者yyyy-MM-dd hh:mm:ss
-	 * @return
-	 */
-	public static int getDayOfMonth(String dateString) {
-		try {
-			Date d = s_format.parse(dateString);
-			return d.getDate();
-		} catch (ParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int getHours(String timeString) {
-		SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
-		try {
-			Date date = formart.parse(timeString);
-			return date.getHours();
-		} catch (ParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int getMinutes(String timeString) {
-		SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
-		try {
-			Date date = formart.parse(timeString);
-			return date.getMinutes();
-		} catch (ParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int getSeconds(String timeString) {
-		SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
-		try {
-			Date date = formart.parse(timeString);
-			return date.getSeconds();
-		} catch (ParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static String getCurrentTime() {
-		return f_format.format(new Date(System.currentTimeMillis()));
-	}
-
-	/**
-	 * 在当前时间上加上多少毫秒,返回这个时间
-	 * 
-	 * @param mask
-	 * @return
-	 */
-	public static String getCurrentTimeMask(long mask) {
-		return f_format.format(new Date(System.currentTimeMillis() + mask));
-	}
-
-	// /////////////////////以上是通用的,下面为特殊需求的////////////////////////
-	// /**
-	// * 时间戳转换日期格式
-	// *
-	// * @param timestamp
-	// * 单位秒
-	// * @return
-	// */
-	// public static String getCurrentTime(long timestamp) {
-	// SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-	// return f.format(new Date(timestamp * 1000));
-	// }
-
-	/**
-	 * 获取精简的日期
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static String getSimpleDate(String time) {
-		SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
-		Date date = null;
-		try {
-			date = f_format.parse(time);
-			return formater.format(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return "";
-		}
-	}
-
-	/**
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static String getSimpleDateTime(String time) {
-		SimpleDateFormat formater = new SimpleDateFormat("yy-MM-dd HH:mm");
-		Date date = null;
-		try {
-			date = f_format.parse(time);
-			return formater.format(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return "";
-		}
-	}
-
-	public static String getSimpleTime(String time) {
-		SimpleDateFormat formater = new SimpleDateFormat("HH:mm");
-		Date date = null;
-		try {
-			date = f_format.parse(time);
-			return formater.format(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return "";
-		}
-	}
-
-	public static String getChatSimpleDate(String time) {
-		SimpleDateFormat formater = new SimpleDateFormat("yy-MM-dd");
-		Date date = null;
-		try {
-			date = f_format.parse(time);
-			return formater.format(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return "";
-		}
-	}
-
-	public static String getTimeHM(String time) {
-		SimpleDateFormat formater = new SimpleDateFormat("HH:mm");
-		Date date = null;
-		try {
-			date = f_format.parse(time);
-			return formater.format(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-			return "";
-		}
-	}
-
-	public static SimpleDateFormat friendly_format1 = new SimpleDateFormat("HH:mm");
-	public static SimpleDateFormat friendly_format2 = new SimpleDateFormat("MM-dd HH:mm");
-
-	/**
-	 * 获取友好的时间显示
-	 * 
-	 * @param time
-	 *            秒级别的时间戳
-	 * @return
-	 */
-	public static String getFriendlyTimeDesc(Context context, int time) {
-		String desc = "";
-		Date timeDate = new Date(time * 1000L);
-		Date nowDate = new Date();
-		long delaySeconds = nowDate.getTime() / 1000 - time;// 相差的秒数
-
-		if (delaySeconds < 10) {// 小于10秒,显示刚刚
-			desc = context.getString(R.string.friendly_time_just_now);// 显示刚刚
-		} else if (delaySeconds <= 60) {// 小于1分钟,显示如“25秒前”
-			desc = delaySeconds + context.getString(R.string.friendly_time_before_seconds);
-		} else if (delaySeconds < 60 * 30) {// 小于30分钟,显示如“25分钟前”
-			desc = (delaySeconds / 60) + context.getString(R.string.friendly_time_before_minute);
-		} else if (delaySeconds < 60 * 60 * 24) {// 小于1天之内
-			if (nowDate.getDay() - timeDate.getDay() == 0) {// 同一天
-				desc = friendly_format1.format(timeDate);
-			} else {// 前一天
-				desc = context.getString(R.string.friendly_time_yesterday) + " " + friendly_format1.format(timeDate);
-			}
-		} else if (delaySeconds < 60 * 60 * 24 * 2) {// 小于2天之内
-			if (nowDate.getDay() - timeDate.getDay() == 1 || nowDate.getDay() - timeDate.getDay() == -6) {// 昨天
-				desc = context.getString(R.string.friendly_time_yesterday) + " " + friendly_format1.format(timeDate);
-			} else {// 前天
-				desc = context.getString(R.string.friendly_time_before_yesterday) + " " + friendly_format1.format(timeDate);
-			}
-		} else if (delaySeconds < 60 * 60 * 24 * 3) {// 小于三天
-			if (nowDate.getDay() - timeDate.getDay() == 2 || nowDate.getDay() - timeDate.getDay() == -5) {// 前天
-				desc = context.getString(R.string.friendly_time_before_yesterday) + " " + friendly_format1.format(timeDate);
-			}
-			// else 超过前天
-		}
-
-		if (TextUtils.isEmpty(desc)) {
-			desc = friendly_format2.format(timeDate);
-		}
-		return desc;
-	}
-
-	public static String sk_time_friendly_format2(long time) {
-		return friendly_format2.format(new Date(time * 1000));
-	}
-
-	public static String sk_time_s_long_2_str(long time) {
-		return s_long_2_str(time * 1000);
-	}
-
-	public static String sk_time_ss_long_2_str(long time) {
-		return ss_long_2_str(time * 1000);
-	}
-
-	public static long sk_time_s_str_2_long(String dateString) {
-		return s_str_2_long(dateString) / 1000;
-	}
-
-	public static int sk_time_current_time() {
-		return (int) (System.currentTimeMillis() / 1000);
-	}
-
-	private static SimpleDateFormat hm_formater = new SimpleDateFormat("HH:mm");
-
-	public static String sk_time_long_to_hm_str(long time) {
-		try {
-			return hm_formater.format(new Date(time * 1000));
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return "";
-	}
-
-	public static String sk_time_long_to_chat_time_str(long time) {
-		String date1 = sk_time_s_long_2_str(time);
-		String date2 = sk_time_s_long_2_str(System.currentTimeMillis() / 1000);
-		if (date1.compareToIgnoreCase(date2) == 0) {// 是同一天
-			return sk_time_long_to_hm_str(time);
-		} else {
-			return long_to_yMdHm_str(time * 1000);
-		}
-	}
-
-	public static final SimpleDateFormat sk_format_1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-
-	// 日期加小时的字符串
-	public static String long_to_yMdHm_str(long time) {
-		return sk_format_1.format(new Date(time));
-	}
-
-	public static long sk_time_yMdHm_str_to_long(String time) {
-		try {
-			return sk_format_1.parse(time).getTime() / 1000;
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int yMdHm_getYear(String dateString) {
-		try {
-			Date d = sk_format_1.parse(dateString);
-			return d.getYear() + 1900;// 年份是基于格林威治时间,所以加上1900
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int yMdHm_getMonth(String dateString) {
-		try {
-			Date d = sk_format_1.parse(dateString);
-			return d.getMonth();// 月份从0-11
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int yMdHm_getDayOfMonth(String dateString) {
-		try {
-			Date d = sk_format_1.parse(dateString);
-			return d.getDate();
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int yMdHm_getHours(String timeString) {
-		try {
-			Date date = sk_format_1.parse(timeString);
-			return date.getHours();
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	public static int yMdHm_getMinutes(String timeString) {
-		try {
-			Date date = sk_format_1.parse(timeString);
-			return date.getMinutes();
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	/**
-	 * 
-	 * @param textView
-	 * @param time
-	 *            时间戳/1000
-	 * @return
-	 */
-	public static long getSpecialBeginTime(TextView textView, long time) {
-		long currentTime = System.currentTimeMillis() / 1000;
-		if (time > currentTime) {
-			time = currentTime;
-		}
-		textView.setText(sk_time_s_long_2_str(time));
-		return time;
-	}
-
-	/**
-	 * 
-	 * @param textView
-	 * @param time
-	 *            时间戳/1000
-	 * @return
-	 */
-	public static long getSpecialEndTime(TextView textView, long time) {
-		long currentTime = System.currentTimeMillis() / 1000;
-		if (time == 0 || time > currentTime - 24 * 60 * 60) {
-			textView.setText(R.string.to_this_day);
-			return 0;
-		}
-		textView.setText(sk_time_s_long_2_str(time));
-		return time;
-	}
-
-	public static int sk_time_age(long birthday) {
-		int age = (new Date().getYear()) - (new Date(birthday * 1000).getYear());
-		if (age < 0 || age > 100) {
-			return 25;
-		}
-		return age;
-	}
+    // ///s 代表Simple日期格式:yyyy-MM-dd
+    // ///f 代表Full日期格式:yyyy-MM-dd hh:mm:ss
+
+    public static final SimpleDateFormat ss_format = new SimpleDateFormat("MM-dd");
+    public static final SimpleDateFormat s_format = new SimpleDateFormat("yyyy-MM-dd");
+    public static final SimpleDateFormat f_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    public static final SimpleDateFormat int_format = new SimpleDateFormat("yyyyMMdd");
+
+    public static long s_str_2_long(String dateString) {
+        try {
+            Date d = s_format.parse(dateString);
+            return d.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static long int_str_2_long(String date) {
+        try {
+            Date d = int_format.parse(date);
+            return d.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int int_long_2_str(long timestamp) {
+        return Integer.parseInt(int_format.format(new Date(timestamp)));
+    }
+
+    public static long f_str_2_long(String dateString) {
+        try {
+            Date d = f_format.parse(dateString);
+
+            return d.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static String ss_long_2_str(long timestamp) {
+        return ss_format.format(new Date(timestamp));
+    }
+
+    public static String s_long_2_str(long timestamp) {
+        return s_format.format(new Date(timestamp));
+    }
+
+    public static String f_long_2_str(long timestamp) {
+        return f_format.format(new Date(timestamp));
+    }
+
+    /**
+     * 获取字符串时间的年份
+     *
+     * @param dateString 格式为yyyy-MM-ss,或者yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    public static int getYear(String dateString) {
+        try {
+            Date d = s_format.parse(dateString);
+            return d.getYear() + 1900;// 年份是基于格林威治时间,所以加上1900
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    /**
+     * 获取字符串时间的月份
+     *
+     * @param dateString 格式为yyyy-MM-ss,或者yyyy-MM-dd hh:mm:ss
+     * @return
+     */
+    public static int getMonth(String dateString) {
+        try {
+            Date d = s_format.parse(dateString);
+            return d.getMonth();// 月份从0-11
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    /**
+     * 获取字符串时间的天
+     *
+     * @param dateString 格式为yyyy-MM-ss,或者yyyy-MM-dd hh:mm:ss
+     * @return
+     */
+    public static int getDayOfMonth(String dateString) {
+        try {
+            Date d = s_format.parse(dateString);
+            return d.getDate();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int getHours(String timeString) {
+        SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
+        try {
+            Date date = formart.parse(timeString);
+            return date.getHours();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int getMinutes(String timeString) {
+        SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
+        try {
+            Date date = formart.parse(timeString);
+            return date.getMinutes();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int getSeconds(String timeString) {
+        SimpleDateFormat formart = new SimpleDateFormat("HH:mm:ss");
+        try {
+            Date date = formart.parse(timeString);
+            return date.getSeconds();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static String getCurrentTime() {
+        return f_format.format(new Date(System.currentTimeMillis()));
+    }
+
+    /**
+     * 在当前时间上加上多少毫秒,返回这个时间
+     *
+     * @param mask
+     * @return
+     */
+    public static String getCurrentTimeMask(long mask) {
+        return f_format.format(new Date(System.currentTimeMillis() + mask));
+    }
+
+    // /////////////////////以上是通用的,下面为特殊需求的////////////////////////
+    // /**
+    // * 时间戳转换日期格式
+    // *
+    // * @param timestamp
+    // * 单位秒
+    // * @return
+    // */
+    // public static String getCurrentTime(long timestamp) {
+    // SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    // return f.format(new Date(timestamp * 1000));
+    // }
+
+    /**
+     * 获取精简的日期
+     *
+     * @param time
+     * @return
+     */
+    public static String getSimpleDate(String time) {
+        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = null;
+        try {
+            date = f_format.parse(time);
+            return formater.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    /**
+     * @param time
+     * @return
+     */
+    public static String getSimpleDateTime(String time) {
+        SimpleDateFormat formater = new SimpleDateFormat("yy-MM-dd HH:mm");
+        Date date = null;
+        try {
+            date = f_format.parse(time);
+            return formater.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    public static String getSimpleTime(String time) {
+        SimpleDateFormat formater = new SimpleDateFormat("HH:mm");
+        Date date = null;
+        try {
+            date = f_format.parse(time);
+            return formater.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    public static String getChatSimpleDate(String time) {
+        SimpleDateFormat formater = new SimpleDateFormat("yy-MM-dd");
+        Date date = null;
+        try {
+            date = f_format.parse(time);
+            return formater.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    public static String getTimeHM(String time) {
+        SimpleDateFormat formater = new SimpleDateFormat("HH:mm");
+        Date date = null;
+        try {
+            date = f_format.parse(time);
+            return formater.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    public static SimpleDateFormat friendly_format1 = new SimpleDateFormat("HH:mm");
+    public static SimpleDateFormat friendly_format2 = new SimpleDateFormat("MM-dd HH:mm");
+
+    /**
+     * 获取友好的时间显示
+     *
+     * @param time 秒级别的时间戳
+     * @return
+     */
+    public static String getFriendlyTimeDesc(Context context, int time) {
+        String desc = "";
+        Date timeDate = new Date(time * 1000L);
+        Date nowDate = new Date();
+        long delaySeconds = nowDate.getTime() / 1000 - time;// 相差的秒数
+
+        if (delaySeconds < 10) {// 小于10秒,显示刚刚
+            desc = context.getString(R.string.friendly_time_just_now);// 显示刚刚
+        } else if (delaySeconds <= 60) {// 小于1分钟,显示如“25秒前”
+            desc = delaySeconds + context.getString(R.string.friendly_time_before_seconds);
+        } else if (delaySeconds < 60 * 30) {// 小于30分钟,显示如“25分钟前”
+            desc = (delaySeconds / 60) + context.getString(R.string.friendly_time_before_minute);
+        } else if (delaySeconds < 60 * 60 * 24) {// 小于1天之内
+            if (nowDate.getDay() - timeDate.getDay() == 0) {// 同一天
+                desc = friendly_format1.format(timeDate);
+            } else {// 前一天
+                desc = context.getString(R.string.friendly_time_yesterday) + " " + friendly_format1.format(timeDate);
+            }
+        } else if (delaySeconds < 60 * 60 * 24 * 2) {// 小于2天之内
+            if (nowDate.getDay() - timeDate.getDay() == 1 || nowDate.getDay() - timeDate.getDay() == -6) {// 昨天
+                desc = context.getString(R.string.friendly_time_yesterday) + " " + friendly_format1.format(timeDate);
+            } else {// 前天
+                desc = context.getString(R.string.friendly_time_before_yesterday) + " " + friendly_format1.format(timeDate);
+            }
+        } else if (delaySeconds < 60 * 60 * 24 * 3) {// 小于三天
+            if (nowDate.getDay() - timeDate.getDay() == 2 || nowDate.getDay() - timeDate.getDay() == -5) {// 前天
+                desc = context.getString(R.string.friendly_time_before_yesterday) + " " + friendly_format1.format(timeDate);
+            }
+            // else 超过前天
+        }
+
+        if (TextUtils.isEmpty(desc)) {
+            desc = friendly_format2.format(timeDate);
+        }
+        return desc;
+    }
+
+    public static String sk_time_friendly_format2(long time) {
+        return friendly_format2.format(new Date(time * 1000));
+    }
+
+    public static String sk_time_s_long_2_str(long time) {
+        return s_long_2_str(time * 1000);
+    }
+
+    public static String sk_time_ss_long_2_str(long time) {
+        return ss_long_2_str(time * 1000);
+    }
+
+    public static long sk_time_s_str_2_long(String dateString) {
+        return s_str_2_long(dateString) / 1000;
+    }
+
+    public static int sk_time_current_time() {
+        return (int) (System.currentTimeMillis() / 1000);
+    }
+
+    private static SimpleDateFormat hm_formater = new SimpleDateFormat("HH:mm");
+
+    public static String sk_time_long_to_hm_str(long time) {
+        try {
+            return hm_formater.format(new Date(time * 1000));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    public static String sk_time_long_to_chat_time_str(long time) {
+        String date1 = sk_time_s_long_2_str(time);
+        String date2 = sk_time_s_long_2_str(System.currentTimeMillis() / 1000);
+        if (date1.compareToIgnoreCase(date2) == 0) {// 是同一天
+            return sk_time_long_to_hm_str(time);
+        } else {
+            return long_to_yMdHm_str(time * 1000);
+        }
+    }
+
+    public static final SimpleDateFormat sk_format_1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+    // 日期加小时的字符串
+    public static String long_to_yMdHm_str(long time) {
+        return sk_format_1.format(new Date(time));
+    }
+
+    public static long sk_time_yMdHm_str_to_long(String time) {
+        try {
+            return sk_format_1.parse(time).getTime() / 1000;
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int yMdHm_getYear(String dateString) {
+        try {
+            Date d = sk_format_1.parse(dateString);
+            return d.getYear() + 1900;// 年份是基于格林威治时间,所以加上1900
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int yMdHm_getMonth(String dateString) {
+        try {
+            Date d = sk_format_1.parse(dateString);
+            return d.getMonth();// 月份从0-11
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int yMdHm_getDayOfMonth(String dateString) {
+        try {
+            Date d = sk_format_1.parse(dateString);
+            return d.getDate();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int yMdHm_getHours(String timeString) {
+        try {
+            Date date = sk_format_1.parse(timeString);
+            return date.getHours();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static int yMdHm_getMinutes(String timeString) {
+        try {
+            Date date = sk_format_1.parse(timeString);
+            return date.getMinutes();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    /**
+     * @param textView
+     * @param time     时间戳/1000
+     * @return
+     */
+    public static long getSpecialBeginTime(TextView textView, long time) {
+        long currentTime = System.currentTimeMillis() / 1000;
+        if (time > currentTime) {
+            time = currentTime;
+        }
+        textView.setText(sk_time_s_long_2_str(time));
+        return time;
+    }
+
+    /**
+     * @param textView
+     * @param time     时间戳/1000
+     * @return
+     */
+    public static long getSpecialEndTime(TextView textView, long time) {
+        long currentTime = System.currentTimeMillis() / 1000;
+        if (time == 0 || time > currentTime - 24 * 60 * 60) {
+            textView.setText(R.string.to_this_day);
+            return 0;
+        }
+        textView.setText(sk_time_s_long_2_str(time));
+        return time;
+    }
+
+    public static int sk_time_age(long birthday) {
+        int age = (new Date().getYear()) - (new Date(birthday * 1000).getYear());
+        if (age < 0 || age > 100) {
+            return 25;
+        }
+        return age;
+    }
 }

BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue1.jpg


BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue2.jpg


BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue3.jpg


BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue4.jpg


BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue5.jpg


BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue6.jpg


+ 6 - 4
WeiChat/src/main/res/layout/activity_phone_select.xml

@@ -3,10 +3,12 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
+    android:background="@color/tab_main_color"
     tools:context="com.xzjmyk.pm.activity.ui.circle.PhoneSelectActivity">
 
+    <GridView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:numColumns="3" />
+
 </RelativeLayout>

+ 5 - 4
WeiChat/src/main/res/layout/bigimage_subscription.xml

@@ -8,6 +8,7 @@
         android:id="@+id/small_ll"
         android:layout_width="match_parent"
         android:layout_height="100dp"
+        android:visibility="gone"
         android:orientation="horizontal">
 
         <TextView
@@ -19,7 +20,7 @@
             android:maxLines="3"
             android:padding="8dp"
 
-            android:textSize="16sp" />
+            android:textSize="18sp" />
 
         <TextView
             android:id="@+id/sub_title_tv"
@@ -53,6 +54,7 @@
             android:layout_centerVertical="true"
             android:layout_marginRight="5dp"
             android:background="@color/background"
+            android:scaleType="fitXY"
             android:src="@drawable/list_01" />
     </RelativeLayout>
 
@@ -77,7 +79,7 @@
             android:background="@color/subscrip_text"
             android:gravity="center_horizontal"
             android:textColor="@color/white"
-            android:textSize="16sp" />
+            android:textSize="18sp" />
 
         <TextView
             android:id="@+id/big_sub_title_tv"
@@ -87,7 +89,7 @@
             android:layout_marginBottom="5dp"
             android:layout_marginLeft="10dp"
             android:ellipsize="end"
-            android:textColor="@color/hintColor"
+            android:textColor="@color/white"
             android:textSize="14sp" />
 
         <TextView
@@ -97,7 +99,6 @@
             android:layout_alignParentRight="true"
             android:layout_below="@+id/big_tv"
             android:layout_marginRight="5dp"
-            android:textColor="@color/hintColor"
             android:textSize="14sp" />
     </RelativeLayout>
 </FrameLayout>

+ 2 - 1
WeiChat/src/main/res/values/gpm_string.xml

@@ -2,5 +2,6 @@
 <resources>
     <string name="delete_item">确定要删除吗</string>
 
-
+    <!--listView 中对于 contentView的settag方法参数定义 -->
+    <item name="position" type="id"></item>
 </resources>