Browse Source

Merge branch 'developer_master' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer_master

Arisono 9 years ago
parent
commit
e85ee0854b
26 changed files with 1055 additions and 512 deletions
  1. 20 19
      WeiChat/src/main/AndroidManifest.xml
  2. BIN
      WeiChat/src/main/assets/test.jpg
  3. 0 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java
  4. 70 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SimpleCustomAdapter.java
  5. 0 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  6. 1 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java
  7. 15 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/PhoneSelectActivity.java
  8. 6 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendShuoshuoActivity.java
  9. 0 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java
  10. 0 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SwitchView.java
  11. 309 299
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/LocalVideoActivity.java
  12. 4 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java
  13. 52 44
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  14. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java
  15. 45 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/MultiImagePreviewActivity.java
  16. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/SingleImagePreviewActivity.java
  17. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CameraUtil.java
  18. 0 17
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ViewAlphaUtil.java
  19. 302 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/video/VideoActivity.java
  20. 2 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/video/VideoRecordActivity.java
  21. 92 89
      WeiChat/src/main/java/com/xzjmyk/pm/activity/volley/Result.java
  22. BIN
      WeiChat/src/main/res/drawable-xhdpi/search_input.9.png
  23. 12 0
      WeiChat/src/main/res/layout/activity_phone_select.xml
  24. 38 0
      WeiChat/src/main/res/layout/activity_video.xml
  25. 85 0
      WeiChat/src/main/res/layout/message_header.xml
  26. BIN
      WeiChat/src/main/res/raw/test.jpg

+ 20 - 19
WeiChat/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.xzjmyk.pm.activity"
     android:versionCode="41"
-    android:versionName="4.1" >
+    android:versionName="4.1">
 
     <uses-sdk
         android:minSdkVersion="11"
@@ -10,9 +10,11 @@
 
     <!-- 拨打电话 -->
     <uses-permission android:name="android.permission.CALL_PHONE" />
+
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
     <uses-feature android:name="android.hardware.microphone" />
+
     <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.GET_TASKS" />
@@ -67,7 +69,7 @@
         android:allowBackup="true"
         android:icon="@drawable/uuu"
         android:label="@string/app_name"
-        android:theme="@style/AppTheme" >
+        android:theme="@style/AppTheme">
         <meta-data
             android:name="UMENG_APPKEY"
             android:value="574504a167e58eec520017df" />
@@ -78,7 +80,7 @@
         <!-- 启动页面 -->
         <activity
             android:name=".ui.SplashActivity"
-            android:theme="@style/SplashTheme" >
+            android:theme="@style/SplashTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
@@ -238,7 +240,7 @@
             android:exported="true"
             android:icon="@drawable/ic_chooser"
             android:label="@string/choose_file"
-            android:theme="@style/ChooserTheme" >
+            android:theme="@style/ChooserTheme">
             <intent-filter>
                 <action android:name="android.intent.action.GET_CONTENT" />
 
@@ -255,13 +257,13 @@
             android:enabled="@bool/use_provider"
             android:exported="true"
             android:grantUriPermissions="true"
-            android:permission="android.permission.MANAGE_DOCUMENTS" >
+            android:permission="android.permission.MANAGE_DOCUMENTS">
             <intent-filter>
                 <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
             </intent-filter>
         </provider>
 
-        <receiver android:name=".broadcast.ScrenLockedBroadCastReceiver" >
+        <receiver android:name=".broadcast.ScrenLockedBroadCastReceiver">
             <intent-filter>
                 <action android:name="android.intent.action.SCREEN_OFF" />
                 <action android:name="android.intent.action.SCREEN_ON" />
@@ -288,7 +290,7 @@
         <!-- 用于接收系统消息以保证PushService正常运行 -->
         <receiver
             android:name="com.baidu.android.pushservice.PushServiceReceiver"
-            android:process=":bdservice_v1" >
+            android:process=":bdservice_v1">
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
@@ -304,7 +306,7 @@
         <!-- Push服务接收客户端发送的各种请求 -->
         <receiver
             android:name="com.baidu.android.pushservice.RegistrationReceiver"
-            android:process=":bdservice_v1" >
+            android:process=":bdservice_v1">
             <intent-filter>
                 <action android:name="com.baidu.android.pushservice.action.METHOD" />
                 <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
@@ -323,7 +325,7 @@
             android:name="com.baidu.android.pushservice.PushService"
             android:exported="true"
             android:persistent="true"
-            android:process=":bdservice_v1" >
+            android:process=":bdservice_v1">
             <intent-filter>
                 <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
             </intent-filter>
@@ -337,7 +339,7 @@
 
 
         <!-- 此处Receiver名字修改为当前包名路径 -->
-        <receiver android:name=".ui.PushNetMessageReceiver" >
+        <receiver android:name=".ui.PushNetMessageReceiver">
             <intent-filter>
 
                 <!-- 接收push消息 -->
@@ -358,7 +360,7 @@
             </intent-filter>
         </activity>
         -->
-        <activity android:name=".ui.message.SelectCardActivity" >
+        <activity android:name=".ui.message.SelectCardActivity">
             <intent-filter>
                 <action android:name="com.xzjmyk.pm.activity.ui.message.SelectCardActivity" />
             </intent-filter>
@@ -382,7 +384,7 @@
 
         <receiver
             android:name="com.baidu.autoupdatesdk.receiver.BDBroadcastReceiver"
-            android:exported="false" >
+            android:exported="false">
             <intent-filter>
                 <action android:name="com.baidu.autoupdatesdk.ACTION_NEW_UPDATE" />
                 <action android:name="com.baidu.autoupdatesdk.ACTION_DOWNLOAD_COMPLETE" />
@@ -391,14 +393,13 @@
             </intent-filter>
         </receiver>
 
+        <activity android:name=".video.VideoActivity" />
         <activity android:name=".ui.erp.activity.CompanyActivity" />
         <activity android:name=".ui.erp.activity.BaseInfoActivity" />
-        <activity android:name=".ui.erp.activity.ClientActivity" >
-        </activity>
-        <activity android:name=".ui.erp.activity.SubscribeActivity" >
-        </activity>
-        <activity android:name=".ui.message.SubscriptionActivity" >
-        </activity>
+        <activity android:name=".ui.erp.activity.ClientActivity" />
+        <activity android:name=".ui.erp.activity.SubscribeActivity" />
+        <activity android:name=".ui.message.SubscriptionActivity" />
+        <activity android:name=".ui.circle.PhoneSelectActivity"></activity>
     </application>
 
-</manifest>
+</manifest>

BIN
WeiChat/src/main/assets/test.jpg


+ 0 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java

@@ -317,11 +317,8 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
             viewHolder.command_listView = (ListView) convertView.findViewById(R.id.command_listView);
             viewHolder.viewLine = convertView.findViewById(R.id.line);
             viewHolder.praise_rl = (RelativeLayout) convertView.findViewById(R.id.praise_rl);
-
-
             viewHolder.img_praise_top = (ImageView) convertView.findViewById(R.id.img_praise_top);
             viewHolder.img_praise_line = convertView.findViewById(R.id.img_praise_line);
-
             if (innerView != null) {
                 viewHolder.content_fl.addView(innerView);
             }
@@ -330,7 +327,6 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
         } else {
             viewHolder = (ViewHolder) convertView.getTag(R.id.tag_key_list_item_view);
         }
-
         final ViewHolder finalHolder = viewHolder;// 和ViewHolder一样的,只不过用作匿名内部类里面调用需要final
         // set data
         final PublicMessage message = mMessages.get(position);

+ 70 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SimpleCustomAdapter.java

