mirror of https://github.com/NekoX-Dev/NekoX.git
Fixes
This commit is contained in:
parent
e857f69846
commit
6dce0743db
|
@ -2,8 +2,8 @@ apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
apply plugin: 'kotlin-android-extensions'
|
apply plugin: 'kotlin-android-extensions'
|
||||||
|
|
||||||
def verName = "7.2.1-rc07"
|
def verName = "7.2.1-rc08"
|
||||||
def verCode = 114
|
def verCode = 115
|
||||||
|
|
||||||
def serviceAccountCredentialsFile = rootProject.file("service_account_credentials.json")
|
def serviceAccountCredentialsFile = rootProject.file("service_account_credentials.json")
|
||||||
|
|
||||||
|
@ -82,8 +82,8 @@ dependencies {
|
||||||
implementation 'dnsjava:dnsjava:3.3.1'
|
implementation 'dnsjava:dnsjava:3.3.1'
|
||||||
implementation 'org.dizitart:nitrite:3.4.2'
|
implementation 'org.dizitart:nitrite:3.4.2'
|
||||||
|
|
||||||
implementation 'cn.hutool:hutool-core:5.4.7'
|
implementation 'cn.hutool:hutool-core:5.5.1'
|
||||||
implementation 'cn.hutool:hutool-crypto:5.4.7'
|
implementation 'cn.hutool:hutool-crypto:5.5.1'
|
||||||
|
|
||||||
implementation project(":openpgp-api")
|
implementation project(":openpgp-api")
|
||||||
|
|
||||||
|
|
|
@ -1723,8 +1723,7 @@ public class MessageObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void applyNewText() {
|
public void applyNewText() {
|
||||||
|
if (TextUtils.isEmpty(messageOwner.message)) {
|
||||||
if (StrUtil.isBlank(messageOwner.message) || (messageOwner.translated && StrUtil.isBlank(messageOwner.translatedMessage))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1733,11 +1732,7 @@ public class MessageObject {
|
||||||
fromUser = MessagesController.getInstance(currentAccount).getUser(messageOwner.from_id.user_id);
|
fromUser = MessagesController.getInstance(currentAccount).getUser(messageOwner.from_id.user_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (messageOwner.translated) {
|
|
||||||
messageText = messageOwner.translatedMessage;
|
|
||||||
} else {
|
|
||||||
messageText = messageOwner.message;
|
messageText = messageOwner.message;
|
||||||
}
|
|
||||||
|
|
||||||
TextPaint paint;
|
TextPaint paint;
|
||||||
if (messageOwner.media instanceof TLRPC.TL_messageMediaGame) {
|
if (messageOwner.media instanceof TLRPC.TL_messageMediaGame) {
|
||||||
|
@ -2707,6 +2702,8 @@ public class MessageObject {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (messageOwner.translated) {
|
||||||
|
messageText = messageOwner.translatedMessage;
|
||||||
} else {
|
} else {
|
||||||
messageText = messageOwner.message;
|
messageText = messageOwner.message;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17489,7 +17489,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
options.add(12);
|
options.add(12);
|
||||||
icons.add(R.drawable.baseline_edit_24);
|
icons.add(R.drawable.baseline_edit_24);
|
||||||
}
|
}
|
||||||
if (selectedObject.contentType == 0 && !selectedObject.isMediaEmptyWebpage() && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) {
|
if (NekoConfig.showReport && selectedObject.contentType == 0 && !selectedObject.isMediaEmptyWebpage() && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) {
|
||||||
items.add(LocaleController.getString("ReportChat", R.string.ReportChat));
|
items.add(LocaleController.getString("ReportChat", R.string.ReportChat));
|
||||||
options.add(23);
|
options.add(23);
|
||||||
icons.add(R.drawable.baseline_report_24);
|
icons.add(R.drawable.baseline_report_24);
|
||||||
|
@ -17611,15 +17611,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
options.add(6);
|
options.add(6);
|
||||||
icons.add(R.drawable.baseline_share_24);
|
icons.add(R.drawable.baseline_share_24);
|
||||||
} else if (selectedObject.getDocument() != null) {
|
} else if (selectedObject.getDocument() != null) {
|
||||||
|
items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads));
|
||||||
|
options.add(10);
|
||||||
|
icons.add(R.drawable.baseline_file_download_24);
|
||||||
if (MessageObject.isNewGifDocument(selectedObject.getDocument())) {
|
if (MessageObject.isNewGifDocument(selectedObject.getDocument())) {
|
||||||
items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs));
|
items.add(LocaleController.getString("SaveToGIFs", R.string.SaveToGIFs));
|
||||||
options.add(11);
|
options.add(11);
|
||||||
icons.add(R.drawable.deproko_baseline_gif_24);
|
icons.add(R.drawable.deproko_baseline_gif_24);
|
||||||
}
|
} else if (NekoConfig.showDeleteDownloadedFile) {
|
||||||
items.add(LocaleController.getString("SaveToDownloads", R.string.SaveToDownloads));
|
|
||||||
options.add(10);
|
|
||||||
icons.add(R.drawable.baseline_file_download_24);
|
|
||||||
if (NekoConfig.showDeleteDownloadedFile) {
|
|
||||||
items.add(LocaleController.getString("DeleteDownloadedFile", R.string.DeleteDownloadedFile));
|
items.add(LocaleController.getString("DeleteDownloadedFile", R.string.DeleteDownloadedFile));
|
||||||
options.add(91);
|
options.add(91);
|
||||||
icons.add(R.drawable.baseline_delete_sweep_24);
|
icons.add(R.drawable.baseline_delete_sweep_24);
|
||||||
|
@ -17796,7 +17795,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
options.add(90);
|
options.add(90);
|
||||||
icons.add(R.drawable.baseline_schedule_24);
|
icons.add(R.drawable.baseline_schedule_24);
|
||||||
}
|
}
|
||||||
if (NekoConfig.showTranslate) {
|
|
||||||
MessageObject messageObject = null;
|
MessageObject messageObject = null;
|
||||||
if (selectedObjectGroup != null) {
|
if (selectedObjectGroup != null) {
|
||||||
if (!TextUtils.isEmpty(selectedObjectGroup.messages.get(0).messageOwner.message)) {
|
if (!TextUtils.isEmpty(selectedObjectGroup.messages.get(0).messageOwner.message)) {
|
||||||
|
@ -17805,13 +17803,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else if (!TextUtils.isEmpty(selectedObject.messageOwner.message) || selectedObject.type == MessageObject.TYPE_POLL) {
|
} else if (!TextUtils.isEmpty(selectedObject.messageOwner.message) || selectedObject.type == MessageObject.TYPE_POLL) {
|
||||||
messageObject = selectedObject;
|
messageObject = selectedObject;
|
||||||
}
|
}
|
||||||
|
if (NekoConfig.showTranslate) {
|
||||||
if (messageObject != null) {
|
if (messageObject != null) {
|
||||||
items.add(selectedObject.messageOwner.translated ? LocaleController.getString("UndoTranslate", R.string.UndoTranslate) : LocaleController.getString("Translate", R.string.Translate));
|
items.add(messageObject.messageOwner.translated ? LocaleController.getString("UndoTranslate", R.string.UndoTranslate) : LocaleController.getString("Translate", R.string.Translate));
|
||||||
options.add(88);
|
options.add(88);
|
||||||
icons.add(R.drawable.ic_translate);
|
icons.add(R.drawable.ic_translate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(selectedObject.messageOwner.message) && StrUtil.isNotBlank(NekoConfig.openPGPApp)) {
|
if (messageObject != null && StrUtil.isNotBlank(messageObject.messageOwner.message) && StrUtil.isNotBlank(NekoConfig.openPGPApp)) {
|
||||||
if (PgpHelper.PGP_CLEARTEXT_SIGNATURE.matcher(selectedObject.messageOwner.message).matches()) {
|
if (PgpHelper.PGP_CLEARTEXT_SIGNATURE.matcher(selectedObject.messageOwner.message).matches()) {
|
||||||
items.add(LocaleController.getString("PGPVerify", R.string.PGPVerify));
|
items.add(LocaleController.getString("PGPVerify", R.string.PGPVerify));
|
||||||
options.add(200);
|
options.add(200);
|
||||||
|
@ -17863,11 +17862,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
if (chatMode != MODE_SCHEDULED && selectedObject.contentType == 0 && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) {
|
if (chatMode != MODE_SCHEDULED && selectedObject.contentType == 0 && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) {
|
||||||
if (UserObject.isReplyUser(currentUser)) {
|
if (UserObject.isReplyUser(currentUser)) {
|
||||||
items.add(LocaleController.getString("BlockContact", R.string.BlockContact));
|
items.add(LocaleController.getString("BlockContact", R.string.BlockContact));
|
||||||
} else {
|
|
||||||
items.add(LocaleController.getString("ReportChat", R.string.ReportChat));
|
|
||||||
}
|
|
||||||
options.add(23);
|
options.add(23);
|
||||||
icons.add(R.drawable.baseline_report_24);
|
icons.add(R.drawable.baseline_report_24);
|
||||||
|
} else if (NekoConfig.showReport) {
|
||||||
|
items.add(LocaleController.getString("ReportChat", R.string.ReportChat));
|
||||||
|
|
||||||
|
options.add(23);
|
||||||
|
icons.add(R.drawable.baseline_report_24);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (message.canDeleteMessage(chatMode == MODE_SCHEDULED, currentChat) && (threadMessageObjects == null || !threadMessageObjects.contains(message))) {
|
if (message.canDeleteMessage(chatMode == MODE_SCHEDULED, currentChat) && (threadMessageObjects == null || !threadMessageObjects.contains(message))) {
|
||||||
items.add(LocaleController.getString("Delete", R.string.Delete));
|
items.add(LocaleController.getString("Delete", R.string.Delete));
|
||||||
|
@ -19065,7 +19068,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageTransKt.translateMessages(this, new MessageObject[]{selectedObject});
|
MessageTransKt.translateMessages(this, new MessageObject[]{messageObject});
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -19219,9 +19222,21 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
case 200:
|
case 200:
|
||||||
case 201: {
|
case 201: {
|
||||||
|
|
||||||
|
MessageObject messageObject = null;
|
||||||
|
if (selectedObjectGroup != null) {
|
||||||
|
if (!TextUtils.isEmpty(selectedObjectGroup.messages.get(0).messageOwner.message)) {
|
||||||
|
messageObject = selectedObjectGroup.messages.get(0);
|
||||||
|
}
|
||||||
|
} else if (!TextUtils.isEmpty(selectedObject.messageOwner.message) || selectedObject.type == MessageObject.TYPE_POLL) {
|
||||||
|
messageObject = selectedObject;
|
||||||
|
}
|
||||||
|
if (messageObject == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Intent open = new Intent(Intent.ACTION_SEND);
|
Intent open = new Intent(Intent.ACTION_SEND);
|
||||||
open.setType("application/pgp-message");
|
open.setType("application/pgp-message");
|
||||||
open.putExtra(Intent.EXTRA_TEXT, selectedObject.messageOwner.message);
|
open.putExtra(Intent.EXTRA_TEXT, messageObject.messageOwner.message);
|
||||||
open.setClassName(NekoConfig.openPGPApp, NekoConfig.openPGPApp + ".ui.DecryptActivity");
|
open.setClassName(NekoConfig.openPGPApp, NekoConfig.openPGPApp + ".ui.DecryptActivity");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -44,6 +44,8 @@ import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import org.telegram.messenger.AccountInstance;
|
import org.telegram.messenger.AccountInstance;
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.ApplicationLoader;
|
import org.telegram.messenger.ApplicationLoader;
|
||||||
|
@ -101,10 +103,9 @@ import java.util.concurrent.CountDownLatch;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
import tw.nekomimi.nekogram.JalaliCalendar;
|
import tw.nekomimi.nekogram.JalaliCalendar;
|
||||||
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
import tw.nekomimi.nekogram.utils.VibrateUtil;
|
||||||
|
|
||||||
import androidx.annotation.RequiresApi;
|
|
||||||
|
|
||||||
public class AlertsCreator {
|
public class AlertsCreator {
|
||||||
|
|
||||||
public static Dialog processError(int currentAccount, TLRPC.TL_error error, BaseFragment fragment, TLObject request, Object... args) {
|
public static Dialog processError(int currentAccount, TLRPC.TL_error error, BaseFragment fragment, TLObject request, Object... args) {
|
||||||
|
@ -898,7 +899,7 @@ public class AlertsCreator {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long inlineReturn = (fragment instanceof ChatActivity) ? ((ChatActivity) fragment).getInlineReturn() : 0;
|
long inlineReturn = (fragment instanceof ChatActivity) ? ((ChatActivity) fragment).getInlineReturn() : 0;
|
||||||
if (Browser.isInternalUrl(url, null) || !ask) {
|
if (Browser.isInternalUrl(url, null) || !ask || NekoConfig.skipOpenLinkConfirm) {
|
||||||
Browser.openUrl(fragment.getParentActivity(), url, inlineReturn == 0, tryTelegraph);
|
Browser.openUrl(fragment.getParentActivity(), url, inlineReturn == 0, tryTelegraph);
|
||||||
} else {
|
} else {
|
||||||
String urlFinal;
|
String urlFinal;
|
||||||
|
|
|
@ -4297,7 +4297,9 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
|
|
||||||
isInInput = use;
|
isInInput = use;
|
||||||
|
|
||||||
if (duration == 0) botButton.setVisibility(use ? View.GONE : View.VISIBLE);
|
if (duration == 0 && (hasBotCommands || botReplyMarkup != null)) {
|
||||||
|
botButton.setVisibility(use ? View.GONE : View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
if (use) {
|
if (use) {
|
||||||
|
|
||||||
|
@ -6181,12 +6183,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
setSlowModeButtonVisible(false);
|
setSlowModeButtonVisible(false);
|
||||||
cancelBotButton.setVisibility(GONE);
|
cancelBotButton.setVisibility(GONE);
|
||||||
audioVideoButtonContainer.setVisibility(GONE);
|
audioVideoButtonContainer.setVisibility(GONE);
|
||||||
if (!NekoConfig.useChatAttachMediaMenu) {
|
|
||||||
attachLayout.setVisibility(GONE);
|
attachLayout.setVisibility(GONE);
|
||||||
} else {
|
|
||||||
checkAttachButton(true, 150);
|
|
||||||
updateFieldRight(1);
|
|
||||||
}
|
|
||||||
sendButtonContainer.setVisibility(GONE);
|
sendButtonContainer.setVisibility(GONE);
|
||||||
if (scheduledButton != null) {
|
if (scheduledButton != null) {
|
||||||
scheduledButton.setVisibility(GONE);
|
scheduledButton.setVisibility(GONE);
|
||||||
|
@ -6227,7 +6224,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
}
|
}
|
||||||
attachLayout.setScaleX(0.01f);
|
attachLayout.setScaleX(0.01f);
|
||||||
attachLayout.setAlpha(0.0f);
|
attachLayout.setAlpha(0.0f);
|
||||||
if (!NekoConfig.useChatAttachMediaMenu) attachLayout.setVisibility(GONE);
|
attachLayout.setVisibility(GONE);
|
||||||
audioVideoButtonContainer.setScaleX(0.1f);
|
audioVideoButtonContainer.setScaleX(0.1f);
|
||||||
audioVideoButtonContainer.setScaleY(0.1f);
|
audioVideoButtonContainer.setScaleY(0.1f);
|
||||||
audioVideoButtonContainer.setAlpha(0.0f);
|
audioVideoButtonContainer.setAlpha(0.0f);
|
||||||
|
|
|
@ -12,8 +12,6 @@ public class JalaliCalendar extends Calendar {
|
||||||
|
|
||||||
public static Calendar mInstance() {
|
public static Calendar mInstance() {
|
||||||
|
|
||||||
if (NekoConfig.usePersianCalender) return new JalaliCalendar();
|
|
||||||
|
|
||||||
return Calendar.getInstance();
|
return Calendar.getInstance();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,22 @@
|
||||||
package tw.nekomimi.nekogram;
|
package tw.nekomimi.nekogram;
|
||||||
|
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
import org.telegram.messenger.BaseController;
|
import org.telegram.messenger.BaseController;
|
||||||
import org.telegram.messenger.MessageObject;
|
import org.telegram.messenger.MessageObject;
|
||||||
import org.telegram.messenger.MessagesController;
|
import org.telegram.messenger.MessagesController;
|
||||||
|
import org.telegram.messenger.NotificationCenter;
|
||||||
import org.telegram.messenger.UserConfig;
|
import org.telegram.messenger.UserConfig;
|
||||||
import org.telegram.messenger.Utilities;
|
import org.telegram.messenger.Utilities;
|
||||||
import org.telegram.tgnet.ConnectionsManager;
|
import org.telegram.tgnet.ConnectionsManager;
|
||||||
import org.telegram.tgnet.TLRPC;
|
import org.telegram.tgnet.TLRPC;
|
||||||
import org.telegram.ui.Cells.ChatMessageCell;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
import tw.nekomimi.nekogram.utils.AlertUtil;
|
import tw.nekomimi.nekogram.utils.AlertUtil;
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
public class MessageHelper extends BaseController {
|
public class MessageHelper extends BaseController {
|
||||||
|
|
||||||
|
@ -25,20 +27,16 @@ public class MessageHelper extends BaseController {
|
||||||
super(num);
|
super(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void resetMessageContent(MessageObject messageObject) {
|
public void resetMessageContent(long dialog_id, MessageObject messageObject) {
|
||||||
if (messageObject.caption != null) {
|
TLRPC.Message message = messageObject.messageOwner;
|
||||||
messageObject.caption = null;
|
final SparseArray<TLRPC.User> usersDict = new SparseArray<>();
|
||||||
messageObject.generateCaption();
|
final SparseArray<TLRPC.Chat> chatsDict = new SparseArray<>();
|
||||||
messageObject.forceUpdate = true;
|
|
||||||
}
|
|
||||||
messageObject.applyNewText();
|
|
||||||
messageObject.resetLayout();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void resetMessageContent(ChatMessageCell chatMessageCell) {
|
MessageObject obj = new MessageObject(currentAccount, message, usersDict, chatsDict, true, true);
|
||||||
chatMessageCell.onAttachedToWindow();
|
|
||||||
chatMessageCell.requestLayout();
|
ArrayList<MessageObject> arrayList = new ArrayList<>();
|
||||||
chatMessageCell.invalidate();
|
arrayList.add(obj);
|
||||||
|
getNotificationCenter().postNotificationName(NotificationCenter.replaceMessagesObjects, dialog_id, arrayList, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MessageHelper getInstance(int num) {
|
public static MessageHelper getInstance(int num) {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package tw.nekomimi.nekogram.parts
|
package tw.nekomimi.nekogram.parts
|
||||||
|
|
||||||
import android.text.TextUtils
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
@ -8,9 +7,7 @@ import kotlinx.coroutines.withContext
|
||||||
import org.telegram.messenger.LocaleController
|
import org.telegram.messenger.LocaleController
|
||||||
import org.telegram.messenger.MessageObject
|
import org.telegram.messenger.MessageObject
|
||||||
import org.telegram.tgnet.TLRPC
|
import org.telegram.tgnet.TLRPC
|
||||||
import org.telegram.ui.Cells.ChatMessageCell
|
|
||||||
import org.telegram.ui.ChatActivity
|
import org.telegram.ui.ChatActivity
|
||||||
import tw.nekomimi.nekogram.MessageHelper
|
|
||||||
import tw.nekomimi.nekogram.NekoConfig
|
import tw.nekomimi.nekogram.NekoConfig
|
||||||
import tw.nekomimi.nekogram.transtale.TranslateDb
|
import tw.nekomimi.nekogram.transtale.TranslateDb
|
||||||
import tw.nekomimi.nekogram.transtale.Translator
|
import tw.nekomimi.nekogram.transtale.Translator
|
||||||
|
@ -89,24 +86,7 @@ fun ChatActivity.translateMessages(messages: Array<MessageObject>, target: Local
|
||||||
|
|
||||||
messageObject.messageOwner.translated = false
|
messageObject.messageOwner.translated = false
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(messageObject);
|
messageHelper.resetMessageContent(dialogId, messageObject)
|
||||||
|
|
||||||
for (index in 0 until chatListView.childCount) {
|
|
||||||
|
|
||||||
val cell = chatListView.getChildAt(index)
|
|
||||||
.takeIf { it is ChatMessageCell && it.messageObject === messageObject } as ChatMessageCell?
|
|
||||||
|
|
||||||
if (cell != null) {
|
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(cell);
|
|
||||||
|
|
||||||
break
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
chatAdapter.updateRowWithMessageObject(messageObject, true)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,38 +112,13 @@ fun ChatActivity.translateMessages(messages: Array<MessageObject>, target: Local
|
||||||
|
|
||||||
val isEnd = i == messages.size - 1
|
val isEnd = i == messages.size - 1
|
||||||
|
|
||||||
var messageCell: ChatMessageCell? = null
|
|
||||||
|
|
||||||
for (index in 0 until chatListView.childCount) {
|
|
||||||
|
|
||||||
val cell = chatListView.getChildAt(index)
|
|
||||||
.takeIf { it is ChatMessageCell && it.messageObject === selectedObject } as ChatMessageCell?
|
|
||||||
|
|
||||||
if (cell != null) {
|
|
||||||
|
|
||||||
messageCell = cell
|
|
||||||
|
|
||||||
break
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selectedObject.translateFinished(target)) {
|
if (selectedObject.translateFinished(target)) {
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
|
|
||||||
selectedObject.messageOwner.translated = true
|
selectedObject.messageOwner.translated = true
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(selectedObject)
|
messageHelper.resetMessageContent(dialogId, selectedObject)
|
||||||
|
|
||||||
messageCell?.also {
|
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(it)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
chatAdapter.updateRowWithMessageObject(selectedObject, true)
|
|
||||||
|
|
||||||
if (isEnd) status.dismiss()
|
if (isEnd) status.dismiss()
|
||||||
|
|
||||||
|
@ -299,15 +254,7 @@ fun ChatActivity.translateMessages(messages: Array<MessageObject>, target: Local
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(selectedObject)
|
messageHelper.resetMessageContent(dialogId, selectedObject)
|
||||||
|
|
||||||
messageCell?.also {
|
|
||||||
|
|
||||||
MessageHelper.resetMessageContent(it)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
chatAdapter.updateRowWithMessageObject(selectedObject, true)
|
|
||||||
|
|
||||||
if (isEnd) status.dismiss()
|
if (isEnd) status.dismiss()
|
||||||
|
|
||||||
|
|
|
@ -764,7 +764,7 @@ public class NekoGeneralSettingsActivity extends BaseFragment {
|
||||||
disableNumberRoundingRow = rowCount++;
|
disableNumberRoundingRow = rowCount++;
|
||||||
openArchiveOnPullRow = rowCount++;
|
openArchiveOnPullRow = rowCount++;
|
||||||
nameOrderRow = rowCount++;
|
nameOrderRow = rowCount++;
|
||||||
usePersianCalenderRow = rowCount++;
|
usePersianCalenderRow = -1;
|
||||||
general2Row = rowCount++;
|
general2Row = rowCount++;
|
||||||
|
|
||||||
if (listAdapter != null) {
|
if (listAdapter != null) {
|
||||||
|
|
Loading…
Reference in New Issue