DESKTOP-JJ6HLMB 1 năm trước cách đây
mục cha
commit
c7f4dd083b

+ 50 - 4
TMessagesProj/src/main/java/org/telegram/cricdit/view/ExpandTextView.java

@@ -23,12 +23,21 @@ import androidx.annotation.Nullable;
 import org.telegram.cricdit.bean.GroupInfoBean;
 import org.telegram.cricdit.config.Constants;
 import org.telegram.cricdit.mvp.CommentPresenter;
+import org.telegram.cricdit.utils.ToastUtil;
+import org.telegram.messenger.AndroidUtilities;
+import org.telegram.messenger.MessagesController;
+import org.telegram.messenger.MessagesStorage;
 import org.telegram.messenger.R;
 
 //import com.alibaba.android.arouter.launcher.ARouter;
 //import com.cricdit.libbase.arouter.ARouterPath;
 import org.telegram.cricdit.base.BaseObserver;
+import org.telegram.messenger.UserConfig;
+import org.telegram.tgnet.ConnectionsManager;
+import org.telegram.tgnet.TLObject;
+import org.telegram.tgnet.TLRPC;
 import org.telegram.ui.ActionBar.BaseFragment;
+import org.telegram.ui.ChatActivity;
 import org.telegram.ui.ProfileActivity;
 //import com.cricdit.libbase.constants.Constants;
 //import com.cricdit.module.main.R;
@@ -283,12 +292,49 @@ public class ExpandTextView extends androidx.appcompat.widget.AppCompatTextView
                         } else {
                             gName = finalWorkingText.substring(index + "https://t.me/".length());
                         }
+                        final int[] requestId = new int[]{0};
+                        final int[] intentAccount = new int[]{UserConfig.selectedAccount};
+                        if (gName != null) {
+                            TLObject req;
+                            if (AndroidUtilities.isNumeric(gName)) {
+                                TLRPC.TL_contacts_resolvePhone resolvePhone = new TLRPC.TL_contacts_resolvePhone();
+                                resolvePhone.phone = gName;
+                                req = resolvePhone;
+                            } else {
+                                TLRPC.TL_contacts_resolveUsername resolveUsername = new TLRPC.TL_contacts_resolveUsername();
+                                resolveUsername.username = gName;
+                                req = resolveUsername;
+                            }
+                            // TODO: 2022/11/16  群组跳转未实现
+                            requestId[0] = ConnectionsManager.getInstance(intentAccount[0]).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
+                                TLRPC.TL_contacts_resolvedPeer res = (TLRPC.TL_contacts_resolvedPeer) response;
+                                if (res != null && res.users != null) {
+                                    MessagesController.getInstance(intentAccount[0]).putUsers(res.users, false);
+                                    MessagesController.getInstance(intentAccount[0]).putChats(res.chats, false);
+                                    MessagesStorage.getInstance(intentAccount[0]).putUsersAndChats(res.users, res.chats, false, true);
+//                                long dialog_id;
+//                                boolean isBot = false;
+                                    Bundle args = new Bundle();
+//                                if (!res.chats.isEmpty()) {
+//                                    args.putLong("chat_id", res.chats.get(0).id);
+//                                    dialog_id = -res.chats.get(0).id;
+//                                } else {
+                                    args.putLong("user_id", res.users.get(0).id);
+//                                dialog_id = res.users.get(0).id;
+//                                }
+                                    ChatActivity fragment = new ChatActivity(args);
+                                    baseFragment.presentFragment(fragment);
+                                } else {
+                                    ToastUtil.show(baseFragment.getParentActivity(), "Username not found");
+                                }
+                            }));
+                        }
 
                         //跳转到群组聊天界面    todo 这里需要样子跳转到聊天界面是否正确  这里需要看电报的源码  根据gName信息获取个人信息(user_id) 跳转到聊天界面
-                        String user_id = "0";
-                        Bundle args = new Bundle();
-                        args.putLong("user_id", Long.parseLong(user_id));
-                        baseFragment.presentFragment(new ProfileActivity(args));
+//                        String user_id = "0";
+//                        Bundle args = new Bundle();
+//                        args.putLong("user_id", Long.parseLong(user_id));
+//                        baseFragment.presentFragment(new ProfileActivity(args));
 //                        new CommentPresenter().groupLinkInfo(gName, new BaseObserver<GroupInfoBean>() {
 //                            @Override
 //                            protected void onSuccess(GroupInfoBean data) {

+ 1 - 3
TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java

@@ -24825,8 +24825,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
     }
 
     private void didPressMessageUrl(CharacterStyle url, boolean longPress, MessageObject messageObject, ChatMessageCell cell) {
-//        Log.e("didPressMessageUrl>>>>>>>>>>>>:::", "链接点击响应了");
-//        Log.e("CharacterStyle>>>>>>>>>>>>:::", ur
+        Log.e("didPressMessageUrl>>>>>>>>>>>>:::", "链接点击响应了");
         if (url == null || getParentActivity() == null) {
             return;
         }
@@ -24843,7 +24842,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
             TLRPC.User user = getMessagesController().getUser(Utilities.parseLong(((URLSpanUserMention) url).getURL()));
             if (user != null) {
                 MessagesController.openChatOrProfileWith(user, null, ChatActivity.this, 0, false);
-//                Log.e("didPressMessageUrl>>>>>>>>>>>>:::", "进入ChatActivity了");
             }
             if (longPress && cell != null) {
                 cell.resetPressedLink(-1);

+ 1 - 0
TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java

@@ -3268,6 +3268,7 @@ public class LaunchActivity extends BasePermissionsActivity implements ActionBar
                 resolveUsername.username = username;
                 req = resolveUsername;
             }
+            // TODO: 2022/11/16  群组跳转逻辑调试未完成
             requestId[0] = ConnectionsManager.getInstance(intentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
                 if (!LaunchActivity.this.isFinishing()) {
                     boolean hideProgressDialog = true;