@@ -0,0 +1,70 @@
+package com.xzjmyk.pm.activity.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+import com.baidu.cyberplayer.utils.T;
+
+import java.util.List;
+
+public abstract class SimpleCustomAdapter extends BaseAdapter {
+    private Context context;
+    private List<T> beans;
+    protected View rootView;
+    private T viewHolder;
+
+    public SimpleCustomAdapter(Context context) {
+        this.context = context;
+        beans = getBeans();
+        viewHolder = (T) getViewHolder();
+    }
+
+    protected abstract List<T> getBeans();//
+
+    protected abstract int count();//获取长度
+
+    protected abstract int getTypeView();//获取视图id
+
+    protected abstract Object getViewHolder();
+
+    @Override
+    public int getCount() {
+        return count();
+    }
+
+    @Override
+    public Object getItem(int i) {
+        return beans.get(i);
+    }
+
+    @Override
+    public long getItemId(int i) {
+        return i;
+    }
+
+    @Override
+    public View getView(int i, View view, ViewGroup viewGroup) {
+        if (view == null) {
+            rootView = view;
+            view = LayoutInflater.from(context).inflate(getTypeView(), null);
+
+        } else {
+            viewHolder = (T) view.getTag();
+        }
+        doView(i, viewGroup);
+        return view;
+    }
+
+    protected abstract void doView(int i, ViewGroup viewGroup);
+
+    protected abstract void setViewHolders(Object tag);
+
+    protected View findViewById(int id) {
+        if (rootView == null) return null;
+        else return rootView.findViewById(id);
+    }
+
+}

+ 0 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -169,13 +169,9 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 mBusinessCircleFragment.onResult();
             }
         }
-
     }
 
 
