|
@@ -1,6 +1,7 @@
|
|
|
package org.telegram.cricdit.ui;
|
|
|
|
|
|
import android.content.Context;
|
|
|
+import android.graphics.Bitmap;
|
|
|
import android.os.Bundle;
|
|
|
import android.text.TextUtils;
|
|
|
import android.view.LayoutInflater;
|
|
@@ -17,8 +18,13 @@ import org.telegram.cricdit.bean.MoreGroupBean;
|
|
|
import org.telegram.cricdit.config.Constants;
|
|
|
import org.telegram.cricdit.mvp.MoreGroupPresenter;
|
|
|
import org.telegram.cricdit.mvp.MoreGroupView;
|
|
|
+import org.telegram.cricdit.net.ApiService;
|
|
|
+import org.telegram.cricdit.net.Parameter;
|
|
|
+import org.telegram.cricdit.net.RetrofitClient;
|
|
|
+import org.telegram.cricdit.utils.Base64Utils;
|
|
|
import org.telegram.cricdit.utils.ToastUtil;
|
|
|
import org.telegram.messenger.AndroidUtilities;
|
|
|
+import org.telegram.messenger.ApplicationLoader;
|
|
|
import org.telegram.messenger.ChatObject;
|
|
|
import org.telegram.messenger.LocaleController;
|
|
|
import org.telegram.messenger.MessagesController;
|
|
@@ -31,12 +37,20 @@ import org.telegram.tgnet.TLRPC;
|
|
|
import org.telegram.ui.ActionBar.AlertDialog;
|
|
|
import org.telegram.ui.ActionBar.BaseFragment;
|
|
|
import org.telegram.ui.ChatActivity;
|
|
|
+import org.telegram.ui.Components.AvatarDrawable;
|
|
|
+import org.telegram.ui.Components.BackupImageView;
|
|
|
import org.telegram.ui.Components.JoinGroupAlert;
|
|
|
import org.telegram.ui.LoginActivity;
|
|
|
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import okhttp3.ResponseBody;
|
|
|
+import retrofit2.Call;
|
|
|
+import retrofit2.Callback;
|
|
|
+import retrofit2.Response;
|
|
|
+
|
|
|
public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
private BaseFragment mFragment;
|
|
|
private Context mContext;
|
|
@@ -79,13 +93,13 @@ public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
MoreGroupBean.MoreGroupItem groupData = mAdapter.getData().get(position);
|
|
|
alertDialog.show();
|
|
|
if (!TextUtils.isEmpty(groupData.private_link)) {
|
|
|
- newSkipUrl(groupData.private_link);
|
|
|
+ newSkipUrl(groupData.private_link,false);
|
|
|
} else {
|
|
|
if (!TextUtils.isEmpty(groupData.public_link)) {
|
|
|
if (groupData.public_link.startsWith("https://t.me/")) {
|
|
|
- newSkipUrl(groupData.public_link);
|
|
|
+ newSkipUrl(groupData.public_link,true);
|
|
|
} else {
|
|
|
- newSkipUrl("https://t.me/" + groupData.public_link);
|
|
|
+ newSkipUrl("https://t.me/" + groupData.public_link,true);
|
|
|
}
|
|
|
} else {
|
|
|
if (alertDialog != null) {
|
|
@@ -181,7 +195,7 @@ public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
- public void newSkipUrl(String finalWorkingText) {
|
|
|
+ public void newSkipUrl(String finalWorkingText,boolean isPublic) {
|
|
|
if (finalWorkingText.contains("https://t.me/")) {
|
|
|
int index = finalWorkingText.indexOf("https://t.me/");
|
|
|
int end = finalWorkingText.indexOf(" ", index);
|
|
@@ -228,7 +242,12 @@ public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
args.putLong("user_id", res.users.get(0).id);
|
|
|
}
|
|
|
mFragment.presentFragment(new ChatActivity(args));
|
|
|
-
|
|
|
+ //同步
|
|
|
+ if(isPublic){
|
|
|
+ syncGroupDataToCricdit(res.chats.get(0),null,finalWorkingText);
|
|
|
+ }else{
|
|
|
+ syncGroupDataToCricdit(res.chats.get(0),finalWorkingText,null);
|
|
|
+ }
|
|
|
} else {
|
|
|
ToastUtil.show(mFragment.getParentActivity(), LocaleController.getString("ExpiredLink", R.string.ExpiredLink));
|
|
|
}
|
|
@@ -252,6 +271,12 @@ public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
Bundle args = new Bundle();
|
|
|
args.putLong("chat_id", invite.chat.id);
|
|
|
mFragment.presentFragment(new ChatActivity(args));
|
|
|
+ //同步
|
|
|
+ if(isPublic){
|
|
|
+ syncGroupDataToCricdit(invite.chat,null,finalWorkingText);
|
|
|
+ }else{
|
|
|
+ syncGroupDataToCricdit(invite.chat,finalWorkingText,null);
|
|
|
+ }
|
|
|
} else {
|
|
|
if (mFragment != null) {
|
|
|
mFragment.showDialog(new JoinGroupAlert(mFragment.getParentActivity(), invite, finalGroup, mFragment, (mFragment instanceof ChatActivity ? ((ChatActivity) mFragment).themeDelegate : null)));
|
|
@@ -267,4 +292,56 @@ public class MoreGroupFragment implements BaseViewFragment, MoreGroupView {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //TODO 同步群组资料至Cricdit数据库
|
|
|
+ public void syncGroupDataToCricdit(TLRPC.Chat chat, String private_link,String public_link) {
|
|
|
+ TLRPC.ChatFull chatFull = mFragment.getMessagesController().getChatFull(chat.id);
|
|
|
+ if(chatFull == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ AndroidUtilities.runOnUIThread(() -> {
|
|
|
+ if (chat == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ TLRPC.User currentUser = UserConfig.getInstance(0).getCurrentUser();
|
|
|
+ Parameter parameter = new Parameter();
|
|
|
+ parameter.add("group_id", chat.id + "");
|
|
|
+ parameter.add("name", chat.title + "");
|
|
|
+ parameter.add("creator_user_id", currentUser.id + "");
|
|
|
+ //新添传参
|
|
|
+ if (!TextUtils.isEmpty(private_link)) {
|
|
|
+ parameter.add("private_link", private_link + "");
|
|
|
+ } else if (!TextUtils.isEmpty(public_link)) {
|
|
|
+ parameter.add("public_link", public_link.startsWith("https://t.me/") ? public_link : "https://t.me/" + public_link);
|
|
|
+ }
|
|
|
+ parameter.add("group_member", chatFull.participants_count == 0 ? chat.participants_count : chatFull.participants_count + "");
|
|
|
+ parameter.add("type", (ChatObject.isChannel(chat) && !chat.megagroup) ? 1 : 0);
|
|
|
+
|
|
|
+ if (chat.photo != null && chat.photo.stripped_thumb != null) {
|
|
|
+ BackupImageView backupImageView = new BackupImageView(ApplicationLoader.applicationContext);
|
|
|
+ backupImageView.setForUserOrChat(chat, new AvatarDrawable(chat));
|
|
|
+ Bitmap bitmap = backupImageView.getImageReceiver().getBitmap();
|
|
|
+
|
|
|
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
|
+ //该方法用来压缩图片,第一个参数为图片格式,第二个参数为截取图片的保留率,如当前为90,则保留之前图片90%的区域
|
|
|
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
|
|
|
+ byte[] imagebyte = outputStream.toByteArray();
|
|
|
+ String toBase64 = Base64Utils.toBase64(imagebyte);
|
|
|
+ parameter.add("face_url", toBase64);
|
|
|
+ }
|
|
|
+
|
|
|
+ ApiService apiService = RetrofitClient.getInstance().getRetrofit().create(ApiService.class);
|
|
|
+ Call<ResponseBody> responseCall = apiService.createGroup(parameter.buildJsonBody());
|
|
|
+ responseCall.enqueue(new Callback<ResponseBody>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(Call<ResponseBody> call, Throwable t) {
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }, 1000);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|