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