diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/PushProvider.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/PushProvider.java new file mode 100644 index 0000000..9ad41ed --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/PushProvider.java @@ -0,0 +1,44 @@ +package cn.org.bjca.trust.android.lib.im; + +import android.content.ContentProvider; +import android.content.ContentValues; +import android.database.Cursor; +import android.net.Uri; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class PushProvider extends ContentProvider { + @Override + public boolean onCreate() { + return false; + } + + @Nullable + @Override + public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { + return null; + } + + @Nullable + @Override + public String getType(@NonNull Uri uri) { + return null; + } + + @Nullable + @Override + public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { + return null; + } + + @Override + public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { + return 0; + } + + @Override + public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { + return 0; + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/SzyxPush.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/SzyxPush.java new file mode 100644 index 0000000..079bb5e --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/SzyxPush.java @@ -0,0 +1,16 @@ +package cn.org.bjca.trust.android.lib.im; + +import cn.org.bjca.trust.android.lib.im.kit.SdkInterface; +import cn.org.bjca.trust.android.lib.im.manager.PushSdkManager; + +public class SzyxPush { + + private static final class SdkInterfaceHolder { + static final SdkInterface instance = new PushSdkManager(); + } + + public static SdkInterface getInstance() { + return SdkInterfaceHolder.instance; + + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/IMUserFullInfo.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/IMUserFullInfo.java new file mode 100644 index 0000000..1eb0ac5 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/IMUserFullInfo.java @@ -0,0 +1,4 @@ +package cn.org.bjca.trust.android.lib.im.bean; + +public class IMUserFullInfo { +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/SZYXMessage.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/SZYXMessage.java new file mode 100644 index 0000000..6abcd3f --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/SZYXMessage.java @@ -0,0 +1,56 @@ +package cn.org.bjca.trust.android.lib.im.bean; + +import cn.org.bjca.trust.android.lib.im.bean.message.TextMessage; +import cn.org.bjca.trust.android.lib.im.enums.MsgType; + +public class SZYXMessage { + /** + * 消息id + */ + private String msgId; + /** + *发送者信息 + */ + private UserInfo fromClient; + /** + *接收者信息 + */ + private UserInfo toClient; + /** + *真实讲话人 + */ + private UserInfo speaker; + /** + *自定义信息 + */ + private String describe; + /** + *是不是群消息 + */ + private boolean isGroup; + /** + *是不是接收消息 + */ + private boolean isArrive; + /** + *消息发送状态 + */ + private boolean isSuccess; + /** + *时间戳 + */ + private long timestamp; + /** + *租户编号 + */ + private String tenantNo; + /** + *消息序列号 + */ + private long seq; + /** + * 消息类型 + */ + private MsgType msgType; + private TextMessage textMessage; +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/UserInfo.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/UserInfo.java new file mode 100644 index 0000000..4a4ab18 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/UserInfo.java @@ -0,0 +1,44 @@ +package cn.org.bjca.trust.android.lib.im.bean; + +public class UserInfo { + private String userId; + private String nickName; + private String faceUrl; + private String gender; + + public UserInfo(String userId) { + this.userId = userId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getFaceUrl() { + return faceUrl; + } + + public void setFaceUrl(String faceUrl) { + this.faceUrl = faceUrl; + } + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/message/TextMessage.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/message/TextMessage.java new file mode 100644 index 0000000..24e1b50 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/bean/message/TextMessage.java @@ -0,0 +1,27 @@ +package cn.org.bjca.trust.android.lib.im.bean.message; + +import androidx.annotation.NonNull; + +public class TextMessage { + private String text; + + public TextMessage(String text) { + this.text = text; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + @NonNull + @Override + public String toString() { + return "TextMessage{" + + "text='" + text + '\'' + + '}'; + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/MsgType.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/MsgType.java new file mode 100644 index 0000000..0c737fb --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/MsgType.java @@ -0,0 +1,35 @@ +package cn.org.bjca.trust.android.lib.im.enums; + +public enum MsgType { + UNKNOWN(-1) /* 未知 */, + Text(1) /* 文本 */, + Voice(2) /* 语音 */, + Image(3) /* 图片 */, + Location(4) /* 位置 */, + Video(5) /* 视频 */, + File(6) /* 文件 */, + At(7) /* @我 */, + READ(8) /* 已读 */, + REVOKE(9) /* 撤回 */, + DELETE(10) /* 删除 */, + Other(101) /* 自定义消息 */, + + Notify(999); + + private int type = -1; + MsgType(final int type) { + this.type = type; + } + public int type() { + return this.type; + } + + public static MsgType getType(final int type) { + for (final MsgType value : MsgType.values()) { + if (value.type == type) { + return value; + } + } + return UNKNOWN; + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/PacketType.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/PacketType.java new file mode 100644 index 0000000..4423509 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/enums/PacketType.java @@ -0,0 +1,34 @@ +package cn.org.bjca.trust.android.lib.im.enums; + +public enum PacketType { + //连接请求 + CONNECT(10), + CONNACK(11), + //发送消息 + SEND(20), + SENDACK(21), + //心跳包 + PING(30), + PANG(31), + // 离线通知 + DISCONNECT(40), + UNKNOWN(-1); + + private int type = -1; + PacketType(final int type) { + this.type = type; + } + + public int type() { + return this.type; + } + + public static PacketType getType(final int type) { + for (final PacketType value : PacketType.values()) { + if (value.type == type) { + return value; + } + } + return UNKNOWN; + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKCallback.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKCallback.java new file mode 100644 index 0000000..f0643bb --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKCallback.java @@ -0,0 +1,6 @@ +package cn.org.bjca.trust.android.lib.im.kit; + +public interface IMSDKCallback { + void success(); + void failed (int code, String error); +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKListener.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKListener.java new file mode 100644 index 0000000..9f71f20 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/IMSDKListener.java @@ -0,0 +1,33 @@ +package cn.org.bjca.trust.android.lib.im.kit; + +import cn.org.bjca.trust.android.lib.im.bean.IMUserFullInfo; + +public interface IMSDKListener { + /** + * 连接中 + */ + void onConnecting (); + + /** + * 连接成功 + */ + void onConnectSuccess (); + + /** + *连接失败 + * @param code 错误码 + * @param error 错误信息 + */ + void onConnectFailed (int code, String error); + + /** + *用户被踢出 + */ + void onKickedOffline (); + + /** + *用户信息变更 + */ + void onSelfInfoUpdated (IMUserFullInfo info); + +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/MsgListener.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/MsgListener.java new file mode 100644 index 0000000..1e036ed --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/MsgListener.java @@ -0,0 +1,9 @@ +package cn.org.bjca.trust.android.lib.im.kit; + +import java.util.List; + +import cn.org.bjca.trust.android.lib.im.bean.SZYXMessage; + +public interface MsgListener { + void messageArrive(List messages); +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/SdkInterface.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/SdkInterface.java new file mode 100644 index 0000000..0e4607f --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/kit/SdkInterface.java @@ -0,0 +1,26 @@ +package cn.org.bjca.trust.android.lib.im.kit; + +import android.content.Context; + +public interface SdkInterface { + + void addIMSDKListener(IMSDKListener listener); + + void removeIMSDKListener(IMSDKListener listener); + + void init(Context context, String sdkAppID, IMSDKCallback callback); + + void login(String userID, String userSig, IMSDKCallback callback); + + void logout( IMSDKCallback callback); + + void addMsgListener(MsgListener listener); + + void removeMsgListener(MsgListener listener); + + void sendMsgForTextToC(String toUserId, String text, IMSDKCallback callback); + + void sendMsgForTextToG(String toGroupId, String text, IMSDKCallback callback); + + String getVersion(); +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/PushSdkManager.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/PushSdkManager.java new file mode 100644 index 0000000..6452f36 --- /dev/null +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/PushSdkManager.java @@ -0,0 +1,60 @@ +package cn.org.bjca.trust.android.lib.im.manager; + +import android.content.Context; + +import cn.org.bjca.trust.android.lib.im.kit.IMSDKCallback; +import cn.org.bjca.trust.android.lib.im.kit.IMSDKListener; +import cn.org.bjca.trust.android.lib.im.kit.MsgListener; +import cn.org.bjca.trust.android.lib.im.kit.SdkInterface; + +public class PushSdkManager implements SdkInterface { + @Override + public void addIMSDKListener(IMSDKListener listener) { + + } + + @Override + public void removeIMSDKListener(IMSDKListener listener) { + + } + + @Override + public void init(Context context, String sdkAppID, IMSDKCallback callback) { + + } + + @Override + public void login(String userID, String userSig, IMSDKCallback callback) { + + } + + @Override + public void logout(IMSDKCallback callback) { + + } + + @Override + public void addMsgListener(MsgListener listener) { + + } + + @Override + public void removeMsgListener(MsgListener listener) { + + } + + @Override + public void sendMsgForTextToC(String toUserId, String text, IMSDKCallback callback) { + + } + + @Override + public void sendMsgForTextToG(String toGroupId, String text, IMSDKCallback callback) { + + } + + @Override + public String getVersion() { + return null; + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c0cf9e..5b78bcc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools">