Parcourir la source

发送登录消息

xuqm il y a 1 an
Parent
commit
03a5b6ecb3

+ 0 - 1
SzyxImSdk/build.gradle

@@ -1,6 +1,5 @@
 plugins {
     id 'com.android.library'
-    id "io.sentry.android.gradle" version "3.4.2"
 }
 
 def versionCode = 1

+ 0 - 28
SzyxImSdk/src/main/AndroidManifest.xml

@@ -1,32 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <application>
-        <!-- Required: set your sentry.io project identifier (DSN) -->
-        <meta-data
-            android:name="io.sentry.dsn"
-            android:value="https://e0308587cb2041d4909b97f3e4549d8d@sentry.51trust.net/9" />
-
-        <!-- enable automatic breadcrumbs for user interactions (clicks, swipes, scrolls) -->
-        <meta-data
-            android:name="io.sentry.traces.user-interaction.enable"
-            android:value="true" />
-        <!-- enable screenshot for crashes -->
-        <meta-data
-            android:name="io.sentry.attach-screenshot"
-            android:value="true" />
-        <!-- enable view hierarchy for crashes -->
-        <meta-data
-            android:name="io.sentry.attach-view-hierarchy"
-            android:value="true" />
-
-        <!-- enable the performance API by setting a sample-rate, adjust in production env -->
-        <meta-data
-            android:name="io.sentry.traces.sample-rate"
-            android:value="1.0" />
-        <!-- enable profiling when starting transactions, adjust in production env -->
-        <meta-data
-            android:name="io.sentry.traces.profiling.sample-rate"
-            android:value="1.0" />
-    </application>
 </manifest>

+ 1 - 1
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/common/DeviceHelper.java

@@ -45,7 +45,7 @@ public class DeviceHelper {
                             device.setSupportedAbis(CommonHelper.anyToString(field.get(null)));
                             break;
                     }
-                } catch (Exception e) {
+                } catch (Exception ignored) {
 
                 }
             }

+ 3 - 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/kit/IMInterface.java

@@ -1,6 +1,8 @@
 package cn.org.bjca.trust.android.lib.im.im.kit;
 
+import cn.org.bjca.trust.android.lib.im.im.msg.SZYXMessage;
 import cn.org.bjca.trust.android.lib.im.im.opt.ImConnectOptions;
+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;
 
@@ -13,5 +15,6 @@ public interface IMInterface {
     void logout();
     boolean isConnect();
     boolean isConnecting();
+    void sendSZYXMessage(SZYXMessage message, IMSDKCallback callback);
 
 }

+ 16 - 1
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java

@@ -11,9 +11,12 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
 import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
 
 import cn.org.bjca.trust.android.lib.im.cfg.Constant;
+import cn.org.bjca.trust.android.lib.im.common.DeviceHelper;
 import cn.org.bjca.trust.android.lib.im.common.json.GsonImplHelp;
 import cn.org.bjca.trust.android.lib.im.im.bean.PacketMessage;
 import cn.org.bjca.trust.android.lib.im.im.kit.IMInterface;
+import cn.org.bjca.trust.android.lib.im.im.msg.ConnectMessage;
+import cn.org.bjca.trust.android.lib.im.im.msg.SZYXMessage;
 import cn.org.bjca.trust.android.lib.im.im.opt.ImConnectOptions;
 import cn.org.bjca.trust.android.lib.im.kit.IMSDKCallback;
 import cn.org.bjca.trust.android.lib.im.kit.IMSDKListener;
@@ -81,6 +84,8 @@ public class ImManager implements IMInterface {
                     } catch (MqttException e) {
                         Log.e(TAG, "=====>connectComplete", e);
                     }
+                    // 发送登录消息
+                    sendConnectMsg();
                 }
 
                 @Override
@@ -140,6 +145,16 @@ public class ImManager implements IMInterface {
         return this.status == 1;
     }
 
