xuqm hai 1 ano
pai
achega
30cfc892c1

+ 44 - 0
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;
+    }
+}

+ 16 - 0
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;
+
+    }
+}

+ 4 - 0
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 {
+}

+ 56 - 0
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;
+}

+ 44 - 0
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;
+    }
+}

+ 27 - 0
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 + '\'' +
+                '}';
+    }
+}

+ 35 - 0
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;
+    }
+}

+ 34 - 0
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;
+    }
+}

+ 6 - 0
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);
+}

+ 33 - 0
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);
+
+}

+ 9 - 0
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<SZYXMessage> messages);
+}

+ 26 - 0
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();
+}

+ 60 - 0
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;
+    }
+}

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -3,6 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools">
 
     <application
+        android:name=".MyApplication"
         android:allowBackup="true"
         android:dataExtractionRules="@xml/data_extraction_rules"
         android:fullBackupContent="@xml/backup_rules"

+ 52 - 0
app/src/main/java/cn/org/bjca/trust/android/imdemo/MyApplication.java

@@ -0,0 +1,52 @@
+package cn.org.bjca.trust.android.imdemo;
+
+import android.app.Application;
+
+import cn.org.bjca.trust.android.lib.im.SzyxPush;
+import cn.org.bjca.trust.android.lib.im.bean.IMUserFullInfo;
+import cn.org.bjca.trust.android.lib.im.kit.IMSDKCallback;
+import cn.org.bjca.trust.android.lib.im.kit.IMSDKListener;
+
+public class MyApplication extends Application {
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        SzyxPush.getInstance().addIMSDKListener(new IMSDKListener() {
+            @Override
+            public void onConnecting() {
+
+            }
+
+            @Override
+            public void onConnectSuccess() {
+
+            }
+
+            @Override
+            public void onConnectFailed(int code, String error) {
+
+            }
+
+            @Override
+            public void onKickedOffline() {
+
+            }
+
+            @Override
+            public void onSelfInfoUpdated(IMUserFullInfo info) {
+
+            }
+        });
+        SzyxPush.getInstance().init(this, "202305161853245", new IMSDKCallback() {
+            @Override
+            public void success() {
+
+            }
+
+            @Override
+            public void failed(int code, String error) {
+
+            }
+        });
+    }
+}