-    private void hineColor() {
-
-    }
 
     /**
      * @desc:主页菜单入口
@@ -251,7 +247,6 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         }
         HashMap<String, String> params = new HashMap<String, String>();
         params.put("access_token", MyApplication.getInstance().mAccessToken);
-
         final BaseActivity mContext = MainActivity.this;
         StringJsonArrayRequest<CircleMessage> request = new StringJsonArrayRequest<CircleMessage>(
                 config.MSG_LIST, new Response.ErrorListener() {

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

@@ -168,9 +168,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
             @Override
             public void OnResize(int w, int h, int oldw, int oldh) {
                 if (oldh < h) {// 键盘被隐藏
-                    // mCommentReplyCache = null;
-                    // mPMsgBottomView.setHintText("");
-                    // mPMsgBottomView.reset();
+
                 }
             }
         });

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

@@ -0,0 +1,15 @@
+package com.xzjmyk.pm.activity.ui.circle;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+import com.xzjmyk.pm.activity.R;
+
+public class PhoneSelectActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_phone_select);
+    }
+}

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

@@ -108,7 +108,10 @@ public class SendShuoshuoActivity extends BaseActivity {
                 int viewType = mAdapter.getItemViewType(position);
 
                 if (viewType == 1) {
-                    showSelectPictureDialog();
+                    showSelectPictureDialog();//第一个
+                    //TODO 选择图片页面
+//                    startActivityForResult(new Intent(SendShuoshuoActivity.this, PhoneSelectActivity.class), 222);
+
                 } else {
                     showPictureActionDialog(position);
                 }
@@ -123,10 +126,9 @@ public class SendShuoshuoActivity extends BaseActivity {
                 }
                 if (mPhotoList.size() <= 0) {// 发文字
                     sendShuoshuo();
-                } else {// 图片+文字
+                } else {//  图片+文字
                     new UploadPhpto().execute();
                 }
-
             }
         });
     }
@@ -197,6 +199,7 @@ public class SendShuoshuoActivity extends BaseActivity {
         } else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 选择一张图片,然后立即调用裁减
             if (resultCode == Activity.RESULT_OK) {
                 if (data != null && data.getData() != null) {
+                    Log.i("gongpengming", data.getData().getPath());
                     String path = CameraUtil.getImagePathFromUri(this, data.getData());
                     mPhotoList.add(path);
                     mAdapter.notifyDataSetInvalidated();

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

@@ -466,13 +466,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 if (mLoginUserId == null)
                     mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 final List<Friend> friends = FriendDao.getInstance().getFriends(mLoginUserId);
-                Log.i("wang", "friends =" + friends);
-                Log.i("wang", "friends mloginuserid=" + mLoginUserId);
-                // friends.clear();
                 getDataByDB(friends);
-                if (friends != null)
-                    Log.i("wang", "friends size()=" + friends.size());
-                Log.i("gongpegmign", friends.size() + "friends.size=");
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;

+ 0 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SwitchView.java

@@ -213,14 +213,6 @@ public class SwitchView extends View {
 
 
     private void drawRectCir(Canvas canvas, int radius, int leftCenterX, int rightCenterX, int centerY, Paint paint) {
-//        // left circle
-//        canvas.drawCircle(leftCenterX, centerY, radius, paint);
-//        //right circle
-//        canvas.drawCircle(rightCenterX, centerY, radius, paint);
-//        // center Rectangle
-//        if (rightCenterX > leftCenterX) {
-//            canvas.drawRect(leftCenterX, centerY - radius, rightCenterX, centerY + radius, paint);
-//        }
         canvas.drawRoundRect(new RectF(leftCenterX-radius, centerY-radius, rightCenterX+radius, centerY+radius), radius, radius, paint);
     }
 

+ 309 - 299
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/LocalVideoActivity.java

@@ -8,6 +8,7 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.provider.MediaStore.Video.Thumbnails;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -22,17 +23,17 @@ import com.nostra13.universalimageloader.core.ImageLoader;
 import com.roamer.slidelistview.SlideBaseAdapter;
 import com.roamer.slidelistview.SlideListView;
 import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.VideoFile;
 import com.xzjmyk.pm.activity.db.dao.VideoFileDao;
 import com.xzjmyk.pm.activity.ui.base.ActionBackActivity;
 import com.xzjmyk.pm.activity.ui.tool.VideoPlayActivity;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.util.ViewHolder;
-import com.xzjmyk.pm.activity.video.VideoRecordActivity;
+import com.xzjmyk.pm.activity.video.VideoActivity;
+import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -40,309 +41,318 @@ import java.util.List;
 
 /**
  * 本地视频选择界面
- * 
+ *
  * @author Dean Tao
  * @version 1.0
  */
 public class LocalVideoActivity extends ActionBackActivity {
 
-	private PullToRefreshSlideListView mPullToRefreshListView;
-	private List<VideoFile> mVideoFiles;
-	private LocalVideoAdapter mAdapter;
-
-	private int mAction = AppConstant.ACTION_NONE;
-	private Handler mHandler;
-
-	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		if (getIntent() != null) {
-			mAction = getIntent().getIntExtra(AppConstant.EXTRA_ACTION, AppConstant.ACTION_NONE);
-		}
-		setContentView(R.layout.layout_pullrefresh_list_slide);
-		mHandler = new Handler();
-		mVideoFiles = new ArrayList<VideoFile>();
-		mAdapter = new LocalVideoAdapter(this);
-		initView();
-
-	}
-	private void initView() {
-		getSupportActionBar().setTitle(R.string.local_video);
-		mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
-
-		View emptyView = LayoutInflater.from(mContext).inflate(R.layout.layout_list_empty_view, null);
-		mPullToRefreshListView.setEmptyView(emptyView);
-
-		mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
-		mPullToRefreshListView.setShowIndicator(false);
-
-		mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
-			@Override
-			public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
-				loadData();
-			}
-		});
-
-		mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
-			@Override
-			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-				if (mAction == AppConstant.ACTION_SELECT) {
-					VideoFile videoFile = mVideoFiles.get((int) id);
-					if (TextUtils.isEmpty(videoFile.getFilePath())) {
-						ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
-						return;
-					}
-					File file = new File(videoFile.getFilePath());
-					if (!file.exists()) {
-						ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
-						return;
-					}
-
-					Intent intent = new Intent();
-					intent.putExtra(AppConstant.EXTRA_SELECT_ID, videoFile.get_id());
-					intent.putExtra(AppConstant.EXTRA_FILE_PATH, videoFile.getFilePath());
-					intent.putExtra(AppConstant.EXTRA_TIME_LEN, videoFile.getFileLength());
-					setResult(RESULT_OK, intent);
-					finish();
-				}
-			}
-		});
-
-		mPullToRefreshListView.setAdapter(mAdapter);
-
-		loadData();
-	}
-
-	private void loadData() {
-		new Thread(new Runnable() {
-			@Override
-			public void run() {
-				long startTime = System.currentTimeMillis();
-				final List<VideoFile> videos = VideoFileDao.getInstance().getVideoFiles(MyApplication.getInstance().mLoginUser.getUserId());
-				long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
-				if (delayTime < 0) {
-					delayTime = 0;
-				}
-				mHandler.postDelayed(new Runnable() {
-					@Override
-					public void run() {
-						mVideoFiles.clear();
-						if (videos != null && videos.size() > 0) {
-							mVideoFiles.addAll(videos);
-						}
-						mAdapter.notifyDataSetChanged();
-						mPullToRefreshListView.onRefreshComplete();
-					}
-				}, delayTime);
-			}
-		}).start();
-	}
-
-	private boolean delete(VideoFile videoFile) {
-		boolean success = true;
-		String filePath = videoFile.getFilePath();
-		if (!TextUtils.isEmpty(filePath)) {
-			File file = new File(filePath);
-			if (file.exists()) {
-				success = file.delete();
-			}
-		}
-		if (success) {
-			mVideoFiles.remove(videoFile);
-			VideoFileDao.getInstance().deleteVideoFile(videoFile);
-			mAdapter.notifyDataSetChanged();
-		}
-		return success;
-	}
-
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-		getMenuInflater().inflate(R.menu.menu_add_icon, menu);
-		return super.onCreateOptionsMenu(menu);
-	}
-
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-		if (item.getItemId() == R.id.add_item) {
-			startActivityForResult(new Intent(LocalVideoActivity.this, VideoRecordActivity.class), 1);
-			return true;
-		}
-		return super.onOptionsItemSelected(item);
-	}
-
-	@Override
-	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-		if (requestCode == 1 && resultCode == RESULT_OK) {
-			if (data != null) {
-				String filePath = data.getStringExtra(VideoRecordActivity.EXTRA_RESULT_FILE_PATH);
-				long timeLen = data.getLongExtra(VideoRecordActivity.EXTRA_RESULT_TIME_LEN, 0);
-				if (timeLen <= 0) {
-					timeLen = 10 * 1000;// 数据出错,默认给个10s
-				}
-				long fizeSize = data.getLongExtra(VideoRecordActivity.EXTRA_RESULT_FILE_SIZE, 0);
-				if (fizeSize <= 0) {
-					fizeSize = 10 * 1024;// 数据出错,给个10k
-				}
-				VideoFile videoFile = new VideoFile();
-				videoFile.setCreateTime(TimeUtils.f_long_2_str(System.currentTimeMillis()));
-				videoFile.setFileLength(timeLen);
-				videoFile.setFileSize(fizeSize);
-				videoFile.setFilePath(filePath);
-				videoFile.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-				VideoFileDao.getInstance().addVideoFile(videoFile);
-				mVideoFiles.add(0, videoFile);
-				mAdapter.notifyDataSetChanged();
-			}
-		}
-	}
-
-	private class LocalVideoAdapter extends SlideBaseAdapter {
-
-		public LocalVideoAdapter(Context context) {
-			super(context);
-		}
-
-		@Override
-		public int getCount() {
-			return mVideoFiles.size();
-		}
-
-		@Override
-		public Object getItem(int position) {
-			return position;
-		}
-
-		@Override
-		public long getItemId(int position) {
-			return position;
-		}
-
-		@Override
-		public View getView(final int position, View convertView, ViewGroup parent) {
-			if (convertView == null) {
-				convertView = createConvertView(position);
-			}
-			ImageView thumbnail_img = ViewHolder.get(convertView, R.id.thumbnail_img);
-			TextView des_tv = ViewHolder.get(convertView, R.id.des_tv);
-			TextView create_time_tv = ViewHolder.get(convertView, R.id.create_time_tv);
-			TextView length_tv = ViewHolder.get(convertView, R.id.length_tv);
-			TextView size_tv = ViewHolder.get(convertView, R.id.size_tv);
-
-			TextView delete_tv = ViewHolder.get(convertView, R.id.delete_tv);
+    private PullToRefreshSlideListView mPullToRefreshListView;
+    private List<VideoFile> mVideoFiles;
+    private LocalVideoAdapter mAdapter;
+
+    private int mAction = AppConstant.ACTION_NONE;
+    private Handler mHandler;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (getIntent() != null) {
+            mAction = getIntent().getIntExtra(AppConstant.EXTRA_ACTION, AppConstant.ACTION_NONE);
+        }
+        setContentView(R.layout.layout_pullrefresh_list_slide);
+        mHandler = new Handler();
+        mVideoFiles = new ArrayList<VideoFile>();
+        mAdapter = new LocalVideoAdapter(this);
+        initView();
+
+    }
+
+    private void initView() {
+        getSupportActionBar().setTitle(R.string.local_video);
+        mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
+
+        View emptyView = LayoutInflater.from(mContext).inflate(R.layout.layout_list_empty_view, null);
+        mPullToRefreshListView.setEmptyView(emptyView);
+
+        mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
+        mPullToRefreshListView.setShowIndicator(false);
+
+        mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
+            @Override
+            public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
+                loadData();
+            }
+        });
+
+        mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                if (mAction == AppConstant.ACTION_SELECT) {
+                    VideoFile videoFile = mVideoFiles.get((int) id);
+                    if (TextUtils.isEmpty(videoFile.getFilePath())) {
+                        ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
+                        return;
+                    }
+                    File file = new File(videoFile.getFilePath());
+                    if (!file.exists()) {
+                        ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
+                        return;
+                    }
+
+                    Intent intent = new Intent();
+                    intent.putExtra(AppConstant.EXTRA_SELECT_ID, videoFile.get_id());
+                    intent.putExtra(AppConstant.EXTRA_FILE_PATH, videoFile.getFilePath());
+                    intent.putExtra(AppConstant.EXTRA_TIME_LEN, videoFile.getFileLength());
+                    setResult(RESULT_OK, intent);
+                    finish();
+                }
+            }
+        });
+
+        mPullToRefreshListView.setAdapter(mAdapter);
+
+        loadData();
+    }
+
+    private void loadData() {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                long startTime = System.currentTimeMillis();
+                final List<VideoFile> videos = VideoFileDao.getInstance().getVideoFiles(MyApplication.getInstance().mLoginUser.getUserId());
+                long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
+                if (delayTime < 0) {
+                    delayTime = 0;
+                }
+                mHandler.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        mVideoFiles.clear();
+                        if (videos != null && videos.size() > 0) {
+                            mVideoFiles.addAll(videos);
+                        }
+                        mAdapter.notifyDataSetChanged();
+                        mPullToRefreshListView.onRefreshComplete();
+                    }
+                }, delayTime);
+            }
+        }).start();
+    }
+
+    private boolean delete(VideoFile videoFile) {
+        boolean success = true;
+        String filePath = videoFile.getFilePath();
+        if (!TextUtils.isEmpty(filePath)) {
+            File file = new File(filePath);
+            if (file.exists()) {
+                success = file.delete();
+            }
+        }
+        if (success) {
+            mVideoFiles.remove(videoFile);
+            VideoFileDao.getInstance().deleteVideoFile(videoFile);
+            mAdapter.notifyDataSetChanged();
+        }
+        return success;
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_add_icon, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.add_item) {
+//			startActivityForResult(new Intent(LocalVideoActivity.this, VideoRecordActivity.class), 1);
+            startActivityForResult(new Intent(LocalVideoActivity.this, VideoActivity.class), 1);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == 1 && resultCode == RESULT_OK) {
+            if (data != null) {
+                //转回来三个数据
+                String filePath = data.getStringExtra(VideoActivity.EXTRA_RESULT_FILE_PATH);
+                long timeLen = data.getIntExtra(VideoActivity.EXTRA_RESULT_TIME_LEN, 0);
+                long fizeSize = data.getLongExtra(VideoActivity.EXTRA_RESULT_FILE_SIZE, 0);
+                if (timeLen <= 0) {
+                    timeLen = 10 * 1000;// 数据出错,默认给个10s
+                }else{
+                    timeLen *= 1000;
+                }
+
+                if (fizeSize <= 0) {
+                    fizeSize = 10 * 1024;// 数据出错,给个10k
+                }
+                VideoFile videoFile = new VideoFile();
+
+                videoFile.setCreateTime(TimeUtils.f_long_2_str(System.currentTimeMillis()));
+                videoFile.setFileLength(timeLen);
+                videoFile.setFileSize(fizeSize);
+                videoFile.setFilePath(filePath);
+                videoFile.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+
+                Log.i("gong", filePath);
+                VideoFileDao.getInstance().addVideoFile(videoFile);
+                mVideoFiles.add(0, videoFile);
+                mAdapter.notifyDataSetChanged();
+            }
+        }
+    }
+
+    private class LocalVideoAdapter extends SlideBaseAdapter {
+
+        public LocalVideoAdapter(Context context) {
+            super(context);
+        }
+
+        @Override
+        public int getCount() {
+            return mVideoFiles.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return position;
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(final int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = createConvertView(position);
+            }
+            ImageView thumbnail_img = ViewHolder.get(convertView, R.id.thumbnail_img);
+            TextView des_tv = ViewHolder.get(convertView, R.id.des_tv);
+            TextView create_time_tv = ViewHolder.get(convertView, R.id.create_time_tv);
+            TextView length_tv = ViewHolder.get(convertView, R.id.length_tv);
+            TextView size_tv = ViewHolder.get(convertView, R.id.size_tv);
+
+            TextView delete_tv = ViewHolder.get(convertView, R.id.delete_tv);
 
 			/* 获取缩略图显示 */
-			Bitmap bitmap = null;
-			String videoUrl = mVideoFiles.get(position).getFilePath();
-			if (!TextUtils.isEmpty(videoUrl)) {
-				bitmap = ImageLoader.getInstance().getMemoryCache().get(videoUrl);
-				if (bitmap == null || bitmap.isRecycled()) {
-					bitmap = ThumbnailUtils.createVideoThumbnail(videoUrl, Thumbnails.MINI_KIND);
-					if (bitmap != null) {
-						ImageLoader.getInstance().getMemoryCache().put(videoUrl, bitmap);
-					}
-				}
-			}
-			if (bitmap != null && !bitmap.isRecycled()) {
-				thumbnail_img.setImageBitmap(bitmap);
-			} else {
-				thumbnail_img.setImageBitmap(null);
-			}
-
-			thumbnail_img.setOnClickListener(new View.OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					VideoFile videoFile = mVideoFiles.get(position);
-					if (videoFile == null) {
-						return;
-					}
-					if (TextUtils.isEmpty(videoFile.getFilePath())) {
-						ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
-						return;
-					}
-					File file = new File(videoFile.getFilePath());
-					if (!file.exists()) {
-						ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
-						delete(mVideoFiles.get(position));
-						return;
-					}
-					Intent intent = new Intent(LocalVideoActivity.this, VideoPlayActivity.class);
-					intent.putExtra(AppConstant.EXTRA_FILE_PATH, videoFile.getFilePath());
-					startActivity(intent);
-				}
-			});
+            Bitmap bitmap = null;
+            String videoUrl = mVideoFiles.get(position).getFilePath();
+            if (!TextUtils.isEmpty(videoUrl)) {
+                bitmap = ImageLoader.getInstance().getMemoryCache().get(videoUrl);
+                if (bitmap == null || bitmap.isRecycled()) {
+                    bitmap = ThumbnailUtils.createVideoThumbnail(videoUrl, Thumbnails.MINI_KIND);
+                    if (bitmap != null) {
+                        ImageLoader.getInstance().getMemoryCache().put(videoUrl, bitmap);
+                    }
+                }
+            }
+            if (bitmap != null && !bitmap.isRecycled()) {
+                thumbnail_img.setImageBitmap(bitmap);
+            } else {
+                thumbnail_img.setImageBitmap(null);
+            }
+
+            thumbnail_img.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    VideoFile videoFile = mVideoFiles.get(position);
+                    if (videoFile == null) {
+                        return;
+                    }
+                    if (TextUtils.isEmpty(videoFile.getFilePath())) {
+                        ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
+                        return;
+                    }
+                    File file = new File(videoFile.getFilePath());
+                    if (!file.exists()) {
+                        ToastUtil.showToast(LocalVideoActivity.this, R.string.video_file_not_exist);
+                        delete(mVideoFiles.get(position));
+                        return;
+                    }
+                    Intent intent = new Intent(LocalVideoActivity.this, VideoPlayActivity.class);
+                    intent.putExtra(AppConstant.EXTRA_FILE_PATH, videoFile.getFilePath());
+                    startActivity(intent);
+                }
+            });
 
 			/* 其他信息 */
