Commit a3d105f5 authored by sheteng's avatar sheteng

fix1

parent 2b73dc9c
......@@ -31,6 +31,12 @@ android {
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation 'androidx.annotation:annotation:1.2.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
......@@ -40,6 +46,7 @@ dependencies {
implementation "androidx.multidex:multidex:$multidex_version"
def lifecycle_version = "2.3.1"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation 'androidx.appcompat:appcompat:1.3.1'
......@@ -48,9 +55,12 @@ dependencies {
implementation 'androidx.navigation:navigation-fragment:2.3.0'
implementation 'androidx.navigation:navigation-ui:2.3.0'
// implementation(name: 'ccim-release', ext: 'aar')
implementation project(path: ':ccim')
implementation 'com.google.protobuf:protobuf-java:3.13.0'
implementation 'com.google.protobuf:protobuf-java:3.13.0'
implementation 'com.google.protobuf:protobuf-java-util:3.12.0'
implementation 'com.guolindev.permissionx:permissionx:1.6.1'
implementation 'com.tonystark.android:socket:latest.release'
implementation 'com.tonystark.android:socket-server:latest.release'
}
\ No newline at end of file
package com.ccwangluo.im.ui.dashboard;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.data.Contact;
import com.ccwangluo.ccim.data.PushPrivateMsgRes;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.im.adapter.PrivateMsgAdapter;
import com.ccwangluo.im.data.LoginViewModel;
import com.ccwangluo.im.databinding.FragmentConnectBinding;
import java.util.ArrayList;
import java.util.List;
public class ConnectFragment extends Fragment {
private FragmentConnectBinding binding;
private LoginViewModel loginViewModel;
private PrivateMsgAdapter privaetMsgAdapter;
private List<PushPrivateMsgRes.MessageDTO> list = new ArrayList<>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentConnectBinding.inflate(inflater, container, false);
loginViewModel = new ViewModelProvider(getActivity())
.get(LoginViewModel.class);
privaetMsgAdapter = new PrivateMsgAdapter(list,getContext());
binding.msgList.setAdapter(privaetMsgAdapter);
Contact contact = (Contact) getArguments().getSerializable("contact");
loginViewModel.privateMsgList.observe(getViewLifecycleOwner(), new Observer<List<PushPrivateMsgRes>>() {
@Override
public void onChanged(List<PushPrivateMsgRes> pushPrivateMsgRes) {
list.clear();
for (PushPrivateMsgRes pushPrivateMsgRe : pushPrivateMsgRes) {
if ((contact.getContactUserId().equals(pushPrivateMsgRe.getMessage().getSenderUserId())|| contact.getContactUserId().equals(pushPrivateMsgRe.getMessage().getReciveUserId()))) {
list.add(pushPrivateMsgRe.getMessage());
}
}
privaetMsgAdapter.refreshData();
binding.msgList.setSelection(privaetMsgAdapter.getCount() - 1);
}
});
binding.sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String content = binding.sendEdit.getText().toString();
CCIMClient.getInstance().sendTextMessage(content, contact.getContactUserId(), new ResultCallback() {
@Override
public void onSuccess() {
binding.sendEdit.setText("");
PushPrivateMsgRes.MessageDTO messageDTO = new PushPrivateMsgRes.MessageDTO();
messageDTO.setReciveUserId(contact.getContactUserId());
messageDTO.setContent(content);
PushPrivateMsgRes pushPrivateMsgRes = new PushPrivateMsgRes();
pushPrivateMsgRes.setMessage(messageDTO);
loginViewModel.addPrivateMsg(pushPrivateMsgRes);
Toast.makeText(getContext(),"send Success",Toast.LENGTH_LONG).show();
}
});
}
});
return binding.getRoot();
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.ccwangluo.im.ui.notifications;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
......@@ -82,6 +83,9 @@ public class NotificationsFragment extends Fragment {
public void onClick(DialogInterface dialog, int which) {
String channelId = inputServer.getText().toString();
if (TextUtils.isEmpty(channelId)){
Toast.makeText(getContext(),"channel id is null",Toast.LENGTH_SHORT).show();
}
long Id = Long.parseLong(channelId);
CCIMClient.getInstance().joinChannel(Id, new ResultCallback() {
@Override
......@@ -123,9 +127,11 @@ public class NotificationsFragment extends Fragment {
boolean checked = checkBox.isChecked();
String users = userList.getText().toString();
ArrayList<Long> longs = new ArrayList<>();
String[] split = users.split(",");
for (int i = 0; i < split.length; i++) {
longs.add(Long.parseLong(split[i]));
if (!TextUtils.isEmpty(users)) {
String[] split = users.split(",");
for (int i = 0; i < split.length; i++) {
longs.add(Long.parseLong(split[i]));
}
}
CCIMClient.getInstance().createChannel(name, tag, checked, longs, new ResultEventCallback<Long>() {
@Override
......
......@@ -26,7 +26,6 @@ import com.google.gson.Gson;
import com.google.protobuf.util.JsonFormat;
import com.permissionx.guolindev.PermissionX;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -77,13 +76,14 @@ public class CCIMClient {
@Override
public void onSocketConnection() {
resultCallback.onSocketConnection();
isNeedFresh = true;
getContactList(new ContactsCallBack() {
@Override
public void onSuccess(Collection<Contact> contacts, Collection<ContactGroup> contactGroups) {
if (!isNeedFresh) {
isNeedFresh = true;
contacts.clear();
contactGroups.clear();
getContactList((contacts, contactGroups) -> {
}
});
});
}
}
@Override
......@@ -109,6 +109,7 @@ public class CCIMClient {
e.printStackTrace();
}
}
if (chatResponseMessage.hasPushChannelMsgRes()) {
Push.PushChannelMessageResponse channelMsgRes = chatResponseMessage.getPushChannelMsgRes();
pushChannelMessage(channelMsgRes.getChannelId(), channelMsgRes.getMessage().getMsgId());
......@@ -158,7 +159,7 @@ public class CCIMClient {
Push.PushBlockedByContactResponse pushContactNewReqRes = chatResponseMessage.getPushBlockedByContactRes();
long contactUserId = pushContactNewReqRes.getContactUserId();
ContactOuterClass.ContactStatus contactStatus = pushContactNewReqRes.getContactStatus();
contacts.get(contactUserId).setStatus(Status.valueOf(contactStatus.name()));
Objects.requireNonNull(contacts.get(contactUserId)).setStatus(Status.valueOf(contactStatus.name()));
pushMsgListener.pushBlockByContact(contactUserId);
}
......@@ -337,9 +338,8 @@ public class CCIMClient {
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasCheckContactReqRes()) {
ContactOuterClass.Contact newContact = chatResponseMessage.getCheckContactReqRes().getNewContact();
String print = null;
try {
print = JsonFormat.printer().print(newContact);
String print = JsonFormat.printer().print(newContact);
Contact contact = new Gson().fromJson(print, Contact.class);
contacts.put(contact.getContactUserId(),contact);
callback.onSuccess();
......
......@@ -66,11 +66,8 @@ public class SocketManageer {
.setTs(ts)
.setSign(sign)
.build();
Common.RequestMessageHeader header = Common.RequestMessageHeader.newBuilder().setVersion(1).setSeq(1).build();
Chat.ChatRequestMessage build = Chat.ChatRequestMessage.newBuilder().setConnectReq(builder).setHeader(header).build();
OkSocket.open(getChatInfo())
.send(new IrequestData(build.toByteArray()));
callBackManager.addCallBack(idPlus(), new ResultEventCallback<Chat.ChatResponseMessage>() {
int idPlus = sendRequest(builder);
callBackManager.addCallBack(idPlus, new ResultEventCallback<Chat.ChatResponseMessage>() {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
onConnectListener.onSocketConnection();
......@@ -251,6 +248,8 @@ public class SocketManageer {
builder.setConnectionStateAckReq((Chat.ConnectionStateAckRequest) request);
} else if (request instanceof ContactOuterClass.DeleteContactGroupRequest) {
builder.setDeleteContactGroupReq((ContactOuterClass.DeleteContactGroupRequest) request);
} else if (request instanceof Chat.ConnectRequest){
builder.setConnectReq((Chat.ConnectRequest) request);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment