浏览代码

分享信息

liuzhenxing1118 2 年之前
父节点
当前提交
24a317eff0

+ 17 - 5
app/src/main/java/com/xplora/xpchat/activity/MemberShareActivity.java

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.ImageButton;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -28,6 +29,7 @@ public class MemberShareActivity extends BaseActivity {
     private RecyclerAdapter mRecyclerAdapter = null;
     private RelativeLayout mShareLayout = null;
     private TextView mShareNameTv = null;
+    private ContactBean mShareContactBean = null;
 
     @Override
     protected void onCreateBase() {
@@ -56,21 +58,24 @@ public class MemberShareActivity extends BaseActivity {
 
         mShareLayout = findViewById(R.id.shareLayout);
         mShareNameTv = (TextView) findViewById(R.id.shareNameTv);
+        ImageButton sendButton = (ImageButton) findViewById(R.id.shareSendButton);
+        sendButton.setOnClickListener((View v)->{
+            sendShareChat();
+        });
     }
 
     RecyclerAdapter.GridItemOnClickListener mGridItemOnClickListener = new RecyclerAdapter.GridItemOnClickListener() {
         @SuppressLint("NotifyDataSetChanged")
         @Override
         public void onClick(Constant.E_PAGER pagerType, int mViewIndex, int itemIndex, GridModel gridModel) {
-
-            ContactBean shareBean = new ContactBean();
             for (int i = 0; i < mDataList.size(); i++) {
                 GridModel model = mDataList.get(i);
                 model.isSelected = i == itemIndex;
                 if (i == itemIndex) {
-                    shareBean = (ContactBean) model.bean;
+                    mShareContactBean = (ContactBean) model.bean;
                 }
             }
+
             if (mRecyclerAdapter != null) {
                 //mRecyclerAdapter.setDataList(mDataList);
                 mRecyclerAdapter.notifyDataSetChanged();
@@ -78,12 +83,19 @@ public class MemberShareActivity extends BaseActivity {
 
             if (mShareLayout != null) {
                 mShareLayout.setVisibility(View.VISIBLE);
-                mShareNameTv.setText(shareBean.name);
+                mShareNameTv.setText(mShareContactBean.name);
             }
         }
     };
 
-    private void onPrivateChat(GridModel gridModel) {
+    private void sendShareChat() {
+        if (mShareContactBean == null)
+            return;
+        Intent intent = new Intent();
+        intent.putExtra(Constant.EXTRA_CHAT_TYPE, Constant.TARGET_PRIVATE);
+        intent.putExtra(Constant.EXTRA_CHAT_ID, mShareContactBean._id);
+        intent.putExtra(Constant.EXTRA_CHAT_USER_ID, mShareContactBean.userId);
+        setResult(RESULT_OK, intent);
         finish();
     }
 }

+ 30 - 8
app/src/main/java/com/xplora/xpchat/activity/PagerActivity.java

@@ -28,6 +28,7 @@ import android.widget.Toast;
 import com.xplora.xpchat.R;
 import com.xplora.xpchat.adapter.RecyclerAdapter;
 import com.xplora.xpchat.adapter.ViewPagerAdapter;
+import com.xplora.xpchat.fragment.BaseActionFragment;
 import com.xplora.xpchat.fragment.ChatWifiFragment;
 import com.xplora.xpchat.fragment.PhotoFragment;
 import com.xplora.xpchat.fragment.ChatDownloadingFragment;
@@ -67,6 +68,7 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
     private MediaPlayerUtils mPlayManager = null;
     private MediaRecorderUtils mRecordManager = null;
     private DatabaseUtils mDatabaseUtil = null;
+    private BaseActionFragment mActionFragment = null;
 
     private ContactContentObserver mContactObserver = null;
     private ChatContentObserver mChatObserver = null;
@@ -591,9 +593,9 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
                 } else {
                     //已读
                     action2Read(bean);
-                    PhotoFragment photoFragment = PhotoFragment.newInstance(this);
-                    photoFragment.setItemInfo(position, bean);
-                    photoFragment.show(this.getFragmentManager(), Constant.PACKAGE_NAME);
+                    mActionFragment = PhotoFragment.newInstance(this);
+                    mActionFragment.setItemInfo(position, bean);
+                    mActionFragment.show(this.getFragmentManager(), Constant.PACKAGE_NAME);
                 }
                 break;
             case Constant.MESSAGE_TYPE_VIDEO:
@@ -613,9 +615,9 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
                     }
                     //已读
                     action2Read(bean);
-                    VideoFragment videoFragment = VideoFragment.newInstance(this);
-                    videoFragment.setItemInfo(position, bean);
-                    videoFragment.show(this.getFragmentManager(), Constant.PACKAGE_NAME);
+                    mActionFragment = VideoFragment.newInstance(this);
+                    mActionFragment.setItemInfo(position, bean);
+                    mActionFragment.show(this.getFragmentManager(), Constant.PACKAGE_NAME);
                 }
                 break;
             default:
@@ -904,15 +906,35 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
 
     @Override
     public void onShareFile(int position, MessageBean bean) {
-        mShareMemberBean = bean;
+        mShareMemberBean = DataManager.createSendMessageBean(mChatType, mChatUserId, bean.type, 0, bean.filePath, "", "", bean.videoPath, "");;
         Intent intent = new Intent(this, MemberShareActivity.class);
         startActivityForResult(intent, Constant.REQUEST_CODE_SHARE);
     }
 
-    public void onShareFileCallback(Intent data) {
+    public void onShareFileCallback(Intent intent) {
         if (mShareMemberBean == null)
             return;
 
+        //关闭弹框
+        if (mActionFragment != null) {
+            mActionFragment.dismissAllowingStateLoss();
+            mActionFragment = null;
+        }
+
+        //重新配置联系人信息
+        mChatType = intent.getIntExtra(Constant.EXTRA_CHAT_TYPE, 0);
+        mChatId = intent.getLongExtra(Constant.EXTRA_CHAT_ID, 0);
+        mChatUserId = intent.getStringExtra(Constant.EXTRA_CHAT_USER_ID);
+
+        //拉取新联系人聊天信息
+        DataManager.instance().clearMessageList();
+        loadFromMessageDB();
+
+        //分享信息
+        sendMessage(mShareMemberBean, 10);
+
+        //通知拉取当前联系人最新消息
+        checkLastMessage();
     }
 
     @Override

+ 4 - 0
app/src/main/java/com/xplora/xpchat/manager/DataManager.java

@@ -49,6 +49,10 @@ public class DataManager {
         mEmojiList.clear();
     }
 
+    public void clearMessageList() {
+        mMessagesList.clear();
+    }
+
     public void getContactList() {
         mContactList.clear();
         mContactList = new DatabaseUtils().loadContacts();

+ 1 - 1
app/src/main/res/layout/activity_itemlist_share.xml

@@ -45,7 +45,7 @@
             android:text="adfafdsaf"
             />
 
-        <ImageView
+        <ImageButton
             android:id="@+id/shareSendButton"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"