-			String des = mVideoFiles.get(position).getDesc();
-			if (TextUtils.isEmpty(des)) {
-				des_tv.setVisibility(View.GONE);
-			} else {
-				des_tv.setVisibility(View.VISIBLE);
-				des_tv.setText(des);
-			}
-			create_time_tv.setText(mVideoFiles.get(position).getCreateTime());
-			length_tv.setText(parserTimeLength(mVideoFiles.get(position).getFileLength()));
-			size_tv.setText(parserFileSize(mVideoFiles.get(position).getFileSize()));
-
-			delete_tv.setOnClickListener(new View.OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					if (!delete(mVideoFiles.get(position))) {
-						ToastUtil.showToast(LocalVideoActivity.this, R.string.delete_failed);
-					}
-				}
-			});
-			return convertView;
-		}
-
-		@Override
-		public int getFrontViewId(int position) {
-			return R.layout.row_local_video;
-		}
-
-		@Override
-		public int getLeftBackViewId(int position) {
-			return 0;
-		}
-
-		@Override
-		public int getRightBackViewId(int position) {
-			return R.layout.row_item_delete;
-		}
-
-	}
-
-	private static String parserFileSize(long size) {
-		float temp = size / (float) 1024;
-		if (temp < 1024) {
-			return (int) temp + "KB";
-		}
-		temp = temp / 1024;
-		if (temp < 1024) {
-			return ((int) (temp * 100)) / (float) 100 + "M";
-		}
-		temp = temp / 1024;
-		return ((int) (temp * 100)) / (float) 100 + "G";
-	}
-
-	private String parserTimeLength(long length) {
-		int intLength = (int) (length / 1000);// 毫秒级转换为秒
-		int hour = intLength / 3600;
-		int temp = intLength - (hour * 3600);
-		int minute = temp / 60;
-		temp = temp - (minute * 60);
-		int second = temp;
-
-		StringBuilder sb = new StringBuilder();
-		if (hour != 0) {
-			sb.append(hour < 10 ? ("0" + hour) : hour).append(getString(R.string.hour));
-		}
-		if (minute != 0) {
-			sb.append(minute < 10 ? ("0" + minute) : minute).append(getString(R.string.minute));
-		}
-		if (second != 0) {
-			sb.append(second < 10 ? ("0" + second) : second).append(getString(R.string.second));
-		}
-		return sb.toString();
-	}
+            String des = mVideoFiles.get(position).getDesc();
+            if (TextUtils.isEmpty(des)) {
+                des_tv.setVisibility(View.GONE);
+            } else {
+                des_tv.setVisibility(View.VISIBLE);
+                des_tv.setText(des);
+            }
+            create_time_tv.setText(mVideoFiles.get(position).getCreateTime());
+            length_tv.setText(parserTimeLength(mVideoFiles.get(position).getFileLength()));
+            size_tv.setText(parserFileSize(mVideoFiles.get(position).getFileSize()));
+
+            delete_tv.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (!delete(mVideoFiles.get(position))) {
+                        ToastUtil.showToast(LocalVideoActivity.this, R.string.delete_failed);
+                    }
+                }
+            });
+            return convertView;
+        }
+
+        @Override
+        public int getFrontViewId(int position) {
+            return R.layout.row_local_video;
+        }
+
+        @Override
+        public int getLeftBackViewId(int position) {
+            return 0;
+        }
+
+        @Override
+        public int getRightBackViewId(int position) {
+            return R.layout.row_item_delete;
+        }
+
+    }
+
+    private static String parserFileSize(long size) {
+        float temp = size / (float) 1024;
+        if (temp < 1024) {
+            return (int) temp + "KB";
+        }
+        temp = temp / 1024;
+        if (temp < 1024) {
+            return ((int) (temp * 100)) / (float) 100 + "M";
+        }
+        temp = temp / 1024;
+        return ((int) (temp * 100)) / (float) 100 + "G";
+    }
+
+    private String parserTimeLength(long length) {
+        int intLength = (int) (length / 1000);// 毫秒级转换为秒
+        int hour = intLength / 3600;
+        int temp = intLength - (hour * 3600);
+        int minute = temp / 60;
+        temp = temp - (minute * 60);
+        int second = temp;
+
+        StringBuilder sb = new StringBuilder();
+        if (hour != 0) {
+            sb.append(hour < 10 ? ("0" + hour) : hour).append(getString(R.string.hour));
+        }
+        if (minute != 0) {
+            sb.append(minute < 10 ? ("0" + minute) : minute).append(getString(R.string.minute));
+        }
+        if (second != 0) {
+            sb.append(second < 10 ? ("0" + second) : second).append(getString(R.string.second));
+        }
+        return sb.toString();
+    }
 
 }