+    @Override
+    public void sendSZYXMessage(SZYXMessage message, IMSDKCallback callback) {
+        sendPacketMessage(message, callback);
+    }
+
+    private void sendConnectMsg() {
+        ConnectMessage message = new ConnectMessage(DeviceHelper.getDevice());
+        sendPacketMessage(message, null);
+    }
+
     private void sendPacketMessage(PacketMessage message, IMSDKCallback callback) {
         if (null == connectOptions) {
             if (null != callback) callback.failed(204, "未登录");
@@ -153,7 +168,7 @@ public class ImManager implements IMInterface {
         try {
             mqttClient.publish("server", msg.getBytes(Charsets.UTF_8), 2, false);
         } catch (MqttException e) {
-
+            if (null != callback) callback.failed(206, e.getMessage());
         }
 
     }

+ 13 - 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/ConnectMessage.java

@@ -9,4 +9,17 @@ public class ConnectMessage extends PacketMessage {
         super(PacketType.CONNECT);
     }
     private DeviceEntity device;
+
+    public ConnectMessage(DeviceEntity device) {
+        super(PacketType.CONNECT);
+        this.device = device;
+    }
+
+    public DeviceEntity getDevice() {
+        return device;
+    }
+
+    public void setDevice(DeviceEntity device) {
+        this.device = device;
+    }
 }

+ 10 - 0
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SZYXMessage.java

@@ -0,0 +1,10 @@
+package cn.org.bjca.trust.android.lib.im.im.msg;
+
+import cn.org.bjca.trust.android.lib.im.enums.PacketType;
+import cn.org.bjca.trust.android.lib.im.im.bean.PacketMessage;
+
+public class SZYXMessage extends PacketMessage {
+    public SZYXMessage() {
+        super(PacketType.SEND);
+    }
+}

+ 1 - 1
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java

@@ -86,7 +86,7 @@ public class SZYXImManager implements SdkInterface {
 
     @Override
     public void sendMsgForTextToC(String toUserId, String text, IMSDKCallback callback) {
-
+//        IMHelper.getInstance().sendSZYXMessage();
     }
 
     @Override

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

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">
+
     <uses-permission android:name="android.permission.INTERNET" />
 
     <application
@@ -14,6 +15,9 @@
         android:theme="@style/Theme.ImAndroid"
         android:usesCleartextTraffic="true"
         tools:targetApi="31">
+        <activity
+            android:name=".ui.ChatActivity"
+            android:exported="false" />
         <activity
             android:name=".ui.login.LoginActivity"
             android:exported="true"

+ 23 - 0
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java

@@ -0,0 +1,23 @@
+package cn.org.bjca.trust.android.imdemo.ui;
+
+import android.os.Bundle;
+
+import com.xuqm.base.ui.BaseActivity;
+
+import cn.org.bjca.trust.android.imdemo.R;
+import cn.org.bjca.trust.android.imdemo.databinding.ActivityChatBinding;
+
+public class ChatActivity extends BaseActivity<ActivityChatBinding> {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_chat;
+    }
+
+    @Override
+    public void initView(Bundle savedInstanceState) {
+        super.initView(savedInstanceState);
+        String userId = getIntent().getStringExtra("userId");
+        getBinding().text.setText(userId);
+    }
+}

+ 20 - 1
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java

@@ -1,6 +1,8 @@
 package cn.org.bjca.trust.android.imdemo.ui;
 
+import android.content.Intent;
 import android.os.Bundle;
+import android.view.View;
 
 import com.xuqm.base.adapter.BasePagedAdapter;
 import com.xuqm.base.adapter.CommonPagedAdapter;
@@ -21,15 +23,32 @@ public class FriendsActivity extends BaseListActivity<UserItem, FriendsVM> {
         });
     }
 
+    @Override
+    public void itemClicked(View view, UserItem item, int position) {
+        if (item.getUserId().equals("001")) {
+
+        } else {
+            Intent intent = new Intent(mContext, ChatActivity.class);
+            intent.putExtra("userId", item.getUserId());
+            startActivity(intent);
+        }
+    }
+
     @Override
     public BasePagedAdapter<UserItem> adapter() {
         return adapter;
     }
 
-    private final CommonPagedAdapter<UserItem> adapter = new CommonPagedAdapter<UserItem>(R.layout.item_main) {
+    private final CommonPagedAdapter<UserItem> adapter = new CommonPagedAdapter<UserItem>(R.layout.item_friends) {
         @Override
         protected void convert(ViewHolder holder, UserItem item, int position) {
+            holder.setText(R.id.title, item.getNickName());
+            holder.setImage(R.id.icon, item.getFaceUrl());
+            holder.setText(R.id.des, item.getUserId());
+            if (item.getUserId().equals("001"))
+                holder.setBackgroundColor(R.id.root, 0x999999ff);
         }
 
     };
+
 }

+ 3 - 1
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java

@@ -5,6 +5,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.inputmethod.EditorInfo;
@@ -20,8 +21,8 @@ import androidx.appcompat.app.AppCompatActivity;
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProvider;
 
