diff --git a/SzyxImSdk/build.gradle b/SzyxImSdk/build.gradle index 9786a87..fa95369 100644 --- a/SzyxImSdk/build.gradle +++ b/SzyxImSdk/build.gradle @@ -1,6 +1,5 @@ plugins { id 'com.android.library' - id "io.sentry.android.gradle" version "3.4.2" } def versionCode = 1 diff --git a/SzyxImSdk/src/main/AndroidManifest.xml b/SzyxImSdk/src/main/AndroidManifest.xml index 7834f97..a5918e6 100644 --- a/SzyxImSdk/src/main/AndroidManifest.xml +++ b/SzyxImSdk/src/main/AndroidManifest.xml @@ -1,32 +1,4 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/common/DeviceHelper.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/common/DeviceHelper.java index b2c722c..c0f1854 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/common/DeviceHelper.java +++ b/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) { } } diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/kit/IMInterface.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/kit/IMInterface.java index d6b107f..caf8c38 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/kit/IMInterface.java +++ b/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); } diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java index 6d688cb..d855c2e 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java +++ b/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()); } } diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/ConnectMessage.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/ConnectMessage.java index 1085306..b6c0d38 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/ConnectMessage.java +++ b/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; + } } diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SZYXMessage.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SZYXMessage.java new file mode 100644 index 0000000..fdfb53d --- /dev/null +++ b/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); + } +} diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java index b7c5d20..c80252c 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/manager/SZYXImManager.java +++ b/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 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bce395f..bb9a0d8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + + diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java new file mode 100644 index 0000000..76360e4 --- /dev/null +++ b/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 { + + @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); + } +} \ No newline at end of file diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java index e094086..725348d 100644 --- a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java +++ b/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; @@ -22,14 +24,31 @@ public class FriendsActivity extends BaseListActivity { } @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 adapter() { return adapter; } - private final CommonPagedAdapter adapter = new CommonPagedAdapter(R.layout.item_main) { + private final CommonPagedAdapter adapter = new CommonPagedAdapter(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); } }; + } diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java index d821d76..f6ce125 100644 --- a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/login/LoginActivity.java +++ b/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) { diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/FriendsVM.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/FriendsVM.java index cbd1e13..98cfb77 100644 --- a/app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/FriendsVM.java +++ b/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 { + private final ArrayList list = new ArrayList() { + { + 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 onResponse) { - onResponse.onResponse(new ArrayList<>()); + onResponse.onResponse(list); } } diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml new file mode 100644 index 0000000..cd86663 --- /dev/null +++ b/app/src/main/res/layout/activity_chat.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_friends.xml b/app/src/main/res/layout/item_friends.xml index 6842247..321cd53 100644 --- a/app/src/main/res/layout/item_friends.xml +++ b/app/src/main/res/layout/item_friends.xml @@ -1,32 +1,44 @@ - + - + - + - + - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 1454d1b..a100ce0 100644 --- a/build.gradle +++ b/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 } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 92f7c21..392490a 100644 --- a/settings.gradle +++ b/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 } }