+ 4 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java

@@ -6,7 +6,6 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Environment;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.Button;
@@ -187,10 +186,10 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
 
     //分享单张图片
     public void shareSingleImage() {
-        String imagePath = Environment.getExternalStorageDirectory() + "/raw/test.jpg";
-        //由文件得到uri
-//        Uri imageUri =Uri.parse(imagePath);
-        String str = "android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.test;
+//        String imagePath = Environment.getExternalStorageDirectory() + "/raw/test.jpg";
+//        //由文件得到uri
+////        Uri imageUri =Uri.parse(imagePath);
+//        String str = "android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.test;
 //        Uri imageUri=  Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.test);
 //        Intent shareIntent = new Intent();
 //        shareIntent.setAction(Intent.ACTION_SEND);

+ 52 - 44
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -12,6 +12,7 @@ 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;
 import android.widget.AdapterView;
@@ -154,7 +155,7 @@ public class MessageFragment extends EasyFragment {
     @Override
     public void onResume() {
         super.onResume();
-            if (mNeedUpdate) {
+        if (mNeedUpdate) {
             mNeedUpdate = false;
             loadData();
             Log.i("MessageFragment", "加载流程数据...........................");
@@ -169,6 +170,7 @@ public class MessageFragment extends EasyFragment {
     }
 
     private void initView() {
+        initHeaderView();
         mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
         mClearEditText.addTextChangedListener(new TextWatcher() {
             @Override
@@ -201,9 +203,7 @@ public class MessageFragment extends EasyFragment {
         mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
         mPullToRefreshListView.setShowIndicator(false);
         mPullToRefreshListView.setMode(Mode.PULL_FROM_START);
-
         mAdapter = new NearlyMessageAdapter(getActivity());
-
         mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
 
         mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<SlideListView>() {
@@ -255,6 +255,13 @@ public class MessageFragment extends EasyFragment {
         });
     }
 
+    private void initHeaderView() {
+        //将头部四个放在这里
+
+
+
+    }
+
     //by gongpm 刷新数据提取方法
     private void refreshUI() {
         upDataFriend();
@@ -277,7 +284,7 @@ public class MessageFragment extends EasyFragment {
         HashMap<String, String> params = new HashMap<String, String>();
         params.put("access_token", MyApplication.getInstance().mAccessToken);
         Log.i("Arison", "MessageFragment:upDataFriend:279:" + MyApplication.getInstance().mAccessToken);
-        Log.i("Arison","MessageFragment:upDataFriend:280:"+ MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
+        Log.i("Arison", "MessageFragment:upDataFriend:280:" + MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
         StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
                 MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new ErrorListener() {
             @Override
@@ -324,7 +331,7 @@ public class MessageFragment extends EasyFragment {
 
     /**
      * 请求加载新的筛选条件的数据
-     * <p/>
+     * <p>
      * 是下拉刷新,还是上拉加载
      */
     private void loadData() {
@@ -360,7 +367,7 @@ public class MessageFragment extends EasyFragment {
 
                             }
                         }
-                        Log.i("Arison","MessageFragment:run:360:"+JSON.toJSONString(mFriendList));
+                        Log.i("Arison", "MessageFragment:run:360:" + JSON.toJSONString(mFriendList));
                         mAdapter.notifyDataSetChanged();
                         mPullToRefreshListView.onRefreshComplete();
                     }
@@ -543,7 +550,7 @@ public class MessageFragment extends EasyFragment {
                     avatar_img.setImageResource(R.drawable.qunliao);
                 } else {
                     AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, false);// 目前在备注名放房间的创建者Id
-                   // avatar_img.setImageResource(R.drawable.qunliao);
+                    // avatar_img.setImageResource(R.drawable.qunliao);
                 }
             }
             nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
@@ -889,46 +896,47 @@ public class MessageFragment extends EasyFragment {
     private void updateNews(Message msg) {
         final String result = msg.getData().getString("result");
         new Handler().postDelayed(new Runnable() {
-           @Override
-           public void run() {
-               int size;
-               int count;
-               NewsEntity news = JSON.parseObject(result, NewsEntity.class);
-               size = 0;
-               if (news != null) {
-                   size = news.getData().size();
-               }
-               count = 0;
-               for (int i = 0; i < size; i++) {
-                   if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
-                       if (((int) news.getData().get(i).getSTATUS()) != -1) {
-                           count++;
-                       }
-                   } else {
-                       count++;//数据为空,算是未读
-                   }
-               }
-               if (count != 0) {
-                   Log.i("MessageFragment", "新闻 标注红点" + count);
-                   String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                   FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
-                   FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                   FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NEWS, count);
-                   updateNewsMsg("收到" + count + "条新闻");
-                   updateZhihuMsg("通知,公告,新闻信息");
-               } else {
-                   updateNewsMsg("暂无未读新闻");
-                   updateZhihuMsg("通知,公告,新闻信息");
-                   String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                   FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
-               }
-               MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
-               loadData();
-           }
-       }, 50);
+            @Override
+            public void run() {
+                int size;
+                int count;
+                NewsEntity news = JSON.parseObject(result, NewsEntity.class);
+                size = 0;
+                if (news != null) {
+                    size = news.getData().size();
+                }
+                count = 0;
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
+                        if (((int) news.getData().get(i).getSTATUS()) != -1) {
+                            count++;
+                        }
+                    } else {
+                        count++;//数据为空,算是未读
+                    }
+                }
+                if (count != 0) {
+                    Log.i("MessageFragment", "新闻 标注红点" + count);
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
+                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NEWS, count);
+                    updateNewsMsg("收到" + count + "条新闻");
+                    updateZhihuMsg("通知,公告,新闻信息");
+                } else {
+                    updateNewsMsg("暂无未读新闻");
+                    updateZhihuMsg("通知,公告,新闻信息");
+                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
+                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
+                }
+                MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
+                loadData();
+            }
+        }, 50);
     }
 
     private int processMsgTime;
+
     public void updateProcessMsg(String msg) {
         String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
         ChatMessage chatMessage = new ChatMessage();

+ 1 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -25,7 +25,6 @@ import java.util.ArrayList;
 
 public class SubscriptionActivity extends BaseActivity {
     private static final int TAG_BIG = 1;
-    private static final int TAG_SUB = 2;
     private PullToRefreshListView listView;
     private ArrayList<SubscriptionMessage> SubscriptionMessages;
     private SubscriptionAdapter adapter;
@@ -68,7 +67,7 @@ public class SubscriptionActivity extends BaseActivity {
             SubscriptionMessages.add(message);
         }
         long i = SubscriptionDao.getInstance().addMessage(SubscriptionMessages);
-        Log.i("gongpengming", "i=" + i);
+
     }
 
     private void init2() {

+ 45 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/MultiImagePreviewActivity.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui.tool;
 
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Bundle;
 import android.support.v4.view.PagerAdapter;
@@ -15,6 +16,8 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.nostra13.universalimageloader.core.ImageLoader;
+import com.nostra13.universalimageloader.core.assist.FailReason;
+import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.ActionBackActivity;
@@ -24,6 +27,8 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
+import uk.co.senab.photoview.PhotoViewAttacher;
+
 /**
  * 图片集的预览
  * 
@@ -35,7 +40,7 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 	private ArrayList<String> mImages;
 	private int mPosition;
 	private boolean mChangeSelected;
-
+	private PhotoViewAttacher mAttacher;
 	private ViewPager mViewPager;
 	private CheckBox mCheckBox;
 	private TextView mIndexCountTv;
@@ -55,6 +60,7 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 		}
 		getSupportActionBar().hide();
 		setContentView(R.layout.activity_images_preview);
+		setNotTouchEvent(true);
 		initView();
 	}
 
@@ -117,7 +123,6 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 			public void onPageScrollStateChanged(int arg0) {
 			}
 		});
-
 	}
 
 	public void updateSelectIndex(final int index) {
@@ -205,7 +210,8 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 				break;
 			case UNKNOWN:// 如果不知道什么类型,且不为空,就当做是一个本地文件的路径来加载
 				if (!TextUtils.isEmpty(imageUrl)) {
-					ImageLoader.getInstance().displayImage(Uri.fromFile(new File(imageUrl)).toString(), (ImageView) view);
+					ImageLoader.getInstance().displayImage(Uri.fromFile(new File(imageUrl)).toString(), (ImageView) view,mImageLoadingListener);
+//					ImageLoader.getInstance().displayImage(imageUrl, (ImageView) view, mImageLoadingListener);
 				}
 				break;
 			default:
@@ -213,6 +219,8 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 				break;
 			}
 			container.addView(view);
+
+
 			return view;
 		}
 
@@ -227,5 +235,39 @@ public class MultiImagePreviewActivity extends ActionBackActivity {
 		}
 
 	}
+	private ImageLoadingListener mImageLoadingListener = new ImageLoadingListener() {
+		@Override
+		public void onLoadingStarted(String arg0, View arg1) {
+
+		}
+
+		@Override
+		public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
+
+		}
+
+		@Override
+		public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
+			mAttacher=new PhotoViewAttacher((ImageView) arg1);
+			mAttacher.update();
+
+			mAttacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
+				@Override
+				public void onPhotoTap(View view, float x, float y) {
+					finish();
+					overridePendingTransition(0, R.anim.alpha_scale_out);
+				}
+
+				@Override
+				public void onOutsidePhotoTap() {
 
+				}
+			});
+		}
+
+		@Override
+		public void onLoadingCancelled(String arg0, View arg1) {
+
+		}
+	};
 }

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/SingleImagePreviewActivity.java

@@ -83,7 +83,6 @@ public class SingleImagePreviewActivity extends ActionBackActivity {
 			// 其他 drawable asset类型不处理
 			break;
 		}
-		Log.i("wang","end mImageUri:"+mImageUri);
 		if (showProgress) {
 			ImageLoader.getInstance().displayImage(mImageUri, mImageView, mImageLoadingListener);
 		} else {
@@ -103,14 +102,12 @@ public class SingleImagePreviewActivity extends ActionBackActivity {
 
 	@Override
 	public void onBackPressed() {
-		Log.i("gongpengmingIMAGE","onBackPressed");
 		finish();
 		overridePendingTransition(0, R.anim.alpha_scale_out);
 	}
 
 	@Override
 	protected boolean onHomeAsUp() {
-		Log.i("gongpengmingIMAGE","onBackPressed");
 		finish();
 		overridePendingTransition(0, R.anim.alpha_scale_out);
 		return true;

+ 1 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CameraUtil.java

@@ -66,7 +66,6 @@ public final class CameraUtil {
 
 	/**
 	 * invoke the system Camera app and capture a image。 you can received the
-	 * capture result in {@link Activity.onActivityResult(int,int,Intent)}。 If
 	 * successed,you can use the outputUri to get the image
 	 * 
 	 * @param activity
@@ -115,7 +114,7 @@ public final class CameraUtil {
 	}
 
 	/**
-	 * 调用系统图库选择照片 使用 {@link getImagePathFromUri}方法从
+	 * 调用系统图库选择照片 使用 {@link }方法从
 	 * onActivityResult的data.getData()中解析获得的Uri
 	 * 
 	 * @param activity

+ 0 - 17
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ViewAlphaUtil.java

@@ -1,17 +0,0 @@
-package com.xzjmyk.pm.activity.util;
-
-/**
- * Created by gongpengming on 2016/4/8.
- */
-public class ViewAlphaUtil {
-
-//    public static void setViewAlpha(View view) {
-//        view.getBackground().setAlpha(30);
-//    }
-
-//    public static void setViewAlpha(View view, int alpha) {
-//        view.getBackground().setAlpha(alpha);
-//    }
-
-
-}

+ 302 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/video/VideoActivity.java

@@ -0,0 +1,302 @@
+package com.xzjmyk.pm.activity.video;
+
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.hardware.Camera;
+import android.media.CamcorderProfile;
+import android.media.MediaRecorder;
+import android.os.Bundle;
+import android.os.CountDownTimer;
+import android.view.MotionEvent;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.util.FileUtil;
+
+import java.io.File;
+import java.io.IOException;
+
+
+/**
+ * Created by gongpm on 2016/6/8.
+ */
+public class VideoActivity extends Activity implements MediaRecorder.OnErrorListener {
+    private Camera mCamera;
+    private TextView tvTime;
+    private Button btn;
+    private CountDownTimer countDownTimer;
+    private SurfaceView surfaceView;
+    private SurfaceHolder mSurfaceHolder;
+    private MediaRecorder mMediaRecorder;
+    private File mVecordFile;
+    private int timeLen = 0;  //时间长度
+    public static final String EXTRA_RESULT_FILE_PATH = "result_file_path";
+    public static final String EXTRA_RESULT_TIME_LEN = "result_time_len";
+    public static final String EXTRA_RESULT_FILE_SIZE = "result_file_size";
+    private int MAX_NUM = 30;
+    private int SPEED = 1;
+    private String filePath;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
+        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        setContentView(R.layout.activity_video);
+        surfaceView = (SurfaceView) findViewById(R.id.lib_surface_view);
+        tvTime = (TextView) findViewById(R.id.lib_video_tv_time);
+        btn = (Button) findViewById(R.id.btn);
+        btn.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                if (event.getAction() == MotionEvent.ACTION_DOWN) {
+                    beginHandler(MAX_NUM, SPEED);
+                    record();
+                } else if (event.getAction() == MotionEvent.ACTION_UP) {
+                    countDownTimer.cancel();
+                    tvTime.setText("录制完成");
+                    stop();
+                }
+                return false;
+            }
+        });
+        mSurfaceHolder = surfaceView.getHolder();
+        mSurfaceHolder.addCallback(new CustomCallBack());
+
+    }
+
+    private void doTheEnd() {
+        //TODO 拍摄成功后最后操作
+        Intent intent = new Intent();
+        intent.putExtra(EXTRA_RESULT_FILE_PATH, filePath);
+        intent.putExtra(EXTRA_RESULT_TIME_LEN, (MAX_NUM - timeLen));
+        intent.putExtra(EXTRA_RESULT_FILE_SIZE, mVecordFile.length());
+        setResult(RESULT_OK, intent);
+        finish();
+    }
+
+
+    public void beginHandler(final int max_num, int speed) {
+        countDownTimer = new CountDownTimer(max_num * 1000, speed * 1000) {
+            @Override
+            public void onTick(long millisUntilFinished) {
+                timeLen = (int) (millisUntilFinished / 1000);
+                tvTime.setText("倒计时:" + timeLen);
+            }
+
+            @Override
+            public void onFinish() {
+                tvTime.setText("录制完成");
+                stop();
+            }
+        };
+        countDownTimer.start();
+    }
+
+    /**
+     * 初始化摄像头
+     */
+    private void initCamera() throws IOException {
+        if (mCamera != null) {
+            freeCameraResource();
+        }
+        try {
+            mCamera = Camera.open();
+        } catch (Exception e) {
+            freeCameraResource();
+        }
+        if (mCamera == null)
+            return;
+        setCameraParams();
+        mCamera.setDisplayOrientation(90);
+        mCamera.setPreviewDisplay(mSurfaceHolder);
+        mCamera.startPreview();
+    }
+
+    /**
+     * 设置摄像头为竖屏
+     */
+    private void setCameraParams() {
+        if (mCamera != null) {
+            Camera.Parameters params = mCamera.getParameters();
+            params.set("orientation", "portrait");
+            mCamera.setParameters(params);
+        }
+    }
+
+    /**
+     * 保存的位置处理
+     */
+    private void createRecordDir() {
+        //录制的视频保存文件夹
+//        File sampleDir = new File(Environment.getExternalStorageDirectory()
+//                + File.separator + "ysb/video/");//录制视频的保存地址
+//        if (!sampleDir.exists()) {
+//            sampleDir.mkdirs();
+//        }
+//        File vecordDir = sampleDir;
+        filePath = FileUtil.getRandomVideoFilePath();
+        // 创建文件
+        // mp4格式的录制的视频文件
+//            mVecordFile = File.createTempFile("recording", ".mp4", vecordDir);
+        mVecordFile = new File(filePath);
+    }
+
+    /**
+     * 开始录制视频
+     * 视频储存位置
+     */
+    public void record() {
+        createRecordDir();
+        try {
+            initCamera();
+            if (initRecord() == true) {
+                mMediaRecorder.start();
+            } else {
+                releaseRecord();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 停止拍摄
+     */
+    public void stop() {
+        stopRecord();
+        releaseRecord();
+        freeCameraResource();
+        doTheEnd();
+
+    }
+
+
+    /**
+     * 停止录制
+     */
+    public void stopRecord() {
+        if (mMediaRecorder != null) {
+            try {
+                mMediaRecorder.stop();
+                mMediaRecorder.reset();
+            } catch (IllegalStateException e) {
+                e.printStackTrace();
+            } catch (RuntimeException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * 释放资源
+     */
+    private void releaseRecord() {
+        if (mMediaRecorder != null) {
+            mMediaRecorder.reset();
+            mMediaRecorder = null;
+            if (mCamera != null)
+                mCamera.lock();
+        }
+    }
+
+    /**
+     * 释放摄像头资源
+     */
+    private void freeCameraResource() {
+        if (mCamera != null) {
+            mCamera.setPreviewCallback(null);
+            mCamera.stopPreview();
+            mCamera.release();
+            mCamera = null;
+        }
+    }
+
+    /**
+     * 初始化
+     *
+     * @throws IOException
+     */
+    @SuppressLint("NewApi")
+    private boolean initRecord() throws IOException {
+        mMediaRecorder = new MediaRecorder();
+        if (mCamera == null) {
+            return false;
+        }
+        mCamera.unlock();
+        mMediaRecorder.setCamera(mCamera);
+        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
+        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
+        CamcorderProfile highCameraProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
+        mMediaRecorder.setProfile(highCameraProfile);
+        mMediaRecorder.setMaxDuration(100000); // MAXDuration 10 seconds
+        mMediaRecorder.setMaxFileSize(20000000); // MAXSIZE 20 megabytes
+        mMediaRecorder.setOrientationHint(90);// 输出旋转90度,保持竖屏录制
+        if (mVecordFile == null) {
+            createRecordDir();
+        }
+        mMediaRecorder.setOutputFile(mVecordFile.getAbsolutePath());
+        mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
+        try {
+            mMediaRecorder.prepare();
+        } catch (IllegalStateException e) {
+            releaseRecord();
+            return false;
+        } catch (IOException e) {
+            releaseRecord();
+            return false;
+        }
+        return true;
+    }
+
+
+    @Override
+    public void onError(MediaRecorder mr, int what, int extra) {
+        try {
+            if (mr != null)
+                mr.reset();
+        } catch (IllegalStateException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 视频拍摄回调
+     */
+    class CustomCallBack implements SurfaceHolder.Callback {
+
+        @Override
+        public void surfaceCreated(SurfaceHolder holder) {
+            try {
+                initCamera();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+        @Override
+        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+
+        }
+
+        @Override
+        public void surfaceDestroyed(SurfaceHolder holder) {
+            freeCameraResource();
+        }
+    }
+}

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/video/VideoRecordActivity.java

@@ -175,9 +175,11 @@ public class VideoRecordActivity extends Activity {
 			ToastUtil.showToast(this, R.string.record_succ);
 			// 录制成功,返回数据
 			Intent intent = new Intent();
+
 			intent.putExtra(EXTRA_RESULT_FILE_PATH, file.getAbsolutePath());
 			intent.putExtra(EXTRA_RESULT_TIME_LEN, timeLen);
 			intent.putExtra(EXTRA_RESULT_FILE_SIZE, file.length());
+
 			setResult(RESULT_OK, intent);
 			finish();
 		}

+ 92 - 89
WeiChat/src/main/java/com/xzjmyk/pm/activity/volley/Result.java

@@ -2,95 +2,98 @@ package com.xzjmyk.pm.activity.volley;
 
 import android.content.Context;
 import android.text.TextUtils;
+import android.util.Log;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.xzjmyk.pm.activity.R;
 
 public class Result {
-	/**
-	 * 通用的Http Result Code http 请求返回的结果码 <br/>
-	 * 0表示一般性错误</br> 1-100表示成功</br> 大于100000表示一些详细的错误</br>
-	 */
-	public final static int CODE_ERROE = 0;// 未知的错误 或者系统内部错误
-	public final static int CODE_SUCCESS = 1;// 正确的Http请求返回状态码
-	public final static int CODE_ARGUMENT_ERROR1 = 1010101;// 请求参数验证失败,缺少必填参数或参数错误
-	public final static int CODE_ARGUMENT_ERROR2 = 1010102;// 缺少请求参数:%1$s
-
-	public final static int CODE_INTERNAL_ERROR = 1020101;// 接口内部异常
-	public final static int CODE_NO_TOKEN = 1030101;// 缺少访问令牌
-	public final static int CODE_TOKEN_ERROR = 1030102;// 访问令牌过期或无效
-
-	/* 登陆接口的Http Result Code */
-	public final static int CODE_ACCOUNT_INEXISTENCE = 1040101;// 帐号不存在
-	public final static int CODE_ACCOUNT_ERROE = 1040102;// 帐号或密码错误
-
-	public static final String RESULT_CODE = "resultCode";
-	public static final String RESULT_MSG = "resultMsg";
-	public static final String DATA = "data";
-
-	private int resultCode;
-	private String resultMsg;
-	//private JSONObject jsonObject;//返回响应正文数据
-	private String resultData;//响应正文
-
-	public static boolean defaultParser(Context context, Result result, boolean showToast) {
-		if (result == null) {
-			if (showToast) {
-				Toast.makeText(context, context.getString(R.string.data_exception), Toast.LENGTH_SHORT).show();
-			}
-			return false;
-		}
-		if (result.resultCode == CODE_SUCCESS) {// 成功
-			return true;
-		} else if (result.resultCode == CODE_NO_TOKEN) {// 缺少参数Token
-			//TODO 发出异常登录的广播
-
+    /**
+     * 通用的Http Result Code http 请求返回的结果码 <br/>
+     * 0表示一般性错误</br> 1-100表示成功</br> 大于100000表示一些详细的错误</br>
+     */
+    public final static int CODE_ERROE = 0;// 未知的错误 或者系统内部错误
+    public final static int CODE_SUCCESS = 1;// 正确的Http请求返回状态码
+    public final static int CODE_ARGUMENT_ERROR1 = 1010101;// 请求参数验证失败,缺少必填参数或参数错误
+    public final static int CODE_ARGUMENT_ERROR2 = 1010102;// 缺少请求参数:%1$s
+
+    public final static int CODE_INTERNAL_ERROR = 1020101;// 接口内部异常
+    public final static int CODE_NO_TOKEN = 1030101;// 缺少访问令牌
+    public final static int CODE_TOKEN_ERROR = 1030102;// 访问令牌过期或无效
+
+    /* 登陆接口的Http Result Code */
+    public final static int CODE_ACCOUNT_INEXISTENCE = 1040101;// 帐号不存在
+    public final static int CODE_ACCOUNT_ERROE = 1040102;// 帐号或密码错误
+
+    public static final String RESULT_CODE = "resultCode";
+    public static final String RESULT_MSG = "resultMsg";
+    public static final String DATA = "data";
+
+    private int resultCode;
+    private String resultMsg;
+    //private JSONObject jsonObject;//返回响应正文数据
+    private String resultData;//响应正文
+
+    public static boolean defaultParser(Context context, Result result, boolean showToast) {
+        if (result == null) {
+            if (showToast) {
+                Toast.makeText(context, context.getString(R.string.data_exception), Toast.LENGTH_SHORT).show();
+            }
+            return false;
+        }
+        if (result.resultCode == CODE_SUCCESS) {// 成功
+            return true;
+        } else if (result.resultCode == CODE_NO_TOKEN) {// 缺少参数Token
+            //TODO 发出异常登录的广播
+            Log.i("gongpengming", "发出异常登录的广播1");
 //			LoginHelper.broadcastToken(context);
 //			LoginHelper.broadcastConflict(context);
-			if (showToast)
-				showResultToast(context, result);
-			return false;
-		} else if (result.resultCode == CODE_TOKEN_ERROR) {// Token过期或错误
-			//TODO 发出异常登录的广播
+            if (showToast)
+                showResultToast(context, result);
+            return false;
+        } else if (result.resultCode == CODE_TOKEN_ERROR) {// Token过期或错误
+            //TODO 发出异常登录的广播
+            Log.i("gongpengming", "发出异常登录的广播2");
 //			LoginHelper.broadcastToken(context);
 //			LoginHelper.broadcastConflict(context);
-			if (showToast)
-				showResultToast(context, result);
-			return false;
-		} else {
-			if (showToast){
-				//TODO 返回错误
-				showResultToast(context, result);
-			}
-			return false;
-		}
-	}
-
-	private static void showResultToast(Context context, Result result) {
-		if (TextUtils.isEmpty(result.resultMsg)) {
-			Toast.makeText(context, context.getString(R.string.data_exception), Toast.LENGTH_SHORT).show();
-		} else {
-			Toast.makeText(context, result.resultMsg, Toast.LENGTH_SHORT).show();
-		}
-	}
-
-	public int getResultCode() {
-		return resultCode;
-	}
-
-	public void setResultCode(int resultCode) {
-		this.resultCode = resultCode;
-	}
-
-	public String getResultMsg() {
-		return resultMsg;
-	}
-
-	public void setResultMsg(String resultMsg) {
-		this.resultMsg = resultMsg;
-	}
-	//	public JSONObject getJsonObject() {
+            if (showToast)
+                showResultToast(context, result);
+            return false;
+        } else {
+            if (showToast) {
+                //TODO 返回错误
+                Log.i("gongpengming", "返回错误");
+                showResultToast(context, result);
+            }
+            return false;
+        }
+    }
+
+    private static void showResultToast(Context context, Result result) {
+        if (TextUtils.isEmpty(result.resultMsg)) {
+            Toast.makeText(context, context.getString(R.string.data_exception), Toast.LENGTH_SHORT).show();
+        } else {
+            Toast.makeText(context, result.resultMsg, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    public int getResultCode() {
+        return resultCode;
+    }
+
+    public void setResultCode(int resultCode) {
+        this.resultCode = resultCode;
+    }
+
+    public String getResultMsg() {
+        return resultMsg;
+    }
+
+    public void setResultMsg(String resultMsg) {
+        this.resultMsg = resultMsg;
+    }
+    //	public JSONObject getJsonObject() {
 //		return jsonObject;
 //	}
 //
@@ -98,17 +101,17 @@ public class Result {
 //		this.jsonObject = jsonObject;
 //	}
 
-	public String getResultData() {
-		return resultData;
-	}
+    public String getResultData() {
+        return resultData;
+    }
 
-	public void setResultData(String resultData) {
-		this.resultData = resultData;
-	}
+    public void setResultData(String resultData) {
+        this.resultData = resultData;
+    }
 
-	@Override
-	public String toString() {
-		return JSON.toJSON(this).toString();
-	}
+    @Override
+    public String toString() {
+        return JSON.toJSON(this).toString();
+    }
 
 }

BIN
WeiChat/src/main/res/drawable-xhdpi/search_input.9.png


+ 12 - 0
WeiChat/src/main/res/layout/activity_phone_select.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    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"
+    tools:context="com.xzjmyk.pm.activity.ui.circle.PhoneSelectActivity">
+
+</RelativeLayout>

+ 38 - 0
WeiChat/src/main/res/layout/activity_video.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <SurfaceView
+        android:id="@+id/lib_surface_view"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="5" />
+
+    <RelativeLayout
+        android:id="@+id/lib_video_rl"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="2">
+
+        <TextView
+            android:id="@+id/lib_video_tv_time"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_above="@+id/btn"
+            android:layout_marginBottom="2dp"
+            android:gravity="center"
+            android:textColor="@color/red" />
+
+        <Button
+            android:id="@+id/btn"
+            android:layout_width="100dp"
+            android:layout_height="100dp"
+            android:layout_centerInParent="true"
+            android:background="@drawable/button_round_shape"
+            android:text="按下拍"
+            android:textColor="@color/white" />
+    </RelativeLayout>
+</LinearLayout>

+ 85 - 0
WeiChat/src/main/res/layout/message_header.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/item_height"
+        android:descendantFocusability="blocksDescendants"
+        android:minHeight="@dimen/item_height"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+        <!--android:background="@color/item_color1"-->
+        <FrameLayout
+            android:id="@+id/head_area"
+            android:layout_width="57dp"
+            android:layout_height="64dp"
+            android:layout_centerVertical="true">
+
+            <ImageView
+                android:id="@+id/avatar_img"
+                android:layout_width="@dimen/item_img_height"
+                android:layout_height="@dimen/item_img_width"
+                android:layout_gravity="center_vertical"
+                android:background="@color/gray_light"
+                android:contentDescription="@string/app_name"
+                android:padding="1dp"
+                android:src="@drawable/avatar_normal" />
+
+            <TextView
+                android:id="@+id/num_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="top|right"
+                android:background="@drawable/tab_unread_bg"
+                android:gravity="center"
+                android:textColor="@android:color/white"
+                android:textSize="10.0dip"
+                android:visibility="visible" />
+        </FrameLayout>
+
+        <RelativeLayout
+            android:id="@+id/content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="3dp"
+            android:layout_toRightOf="@id/head_area"
+            android:gravity="center_vertical">
+
+            <TextView
+                android:id="@+id/nick_name_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_toLeftOf="@+id/time_tv"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_main"
+                android:textSize="16sp" />
+
+            <TextView
+                android:id="@+id/time_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/content_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/nick_name_tv"
+                android:layout_marginTop="8dp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+        </RelativeLayout>
+
+    </RelativeLayout>
+</LinearLayout>

BIN
WeiChat/src/main/res/raw/test.jpg