-import cn.org.bjca.trust.android.imdemo.ui.MainActivity;
 import cn.org.bjca.trust.android.imdemo.databinding.ActivityLoginBinding;
+import cn.org.bjca.trust.android.imdemo.ui.MainActivity;
 import cn.org.bjca.trust.android.lib.im.SZYXImSdk;
 import cn.org.bjca.trust.android.lib.im.kit.IMSDKCallback;
 
@@ -69,6 +70,7 @@ public class LoginActivity extends AppCompatActivity {
                 }
                 loadingProgressBar.setVisibility(View.GONE);
                 if (loginResult.getError() != null) {
+                    Log.e("=======>", loginResult.toString());
                     showLoginFailed(loginResult.getError());
                 }
                 if (loginResult.getSuccess() != null) {

+ 10 - 2
app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/FriendsVM.java

@@ -6,12 +6,20 @@ import com.xuqm.base.viewmodel.callback.Response;
 import java.util.ArrayList;
 
 import cn.org.bjca.trust.android.imdemo.data.item.UserItem;
-import cn.org.bjca.trust.android.lib.im.bean.UserInfo;
 
 public class FriendsVM extends BaseListViewModel<UserItem> {
 
+    private final ArrayList<UserItem> list = new ArrayList<UserItem>() {
+        {
+            add(new UserItem("001", "群组", "https://i.buyiju.com/img/zidian2/766.jpg", "男"));
+            add(new UserItem("13666666666", "张小明", "https://c-ssl.dtstatic.com/uploads/item/201912/15/20191215202849_uvcka.thumb.1000_0.jpg", "男"));
+            add(new UserItem("13811111111", "王二三", "https://c-ssl.dtstatic.com/uploads/blog/202101/03/20210103220618_31c95.thumb.1000_0.jpg", "男"));
+            add(new UserItem("13222222222", "赵晓旭", "https://up.enterdesk.com/edpic/47/48/90/4748902b2485376b7735cfbaecb12ad3.jpg", "男"));
+        }
+    };
+
     @Override
     public void loadData(int page, Response<UserItem> onResponse) {
-        onResponse.onResponse(new ArrayList<>());
+        onResponse.onResponse(list);
     }
 }

+ 22 - 0
app/src/main/res/layout/activity_chat.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:context=".ui.ChatActivity">
+
+        <TextView
+            android:id="@+id/text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="hello"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>

+ 39 - 27
app/src/main/res/layout/item_friends.xml

@@ -1,32 +1,44 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="65dp"
+    android:id="@+id/root"
+    android:paddingHorizontal="15dp">
 
-    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ui.MainActivity">
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:text="title"
+        android:textColor="#666666"
+        android:scaleType="center"
+        android:textSize="21sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/baseRefreshLayout"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:tag="layout/activity_base_list_0">
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:text="title"
+        android:textColor="#666666"
+        android:textSize="21sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/icon"
+        app:layout_constraintTop_toTopOf="parent" />
 
-            <com.xuqm.base.view.EmptyView
-                android:id="@+id/baseEmptyView"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+    <TextView
+        android:id="@+id/des"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="des"
+        android:textColor="#999999"
+        android:textSize="15sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/baseRecyclerView"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:overScrollMode="never" />
-
-            </com.xuqm.base.view.EmptyView>
-
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 2
build.gradle

@@ -1,5 +1,5 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 plugins {
-    id 'com.android.application' version '8.0.1' apply false
-    id 'com.android.library' version '8.0.1' apply false
+    id 'com.android.application' version '8.0.2' apply false
+    id 'com.android.library' version '8.0.2' apply false
 }

+ 5 - 4
settings.gradle

@@ -1,24 +1,25 @@
 pluginManagement {
     repositories {
         maven {
-            url 'http://nexus.51trust.net/repository/android-group/'
+            url 'http://127.0.0.1:1022/repository/maven-public/'
             allowInsecureProtocol true
         }
         maven {
-            url 'http://nexus.51trust.net/repository/gradle-plugin/'
+            url 'http://127.0.0.1:1022/repository/gradle-plugin/'
             allowInsecureProtocol true
         }
+//        google()
     }
 }
 dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
         maven {
-            url 'http://nexus.51trust.net/repository/android-group/'
+            url 'http://127.0.0.1:1022/repository/maven-public/'
             allowInsecureProtocol true
         }
         maven {
-            url 'http://nexus.51trust.net/repository/gradle-plugin/'
+            url 'http://127.0.0.1:1022/repository/gradle-plugin/'
             allowInsecureProtocol true
         }
     }