Commit ef12c5bf authored by sheteng's avatar sheteng

修改callback

parent 33461bc2
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\she\.android\avd\Nexus_S_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2021-12-16T03:22:22.823605200Z" />
</component>
</project>
\ No newline at end of file
......@@ -8,7 +8,7 @@ android {
defaultConfig {
applicationId "com.ccwangluo.xiyuan22"
minSdkVersion 26
minSdkVersion 17
targetSdkVersion 30
versionCode 1
versionName "1.0"
......@@ -56,13 +56,19 @@ dependencies {
// 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.google.code.gson:gson:2.8.7'
implementation 'io.netty:netty-all:4.1.4.Final'
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation 'com.karumi:dexter:6.2.3'
// implementation('com.fasterxml.jackson.core:jackson-core:2.11.1')
implementation 'com.fasterxml.jackson.jr:jackson-jr-objects:2.13.0'
// implementation('com.fasterxml.jackson.core:jackson-databind:2.11.1')
}
\ No newline at end of file
......@@ -11,22 +11,18 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ContactsCallBack;
import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.listener.OnPushMsgListener;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.ContactGroup;
import com.ccwangluo.ccim.modle.Dialog;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.modle.NetStatus;
import com.ccwangluo.ccim.modle.PullContactsRes;
import com.ccwangluo.ccim.modle.User;
import com.ccwangluo.ccim.util.HmacUtil;
import com.ccwangluo.im.databinding.FragmentFirstBinding;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class FirstFragment extends Fragment {
......@@ -39,7 +35,6 @@ public class FirstFragment extends Fragment {
LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState
) {
binding = FragmentFirstBinding.inflate(inflater, container, false);
return binding.getRoot();
}
......@@ -56,7 +51,7 @@ public class FirstFragment extends Fragment {
//sign计算在服务器,本地不要暴露appsecrect
String sign = HmacUtil.stringToSign("wW7cR31PwJseIoZMOs311nljHpwUmujs", data);
CCIMClient.getInstance().initSDK(getContext(),appKey, userName, extData, userId, ts, sign, new OnConnectListener() {
CCIMClient.getInstance().initSDK(getContext(), appKey, userName, extData, userId, ts, sign, new OnConnectListener() {
@Override
public void onSocketConnection() {
refreshLogView("connect success");
......@@ -93,7 +88,7 @@ public class FirstFragment extends Fragment {
@Override
public void pushContactNetStatus(Long contactId, NetStatus status) {
refreshLogView("ContactNetStatus is :" + contactId +" status:" + status);
refreshLogView("ContactNetStatus is :" + contactId + " status:" + status);
}
@Override
......@@ -112,12 +107,17 @@ public class FirstFragment extends Fragment {
@Override
public void onClick(View v) {
CCIMClient.getInstance().getContactList(new ContactsCallBack() {
CCIMClient.getInstance().getContactList(true, new ResultEventCallback<PullContactsRes>() {
@Override
public void onSuccess(Collection<Contact> contacts, Collection<ContactGroup> contactGroups, Collection<Dialog> dialogs) {
public void onSuccess(PullContactsRes pullContactsRes) {
}
},true);
@Override
public void onFailed(int errorCode) {
}
});
}
});
......@@ -150,10 +150,10 @@ public class FirstFragment extends Fragment {
binding.addUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().addContact(Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
CCIMClient.getInstance().addContact(Long.parseLong(binding.userId.getText().toString()), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("addContact success");
public void onSuccess(Void unused) {
}
@Override
......@@ -202,10 +202,10 @@ public class FirstFragment extends Fragment {
binding.checkContactRequests.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().checkContactReq(Long.parseLong(binding.userId.getText().toString()), true, new ResultCallback() {
CCIMClient.getInstance().checkContactReq(Long.parseLong(binding.userId.getText().toString()), true, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("checkContactRequests success");
public void onSuccess(Void unused) {
}
@Override
......@@ -235,27 +235,28 @@ public class FirstFragment extends Fragment {
binding.moveContactGroupRequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().moveContactGroup(Long.parseLong(binding.groupId.getText().toString()), Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
@Override
public void onSuccess() {
refreshLogView("moveContactGroupRequest success ");
}
CCIMClient.getInstance().moveContactGroup(Long.parseLong(binding.groupId.getText().toString()), Long.parseLong(binding.userId.getText().toString()),
new ResultEventCallback<Void>() {
@Override
public void onSuccess(Void unused) {
@Override
public void onFailed(int errorCode) {
}
}
});
@Override
public void onFailed(int errorCode) {
}
});
}
});
binding.deleteContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().deleteContact(Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
CCIMClient.getInstance().deleteContact(Long.parseLong(binding.userId.getText().toString()), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("deleteContact success ");
public void onSuccess(Void unused) {
}
@Override
......@@ -269,10 +270,10 @@ public class FirstFragment extends Fragment {
binding.blockContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().blockContact(Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
CCIMClient.getInstance().blockContact(Long.parseLong(binding.userId.getText().toString()), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("blockContact success ");
public void onSuccess(Void unused) {
}
@Override
......@@ -286,17 +287,18 @@ public class FirstFragment extends Fragment {
binding.reportIllegalUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().reportIllegalUser("搞黄色", "搞黄色", Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
@Override
public void onSuccess() {
refreshLogView("reportIllegalUser success ");
}
CCIMClient.getInstance().reportIllegalUser("搞黄色", "搞黄色", Long.parseLong(binding.userId.getText().toString()),
new ResultEventCallback<Void>() {
@Override
public void onSuccess(Void unused) {
@Override
public void onFailed(int errorCode) {
}
}
});
@Override
public void onFailed(int errorCode) {
}
});
}
});
......@@ -312,40 +314,46 @@ public class FirstFragment extends Fragment {
// });
}
});
//
// binding.startRecordAudioMessage.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultEventCallback<Void>() {
// @Override
// public void onSuccess(Void unused) {
//
// }
//
// @Override
// public void onFailed(int errorCode) {
//
// }
// }
// );
// })
binding.stopAndSendAudioMessage.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
binding.startRecordAudioMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(int errorCode) {
}
});
}
});
binding.stopAndSendAudioMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
});
}
});
binding.cancleAudioMessage.setOnClickListener(new View.OnClickListener()
binding.cancleAudioMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
{
@Override
public void onClick (View v){
CCIMClient.getInstance().cancleAudioMessage();
}
});
});
binding.createChannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
binding.createChannel.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
ArrayList<Long> userIds = new ArrayList<>();
userIds.add(Long.parseLong(binding.userId.getText().toString()));
CCIMClient.getInstance().createChannel("大世界", "112", false, userIds, new ResultEventCallback<Long>() {
......@@ -361,15 +369,17 @@ public class FirstFragment extends Fragment {
}
});
}
});
});
binding.joinChannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().joinChannel(Long.parseLong(binding.channelId.getText().toString()), new ResultCallback() {
binding.joinChannel.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
CCIMClient.getInstance().joinChannel(Long.parseLong(binding.channelId.getText().toString()), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("joinChannel ");
public void onSuccess(Void unused) {
}
@Override
......@@ -378,32 +388,37 @@ public class FirstFragment extends Fragment {
}
});
}
});
});
binding.removeChannelMember.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().removeChannelMember(Long.parseLong(binding.channelId.getText().toString()), Long.parseLong(binding.userId.getText().toString()), new ResultCallback() {
@Override
public void onSuccess() {
refreshLogView("removeChannelMember: ");
}
binding.removeChannelMember.setOnClickListener(new View.OnClickListener()
@Override
public void onFailed(int errorCode) {
{
@Override
public void onClick (View v){
CCIMClient.getInstance().removeChannelMember(Long.parseLong(binding.channelId.getText().toString()), Long.parseLong(binding.userId.getText().toString()),
new ResultEventCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
});
}
@Override
public void onFailed(int errorCode) {
}
});
}
});
});
binding.exitChannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CCIMClient.getInstance().exitChannel(Long.parseLong(binding.channelId.getText().toString()), new ResultCallback() {
binding.exitChannel.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
CCIMClient.getInstance().exitChannel(Long.parseLong(binding.channelId.getText().toString()), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
refreshLogView("exitChannel: ");
public void onSuccess(Void unused) {
}
@Override
......@@ -412,28 +427,28 @@ public class FirstFragment extends Fragment {
}
});
}
});
}
public void refreshLogView(String msg) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
binding.txLog.append(msg + "\r\n");
int offset = binding.txLog.getLineCount() * binding.txLog.getLineHeight();
if (offset > binding.txLog.getHeight()) {
binding.txLog.scrollTo(0, offset - binding.txLog.getHeight() + binding.txLog.getLineHeight() * 2);
});
}
public void refreshLogView (String msg){
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
binding.txLog.append(msg + "\r\n");
int offset = binding.txLog.getLineCount() * binding.txLog.getLineHeight();
if (offset > binding.txLog.getHeight()) {
binding.txLog.scrollTo(0, offset - binding.txLog.getHeight() + binding.txLog.getLineHeight() * 2);
}
}
}
});
});
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
@Override
public void onDestroyView () {
super.onDestroyView();
binding = null;
}
}
\ No newline at end of file
}
......@@ -3,6 +3,7 @@ package com.ccwangluo.im;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
......
......@@ -15,7 +15,7 @@ import androidx.navigation.ui.NavigationUI;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.OnPushMsgListener;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.modle.NetStatus;
......@@ -91,9 +91,9 @@ public class MainActivity2 extends AppCompatActivity {
.setItems(strings, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().checkContactReq(user.getUserId(), true, new ResultCallback() {
CCIMClient.getInstance().checkContactReq(user.getUserId(), true, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
Toast.makeText(MainActivity2.this, "验证好友发送成功", Toast.LENGTH_SHORT).show();
loginViewModel.getContactList();
}
......@@ -107,9 +107,9 @@ public class MainActivity2 extends AppCompatActivity {
}).setNegativeButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().checkContactReq(user.getUserId(), false, new ResultCallback() {
CCIMClient.getInstance().checkContactReq(user.getUserId(), false, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
}
......@@ -122,6 +122,7 @@ public class MainActivity2 extends AppCompatActivity {
})
.create();
alertDialog.show();
}
@Override
......
......@@ -7,13 +7,12 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.im.R;
......@@ -82,10 +81,10 @@ public class ChannelMsgAdapter extends BaseAdapter {
@Override
public void onClick(View v) {
if (messageContent.getMsgType() == MessageContent.MessageType.MESSAGE_TYPE_VOICE) {
CCIMClient.getInstance().startPlayAudio(messageContent.getMsgId(), new ResultCallback() {
CCIMClient.getInstance().startPlayAudio(messageContent.getMsgId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
Toast.makeText(context, "播放成功", Toast.LENGTH_SHORT).show();
public void onSuccess(Void unused) {
}
@Override
......
......@@ -14,10 +14,10 @@ import android.widget.TextView;
import android.widget.Toast;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.ContactGroup;
import com.ccwangluo.ccim.modle.Dialog;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.im.R;
import com.ccwangluo.im.data.LoginViewModel;
import com.ccwangluo.im.listener.OnContactClickLisener;
......@@ -160,9 +160,9 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().deleteContactGroup(dataEntity.get(groupPosition).getGroupId(), new ResultCallback() {
CCIMClient.getInstance().deleteContactGroup(dataEntity.get(groupPosition).getGroupId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
loginViewModel.getContactList();
}
......@@ -233,9 +233,9 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
CCIMClient.getInstance().deleteContact(contact.getContactUserId(), new ResultCallback() {
CCIMClient.getInstance().deleteContact(contact.getContactUserId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
loginViewModel.getContactList();
}
......@@ -246,9 +246,9 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
});
break;
case 1:
CCIMClient.getInstance().blockContact(contact.getContactUserId(), new ResultCallback() {
CCIMClient.getInstance().blockContact(contact.getContactUserId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
loginViewModel.getContactList();
}
......@@ -273,9 +273,9 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
public void onClick(DialogInterface dialog, int which) {
String reason = title.getText().toString();
String content = contentView.getText().toString();
CCIMClient.getInstance().reportIllegalUser(reason, content, contact.getContactUserId(), new ResultCallback() {
CCIMClient.getInstance().reportIllegalUser(reason, content, contact.getContactUserId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
Toast.makeText(context, "举报成功", Toast.LENGTH_SHORT).show();
}
......@@ -312,9 +312,9 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
.setItems(strings, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().moveContactGroup(contactGroups.get(which).getGroupId(), contact.getContactUserId(), new ResultCallback() {
CCIMClient.getInstance().moveContactGroup(contactGroups.get(which).getGroupId(), contact.getContactUserId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
Toast.makeText(context, "移动成功", Toast.LENGTH_SHORT).show();
loginViewModel.getContactList();
}
......
......@@ -7,13 +7,12 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.im.R;
......@@ -86,10 +85,10 @@ public class PrivateMsgAdapter extends BaseAdapter {
@Override
public void onClick(View v) {
if (message.getMsgType() == MessageContent.MessageType.MESSAGE_TYPE_VOICE) {
CCIMClient.getInstance().startPlayAudio(message.getMsgId(), new ResultCallback() {
CCIMClient.getInstance().startPlayAudio(message.getMsgId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
Toast.makeText(context, "播放成功", Toast.LENGTH_SHORT).show();
public void onSuccess(Void unused) {
}
@Override
......
......@@ -6,12 +6,13 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.ContactGroup;
import com.ccwangluo.ccim.modle.Dialog;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.listener.ContactsCallBack;
import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.modle.PullContactsRes;
import com.ccwangluo.ccim.util.HmacUtil;
import java.util.ArrayList;
......@@ -53,14 +54,19 @@ public class LoginViewModel extends ViewModel {
}
public void getContactList() {
CCIMClient.getInstance().getContactList(new ContactsCallBack() {
CCIMClient.getInstance().getContactList(false, new ResultEventCallback<PullContactsRes>() {
@Override
public void onSuccess(Collection<Contact> contacts, Collection<ContactGroup> contactGroups, Collection<Dialog> dialogs) {
contactList.postValue(contacts);
contactGroupList.postValue(contactGroups);
dialogList.postValue(dialogs);
public void onSuccess(PullContactsRes pullContactsRes) {
contactList.postValue(pullContactsRes.getContacts());
contactGroupList.postValue(pullContactsRes.getContactGroups());
dialogList.postValue(pullContactsRes.getDialogs());
}
}, false);
@Override
public void onFailed(int errorCode) {
}
});
}
public void addChannelId(long id) {
......
......@@ -11,7 +11,6 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.MessageContent;
......@@ -101,9 +100,9 @@ public class ConnectFragment extends Fragment {
});
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultCallback() {
CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
}
......
......@@ -17,7 +17,6 @@ import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.ContactGroup;
......@@ -197,9 +196,9 @@ public class ContactsFragment extends Fragment {
.setItems(strings, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().checkContactReq(users.get(which).getUserId(), true, new ResultCallback() {
CCIMClient.getInstance().checkContactReq(users.get(which).getUserId(), true, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
ToastUtil.show(getContext(), "验证好友发送成功");
loginViewModel.getContactList();
}
......@@ -235,9 +234,9 @@ public class ContactsFragment extends Fragment {
.setItems(strings, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().addContact(users.get(which).getUserId(), new ResultCallback() {
CCIMClient.getInstance().addContact(users.get(which).getUserId(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
ToastUtil.show(getContext(), "加好友发送成功");
}
......
......@@ -11,7 +11,6 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.im.adapter.ChannelMsgAdapter;
......@@ -99,9 +98,9 @@ public class ConnectChannelFragment extends Fragment {
});
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultCallback() {
CCIMClient.getInstance().startRecordAudioMessage(getActivity(), new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
}
......
......@@ -22,7 +22,6 @@ import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.im.R;
import com.ccwangluo.im.adapter.ChannelAdapter;
......@@ -54,8 +53,8 @@ public class NotificationsFragment extends Fragment {
@Override
public void itemClick(Long id) {
Bundle bundle = new Bundle();
bundle.putLong("channelId",id);
navController.navigate(R.id.navigation_channel_connect,bundle);
bundle.putLong("channelId", id);
navController.navigate(R.id.navigation_channel_connect, bundle);
}
@Override
......@@ -86,14 +85,14 @@ public class NotificationsFragment extends Fragment {
public void onClick(DialogInterface dialog, int which) {
String channelId = inputServer.getText().toString();
if (TextUtils.isEmpty(channelId)){
ToastUtil.show(getContext(),"channel id is null");
if (TextUtils.isEmpty(channelId)) {
ToastUtil.show(getContext(), "channel id is null");
return;
}
long Id = Long.parseLong(channelId);
CCIMClient.getInstance().joinChannel(Id, new ResultCallback() {
CCIMClient.getInstance().joinChannel(Id, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
ToastUtil.show(getContext(), "join success");
loginViewModel.addChannelId(Id);
}
......@@ -175,11 +174,11 @@ public class NotificationsFragment extends Fragment {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
CCIMClient.getInstance().exitChannel(id, new ResultCallback() {
CCIMClient.getInstance().exitChannel(id, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
loginViewModel.removeChannelId(id);
ToastUtil.show(getContext(),"退出成功");
ToastUtil.show(getContext(), "退出成功");
}
@Override
......@@ -187,7 +186,7 @@ public class NotificationsFragment extends Fragment {
ToastUtil.show(getContext(), " onFailed :" + errorCode);
}
});
break;
break;
}
}
})
......
......@@ -58,15 +58,14 @@ protobuf {
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.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.google.code.gson:gson:2.8.7'
implementation 'io.netty:netty-all:4.1.4.Final'
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation 'com.karumi:dexter:6.2.3'
}
\ No newline at end of file
......@@ -4,12 +4,10 @@ import android.Manifest;
import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;
import androidx.fragment.app.FragmentActivity;
import com.ccwangluo.ccim.listener.ContactsCallBack;
import com.ccwangluo.ccim.listener.OnClientConnectListener;
import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.listener.OnPushMsgListener;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.manage.CallBackManager;
import com.ccwangluo.ccim.manage.ChannelManager;
......@@ -19,6 +17,7 @@ import com.ccwangluo.ccim.manage.SocketManager;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.modle.NetStatus;
import com.ccwangluo.ccim.modle.PullContactsRes;
import com.ccwangluo.ccim.modle.PushPrivateMsgRes;
import com.ccwangluo.ccim.modle.SearchRes;
import com.ccwangluo.ccim.modle.User;
......@@ -26,7 +25,13 @@ import com.ccwangluo.ccim.util.ErrorCode;
import com.ccwangluo.ccim.util.MediaHelper;
import com.google.gson.Gson;
import com.google.protobuf.util.JsonFormat;
import com.permissionx.guolindev.PermissionX;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;
import java.io.File;
import java.util.List;
import java.util.concurrent.ExecutorService;
......@@ -38,7 +43,7 @@ import ccim.protocol.Message;
import ccim.protocol.MessageSpec;
import ccim.protocol.Push;
public class CCIMClient {
public class CCIMClient {
private final Logger logger = Logger.getLogger(CCIMClient.class.getName());
private static SocketManager socketManager;
......@@ -91,12 +96,20 @@ public class CCIMClient {
maxSendMsgInterval = clientConfig.getSendMsgInterval();
maxAudioDuration = clientConfig.getMaxAudioDuration() * 1000;
downloadPrefix = clientConfig.getDownloadPrefix();
getContactList((contacts, contactGroups, dialog) -> {
if (!isConnected) {
resultCallback.onSocketConnection();
isConnected = true;
getContactList(true, new ResultEventCallback<PullContactsRes>() {
@Override
public void onSuccess(PullContactsRes pullContactsRes) {
if (!isConnected) {
resultCallback.onSocketConnection();
isConnected = true;
}
}
@Override
public void onFailed(int errorCode) {
}
}, true);
});
}
@Override
......@@ -203,7 +216,7 @@ public class CCIMClient {
/**
* 获取联系人列表
*/
public void getContactList(ContactsCallBack resultEventCallback, boolean isClearCache) {
public void getContactList(boolean isClearCache, ResultEventCallback<PullContactsRes> resultEventCallback) {
contactManager.getContactList(resultEventCallback, isClearCache);
}
......@@ -218,7 +231,7 @@ public class CCIMClient {
/**
* 添加好友
*/
public void addContact(Long userId, ResultCallback callback) {
public void addContact(Long userId, ResultEventCallback<Void> callback) {
contactManager.addContact(userId, callback);
}
......@@ -233,7 +246,7 @@ public class CCIMClient {
/**
* 验证联系人申请
*/
public void checkContactReq(Long reqUserId, boolean accept, ResultCallback callback) {
public void checkContactReq(Long reqUserId, boolean accept, ResultEventCallback<Void> callback) {
contactManager.checkContactReq(reqUserId, accept, callback);
}
......@@ -248,7 +261,7 @@ public class CCIMClient {
/**
* 删除联系人群组
*/
public void deleteContactGroup(Long groupId, ResultCallback callback) {
public void deleteContactGroup(Long groupId, ResultEventCallback<Void> callback) {
contactManager.deleteContactGroup(groupId, callback);
}
......@@ -256,28 +269,28 @@ public class CCIMClient {
/**
* 移动联系人所在的群组
*/
public void moveContactGroup(Long groupId, Long userId, ResultCallback callback) {
public void moveContactGroup(Long groupId, Long userId, ResultEventCallback<Void> callback) {
contactManager.moveContactGroup(groupId, userId, callback);
}
/**
* 删除联系人
*/
public void deleteContact(Long userId, ResultCallback callback) {
public void deleteContact(Long userId, ResultEventCallback<Void> callback) {
contactManager.deleteContact(userId, callback);
}
/**
* 拉黑联系人
*/
public void blockContact(Long userId, ResultCallback callback) {
public void blockContact(Long userId, ResultEventCallback<Void> callback) {
contactManager.blockContact(userId, callback);
}
/**
* 举报违规用户
*/
public void reportIllegalUser(String title, String content, Long userId, ResultCallback callback) {
public void reportIllegalUser(String title, String content, Long userId, ResultEventCallback<Void> callback) {
contactManager.reportIllegalUser(title, content, userId, callback);
}
......@@ -292,28 +305,28 @@ public class CCIMClient {
/**
* 加入频道
*/
public void joinChannel(Long channelId, ResultCallback callback) {
public void joinChannel(Long channelId, ResultEventCallback<Void> callback) {
channelManager.joinChannel(channelId, callback);
}
/**
* 移除频道成员
*/
public void removeChannelMember(Long channelId, Long userId, ResultCallback callback) {
public void removeChannelMember(Long channelId, Long userId, ResultEventCallback<Void> callback) {
channelManager.removeChannelMember(channelId, userId, callback);
}
/**
* 频道拉黑
*/
public void blockChannelUser(Long channelId, Long userId, ResultCallback callback) {
public void blockChannelUser(Long channelId, Long userId, ResultEventCallback<Void> callback) {
channelManager.blockChannelUser(channelId, userId, callback);
}
/**
* 退出频道
*/
public void exitChannel(Long channelId, ResultCallback callback) {
public void exitChannel(Long channelId, ResultEventCallback<Void> callback) {
channelManager.exitChannel(channelId, callback);
}
......@@ -412,18 +425,26 @@ public class CCIMClient {
/**
* 开始录音
*/
public void startRecordAudioMessage(FragmentActivity activity, ResultCallback resultCallback) {
PermissionX.init(activity)
.permissions(Manifest.permission.RECORD_AUDIO)
.onExplainRequestReason((scope, deniedList, beforeRequest) -> scope.showRequestReasonDialog(deniedList, "即将申请的权限是程序必须依赖的权限", "我已明白"))
.onForwardToSettings((scope, deniedList) -> scope.showForwardToSettingsDialog(deniedList, "您需要去应用程序设置当中手动开启权限", "我已明白"))
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
public void startRecordAudioMessage(Context context, ResultEventCallback<Void> resultCallback) {
Dexter.withContext(context)
.withPermission(Manifest.permission.RECORD_AUDIO)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback);
} else {
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
resultCallback.onFailed(ErrorCode.START_VOICE_FAILED);
}
});
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
resultCallback.onFailed(ErrorCode.START_VOICE_FAILED);
}
}).check();
}
/**
......@@ -502,7 +523,7 @@ public class CCIMClient {
/**
* 播放音乐
*/
public void startPlayAudio(Long msgId, ResultCallback resultCallback) {
public void startPlayAudio(Long msgId, ResultEventCallback<Void> resultCallback) {
messageManager.playAudio(msgId, downloadPrefix, cachePath, resultCallback);
}
......
......@@ -2,5 +2,5 @@ package com.ccwangluo.ccim.listener;
public interface OnConnectListener {
void onSocketConnection();
default void onSocketDisconnection(){};
void onSocketDisconnection();
}
package com.ccwangluo.ccim.listener;
public interface ResultCallback {
void onSuccess();
void onFailed(int errorCode);
}
package com.ccwangluo.ccim.manage;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import java.util.List;
......@@ -55,7 +54,7 @@ public class ChannelManager {
/**
* 加入频道
*/
public void joinChannel(Long channelId, ResultCallback callback) {
public void joinChannel(Long channelId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Channel.JoinChannelRequest.Builder joinchannel = Channel.JoinChannelRequest.newBuilder()
.setChannelId(channelId);
......@@ -64,8 +63,7 @@ public class ChannelManager {
callBackManager.addCallBack(id, new ResultEventCallback<Chat.ChatResponseMessage>() {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......@@ -78,7 +76,7 @@ public class ChannelManager {
/**
* 移除频道成员
*/
public void removeChannelMember(Long channelId, Long userId, ResultCallback callback) {
public void removeChannelMember(Long channelId, Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Channel.RemoveMemberRequest.Builder removeMemberReq = Channel.RemoveMemberRequest.newBuilder()
.setChannelId(channelId)
......@@ -90,7 +88,7 @@ public class ChannelManager {
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasRemoveMemberRes()) {
logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess();
callback.onSuccess(null);
}
}
......@@ -104,7 +102,7 @@ public class ChannelManager {
/**
* 频道拉黑
*/
public void blockChannelUser(Long channelId, Long userId, ResultCallback callback) {
public void blockChannelUser(Long channelId, Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Channel.ChannelBlockUserRequest request = Channel.ChannelBlockUserRequest.newBuilder()
.setChannelId(channelId)
......@@ -116,7 +114,7 @@ public class ChannelManager {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......@@ -129,7 +127,7 @@ public class ChannelManager {
/**
* 退出频道
*/
public void exitChannel(Long channelId, ResultCallback callback) {
public void exitChannel(Long channelId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Channel.ExitChannelRequest.Builder exitChannel = Channel.ExitChannelRequest.newBuilder()
.setChannelId(channelId);
......@@ -139,7 +137,7 @@ public class ChannelManager {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......
......@@ -3,6 +3,7 @@ package com.ccwangluo.ccim.manage;
import android.text.TextUtils;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.ContactGroup;
import com.ccwangluo.ccim.modle.ContactRequestsRes;
......@@ -12,9 +13,6 @@ import com.ccwangluo.ccim.modle.PullContactsRes;
import com.ccwangluo.ccim.modle.SearchRes;
import com.ccwangluo.ccim.modle.Status;
import com.ccwangluo.ccim.modle.User;
import com.ccwangluo.ccim.listener.ContactsCallBack;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.google.gson.Gson;
import com.google.protobuf.util.JsonFormat;
......@@ -44,9 +42,10 @@ public class ContactManager {
/**
* 获取联系人列表
*/
public void getContactList(ContactsCallBack resultEventCallback, boolean isClearCache) {
public void getContactList(ResultEventCallback<PullContactsRes> resultEventCallback, boolean isClearCache) {
if (!isClearCache && (contacts.size() > 0 || contactGroups.size() > 0 || dialogs.size() > 0)) {
resultEventCallback.onSuccess(contacts.values(), contactGroups.values(), dialogs.values());
PullContactsRes pullContactsRes = new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values());
resultEventCallback.onSuccess(pullContactsRes);
return;
}
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
......@@ -80,7 +79,8 @@ public class ContactManager {
dialogs.put(dialog.getContactUserId(), dialog);
}
}
resultEventCallback.onSuccess(contacts.values(), contactGroups.values(), dialogs.values());
resultEventCallback.onSuccess(new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values()));
} catch (Exception e) {
e.printStackTrace();
}
......@@ -100,7 +100,7 @@ public class ContactManager {
/**
* 搜索好友
*/
public void searchUser(String userName,Long userId,int page,int size, ResultEventCallback<SearchRes> resultEventCallback) {
public void searchUser(String userName, Long userId, int page, int size, ResultEventCallback<SearchRes> resultEventCallback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Chat.SearchRequest build = Chat.SearchRequest.newBuilder()
.setUsername(userName)
......@@ -137,7 +137,7 @@ public class ContactManager {
/**
* 添加好友
*/
public void addContact(Long userId, ResultCallback callback) {
public void addContact(Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
builder.setAddContactReq(Chat.AddContactRequest.newBuilder().setUserId(userId).build());
int id = socketManager.sendRequest(builder);
......@@ -145,7 +145,7 @@ public class ContactManager {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasAddContactRes()) {
callback.onSuccess();
callback.onSuccess(null);
}
}
......@@ -192,7 +192,7 @@ public class ContactManager {
/**
* 验证联系人申请
*/
public void checkContactReq(Long reqUserId, boolean accept, ResultCallback callback) {
public void checkContactReq(Long reqUserId, boolean accept, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Chat.CheckContactReqRequest checkContactReqRequest = Chat.CheckContactReqRequest.newBuilder()
.setReqUserId(reqUserId)
......@@ -211,7 +211,7 @@ public class ContactManager {
Contact contact = new Gson().fromJson(print, Contact.class);
contacts.put(contact.getContactUserId(), contact);
}
callback.onSuccess();
callback.onSuccess(null);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -257,7 +257,7 @@ public class ContactManager {
/**
* 删除联系人群组
*/
public void deleteContactGroup(Long groupId, ResultCallback callback) {
public void deleteContactGroup(Long groupId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
builder.setDeleteContactGroupReq(ContactOuterClass.DeleteContactGroupRequest.newBuilder().setContactGroupId(groupId).build());
int id = socketManager.sendRequest(builder);
......@@ -271,7 +271,7 @@ public class ContactManager {
value.setContactGroupId(0L);
}
}
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......@@ -285,7 +285,7 @@ public class ContactManager {
/**
* 移动联系人所在的群组
*/
public void moveContactGroup(Long groupId, Long userId, ResultCallback callback) {
public void moveContactGroup(Long groupId, Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Chat.MoveContactGroupRequest moveContactGroupRequest = Chat.MoveContactGroupRequest.newBuilder()
.setContactGroupId(groupId)
......@@ -301,7 +301,7 @@ public class ContactManager {
if (contact != null) {
contact.setContactGroupId(groupId);
}
callback.onSuccess();
callback.onSuccess(null);
}
}
......@@ -315,7 +315,7 @@ public class ContactManager {
/**
* 删除联系人
*/
public void deleteContact(Long userId, ResultCallback callback) {
public void deleteContact(Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Chat.DeleteContactRequest deleteContactRequest = Chat.DeleteContactRequest.newBuilder()
.setContactUserId(userId)
......@@ -327,7 +327,7 @@ public class ContactManager {
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
contacts.remove(userId);
dialogs.remove(userId);
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......@@ -340,7 +340,7 @@ public class ContactManager {
/**
* 拉黑联系人
*/
public void blockContact(Long userId, ResultCallback callback) {
public void blockContact(Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
ccim.protocol.User.BlockUserRequest blockContactRequest = ccim.protocol.User.BlockUserRequest.newBuilder()
.setBlockedUserId(userId)
......@@ -354,7 +354,7 @@ public class ContactManager {
if (contact != null) {
contact.setStatus(Status.CONTACT_STATUS_BLACK_LIST);
}
callback.onSuccess();
callback.onSuccess(null);
}
@Override
......@@ -367,7 +367,7 @@ public class ContactManager {
/**
* 举报违规用户
*/
public void reportIllegalUser(String title, String content, Long userId, ResultCallback callback) {
public void reportIllegalUser(String title, String content, Long userId, ResultEventCallback<Void> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Chat.ReportIllegalUserRequest reportIllegalUserRequest = Chat.ReportIllegalUserRequest.newBuilder()
.setContent(content)
......@@ -381,7 +381,7 @@ public class ContactManager {
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasReportIllegalUserRes()) {
logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess();
callback.onSuccess(null);
}
}
......@@ -393,7 +393,6 @@ public class ContactManager {
}
/**
*
* @param strangerDialog
*/
public void putStrangerDialog(Dialog strangerDialog) {
......@@ -402,6 +401,7 @@ public class ContactManager {
/**
* 新增对话列表
*
* @param senderUserId
* @param userName
*/
......@@ -429,6 +429,7 @@ public class ContactManager {
/**
* 新联系人
*
* @param contact
*/
public void pushNewContact(Contact contact) {
......@@ -441,6 +442,7 @@ public class ContactManager {
/**
* 删除联系人
*
* @param contactUserId
*/
public void pushDeleteContact(long contactUserId) {
......@@ -450,6 +452,7 @@ public class ContactManager {
/**
* 更新联系人网络状态
*
* @param contactUserId
* @param netStatus
*/
......
......@@ -6,7 +6,6 @@ import androidx.room.Room;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.database.AppDatabase;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.util.ErrorCode;
......@@ -164,9 +163,9 @@ public class MessageManager {
String filename = preUploadSignRes.getFilename();
String filePath = MediaHelper.getInstance().getFilePath(filename, path);
String preSignedUrl = preUploadSignRes.getPreSignedUrl();
FileUtils.uploadFile(filePath, preSignedUrl, new ResultCallback() {
FileUtils.uploadFile(filePath, preSignedUrl, new ResultEventCallback<Void>() {
@Override
public void onSuccess() {
public void onSuccess(Void unused) {
callback.onSuccess(filename);
}
......@@ -187,7 +186,7 @@ public class MessageManager {
}
public void playAudio(Long msgId, String downloadPrefix, String cachePath, ResultCallback resultCallback) {
public void playAudio(Long msgId, String downloadPrefix, String cachePath, ResultEventCallback<Void> resultCallback) {
executor.execute(() -> {
MessageContent messageContent = db.messageDao().getMsgById(msgId);
if (messageContent == null) {
......
package com.ccwangluo.ccim.modle;
import java.util.List;
import java.util.Collection;
public class PullContactsRes {
private List<ContactGroup> contactGroups;
private List<Contact> contacts;
private List<Dialog> dialogs;
private Collection<ContactGroup> contactGroups;
private Collection<Contact> contacts;
private Collection<Dialog> dialogs;
public List<Dialog> getDialogs() {
return dialogs;
}
public void setDialogs(List<Dialog> dialogs) {
public PullContactsRes(Collection<ContactGroup> contactGroups, Collection<Contact> contacts, Collection<Dialog> dialogs) {
this.contactGroups = contactGroups;
this.contacts = contacts;
this.dialogs = dialogs;
}
public List<ContactGroup> getContactGroups() {
public Collection<ContactGroup> getContactGroups() {
return contactGroups;
}
public void setContactGroups(List<ContactGroup> contactGroups) {
public void setContactGroups(Collection<ContactGroup> contactGroups) {
this.contactGroups = contactGroups;
}
public List<Contact> getContacts() {
public Collection<Contact> getContacts() {
return contacts;
}
public void setContacts(List<Contact> contacts) {
public void setContacts(Collection<Contact> contacts) {
this.contacts = contacts;
}
public Collection<Dialog> getDialogs() {
return dialogs;
}
public void setDialogs(Collection<Dialog> dialogs) {
this.dialogs = dialogs;
}
}
......@@ -3,7 +3,6 @@ package com.ccwangluo.ccim.util;
import android.text.TextUtils;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import java.io.File;
......@@ -25,7 +24,7 @@ import okhttp3.Response;
public class FileUtils {
private static final Logger logger = Logger.getLogger(CCIMClient.class.getName());
public static void uploadFile(String filepath, String url, ResultCallback resultCallback) {
public static void uploadFile(String filepath, String url, ResultEventCallback<Void> resultCallback) {
MediaType mediaType = MediaType.parse("text/x-markdown; charset=utf-8");
OkHttpClient okHttpClient = new OkHttpClient();
File file = new File(filepath);
......@@ -43,7 +42,7 @@ public class FileUtils {
@Override
public void onResponse(Call call, Response response) throws IOException {
logger.info("upload success : " + response.toString());
resultCallback.onSuccess();
resultCallback.onSuccess(null);
}
});
}
......
......@@ -3,8 +3,7 @@ package com.ccwangluo.ccim.util;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.Build;
import com.ccwangluo.ccim.listener.ResultCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import java.io.File;
......@@ -34,7 +33,7 @@ public class MediaHelper {
/**
* 准备录音
*/
public void prepare(String path, int maxAudioDuration, ResultCallback resultCallback) {
public void prepare(String path, int maxAudioDuration, ResultEventCallback<Void> resultCallback) {
try {
if (mMediaRecorder != null) {
cancel();
......@@ -59,7 +58,7 @@ public class MediaHelper {
mMediaRecorder.prepare();
mMediaRecorder.start();
start_record_millis = System.currentTimeMillis();
resultCallback.onSuccess();
resultCallback.onSuccess(null);
} catch (Exception e) {
resultCallback.onFailed(ErrorCode.START_VOICE_FAILED);
}
......@@ -101,13 +100,13 @@ public class MediaHelper {
*
* @param filePath
*/
public void play(String filePath, ResultCallback resultCallback) {
public void play(String filePath, ResultEventCallback<Void> resultCallback) {
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start();
resultCallback.onSuccess();
resultCallback.onSuccess(null);
} catch (Exception e) {
resultCallback.onFailed(ErrorCode.ERROR_VOICE_PLAY);
}
......
......@@ -19,6 +19,7 @@ enum StatusCode {
STATUS_CODE_SIGN_EXPIRED = 20004; // 签名过期
STATUS_CODE_INVALID_SIGN = 20005; // 无效签名
STATUS_CODE_EXT_DATA_TOO_LARGE = 20006; // 扩展数据过大
STATUS_CODE_SENSITIVE_ERROR = 20007; // 包含敏感信息,被禁止发送
// CHAT_SERVICE_ERROR = 30000;
STATUS_CODE_CHECK_CONTACT_UPDATED_ERROR = 30001; // 好友请求已同意或拒绝
......
package com.ccwangluo.ccim;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
\ No newline at end of file
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