mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-22 06:25:14 +01:00
Update to 8.1.1 (2431)
This commit is contained in:
parent
42feed0f42
commit
58aded63e9
17 changed files with 1125 additions and 1054 deletions
|
@ -2242,33 +2242,12 @@ public class AndroidUtilities {
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
public static void startAppCenter(Activity context) {
|
public static void startAppCenter(Activity context) {
|
||||||
// if (BuildConfig.DEBUG) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// try {
|
|
||||||
// if (BuildVars.DEBUG_VERSION) {
|
|
||||||
// Distribute.setEnabledForDebuggableBuild(true);
|
|
||||||
// AppCenter.start(context.getApplication(), BuildVars.DEBUG_VERSION ? BuildVars.APPCENTER_HASH_DEBUG : BuildVars.APPCENTER_HASH, Distribute.class, Crashes.class);
|
|
||||||
// AppCenter.setUserId("uid=" + UserConfig.getInstance(UserConfig.selectedAccount).clientUserId);
|
|
||||||
// }
|
|
||||||
// } catch (Throwable e) {
|
|
||||||
// FileLog.e(e);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static long lastUpdateCheckTime;
|
private static long lastUpdateCheckTime;
|
||||||
public static void checkForUpdates() {
|
public static void checkForUpdates() {
|
||||||
// try {
|
|
||||||
// if (BuildVars.DEBUG_VERSION) {
|
|
||||||
// if (SystemClock.elapsedRealtime() - lastUpdateCheckTime < 60 * 60 * 1000) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// lastUpdateCheckTime = SystemClock.elapsedRealtime();
|
|
||||||
// Distribute.checkForUpdate();
|
|
||||||
// }
|
|
||||||
// } catch (Throwable e) {
|
|
||||||
// FileLog.e(e);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addToClipboard(CharSequence str) {
|
public static void addToClipboard(CharSequence str) {
|
||||||
|
|
|
@ -19,8 +19,8 @@ public class BuildVars {
|
||||||
public static boolean USE_CLOUD_STRINGS = true;
|
public static boolean USE_CLOUD_STRINGS = true;
|
||||||
public static boolean CHECK_UPDATES = true;
|
public static boolean CHECK_UPDATES = true;
|
||||||
public static boolean NO_SCOPED_STORAGE = true/* || Build.VERSION.SDK_INT <= 28*/;
|
public static boolean NO_SCOPED_STORAGE = true/* || Build.VERSION.SDK_INT <= 28*/;
|
||||||
public static int BUILD_VERSION = 2428;
|
public static int BUILD_VERSION = 2431;
|
||||||
public static String BUILD_VERSION_STRING = "8.0.1";
|
public static String BUILD_VERSION_STRING = "8.1.1";
|
||||||
public static int APP_ID = 4;
|
public static int APP_ID = 4;
|
||||||
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
||||||
public static String SMS_HASH = isStandaloneApp() ? "w0lkcmTZkKh" : (DEBUG_VERSION ? "O2P2z+/jBpJ" : "oLeq9AcOZkT");
|
public static String SMS_HASH = isStandaloneApp() ? "w0lkcmTZkKh" : (DEBUG_VERSION ? "O2P2z+/jBpJ" : "oLeq9AcOZkT");
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -29,13 +29,14 @@ public class OpenChatReceiver extends Activity {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
long chatId = intent.getLongExtra("chatId", 0);
|
long chatId = intent.getLongExtra("chatId", intent.getIntExtra("chatId", 0));
|
||||||
long userId = intent.getLongExtra("userId", 0);
|
long userId = intent.getLongExtra("userId", intent.getIntExtra("userId", 0));
|
||||||
int encId = intent.getIntExtra("encId", 0);
|
int encId = intent.getIntExtra("encId", 0);
|
||||||
if (chatId == 0 && userId == 0 && encId == 0) {
|
if (chatId == 0 && userId == 0 && encId == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
FileLog.e(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Intent intent2 = new Intent(this, LaunchActivity.class);
|
Intent intent2 = new Intent(this, LaunchActivity.class);
|
||||||
|
|
|
@ -155,8 +155,10 @@ public class ChatTheme {
|
||||||
|
|
||||||
public void loadWallpaperThumb(boolean isDark, ResultCallback<Pair<Long, Bitmap>> callback) {
|
public void loadWallpaperThumb(boolean isDark, ResultCallback<Pair<Long, Bitmap>> callback) {
|
||||||
final TLRPC.WallPaper wallpaper = getWallpaper(isDark);
|
final TLRPC.WallPaper wallpaper = getWallpaper(isDark);
|
||||||
if (wallpaper == null && callback != null) {
|
if (wallpaper == null) {
|
||||||
callback.onComplete(null);
|
if (callback != null) {
|
||||||
|
callback.onComplete(null);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -316,7 +316,7 @@ public class Theme {
|
||||||
} else {
|
} else {
|
||||||
num = currentType == TYPE_PREVIEW ? 1 : 0;
|
num = currentType == TYPE_PREVIEW ? 1 : 0;
|
||||||
}
|
}
|
||||||
if (gradientColor2 != 0 && animatedGradient && motionBackground[num] != null) {
|
if (!isCrossfadeBackground && gradientColor2 != 0 && animatedGradient && motionBackground[num] != null) {
|
||||||
int[] colors = motionBackground[num].getColors();
|
int[] colors = motionBackground[num].getColors();
|
||||||
currentColor = colors[0];
|
currentColor = colors[0];
|
||||||
currentGradientColor1 = colors[1];
|
currentGradientColor1 = colors[1];
|
||||||
|
@ -325,8 +325,10 @@ public class Theme {
|
||||||
}
|
}
|
||||||
if (isCrossfadeBackground && gradientColor2 != 0 && animatedGradient) {
|
if (isCrossfadeBackground && gradientColor2 != 0 && animatedGradient) {
|
||||||
if (backgroundHeight != currentBackgroundHeight || crosfadeFromBitmapShader == null || currentColor != color || currentGradientColor1 != gradientColor1 || currentGradientColor2 != gradientColor2 || currentGradientColor3 != gradientColor3 || currentAnimateGradient != animatedGradient) {
|
if (backgroundHeight != currentBackgroundHeight || crosfadeFromBitmapShader == null || currentColor != color || currentGradientColor1 != gradientColor1 || currentGradientColor2 != gradientColor2 || currentGradientColor3 != gradientColor3 || currentAnimateGradient != animatedGradient) {
|
||||||
crosfadeFromBitmap = Bitmap.createBitmap(60, 80, Bitmap.Config.ARGB_8888);
|
if (crosfadeFromBitmap == null) {
|
||||||
crosfadeFromBitmapShader = new BitmapShader(crosfadeFromBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
|
crosfadeFromBitmap = Bitmap.createBitmap(60, 80, Bitmap.Config.ARGB_8888);
|
||||||
|
crosfadeFromBitmapShader = new BitmapShader(crosfadeFromBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
|
||||||
|
}
|
||||||
if (motionBackground[num] == null) {
|
if (motionBackground[num] == null) {
|
||||||
motionBackground[num] = new MotionBackgroundDrawable();
|
motionBackground[num] = new MotionBackgroundDrawable();
|
||||||
if (currentType != TYPE_PREVIEW) {
|
if (currentType != TYPE_PREVIEW) {
|
||||||
|
|
|
@ -28,6 +28,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
|
import org.telegram.messenger.BuildVars;
|
||||||
import org.telegram.messenger.ContactsController;
|
import org.telegram.messenger.ContactsController;
|
||||||
import org.telegram.messenger.DialogObject;
|
import org.telegram.messenger.DialogObject;
|
||||||
import org.telegram.messenger.FileLog;
|
import org.telegram.messenger.FileLog;
|
||||||
|
@ -155,6 +156,9 @@ public class DialogsAdapter extends RecyclerListView.SelectionAdapter {
|
||||||
dialogsCount = array.size();
|
dialogsCount = array.size();
|
||||||
if (!forceShowEmptyCell && dialogsType != 7 && dialogsType != 8 && dialogsType != 11 && dialogsCount == 0 && (folderId != 0 || messagesController.isLoadingDialogs(folderId) || !MessagesController.getInstance(currentAccount).isDialogsEndReached(folderId))) {
|
if (!forceShowEmptyCell && dialogsType != 7 && dialogsType != 8 && dialogsType != 11 && dialogsCount == 0 && (folderId != 0 || messagesController.isLoadingDialogs(folderId) || !MessagesController.getInstance(currentAccount).isDialogsEndReached(folderId))) {
|
||||||
onlineContacts = null;
|
onlineContacts = null;
|
||||||
|
if (BuildVars.LOGS_ENABLED) {
|
||||||
|
FileLog.d("DialogsAdapter dialogsCount=" + dialogsCount + " dialogsType=" + dialogsType + " isLoadingDialogs=" + messagesController.isLoadingDialogs(folderId) + " isDialogsEndReached=" + MessagesController.getInstance(currentAccount).isDialogsEndReached(folderId));
|
||||||
|
}
|
||||||
if (folderId == 1 && showArchiveHint) {
|
if (folderId == 1 && showArchiveHint) {
|
||||||
return (currentCount = 2);
|
return (currentCount = 2);
|
||||||
}
|
}
|
||||||
|
@ -176,6 +180,9 @@ public class DialogsAdapter extends RecyclerListView.SelectionAdapter {
|
||||||
} else if (dialogsType == 0 && messagesController.dialogs_dict.size() <= 10 && folderId == 0 && messagesController.isDialogsEndReached(folderId)) {
|
} else if (dialogsType == 0 && messagesController.dialogs_dict.size() <= 10 && folderId == 0 && messagesController.isDialogsEndReached(folderId)) {
|
||||||
if (ContactsController.getInstance(currentAccount).contacts.isEmpty() && !ContactsController.getInstance(currentAccount).doneLoadingContacts) {
|
if (ContactsController.getInstance(currentAccount).contacts.isEmpty() && !ContactsController.getInstance(currentAccount).doneLoadingContacts) {
|
||||||
onlineContacts = null;
|
onlineContacts = null;
|
||||||
|
if (BuildVars.LOGS_ENABLED) {
|
||||||
|
FileLog.d("DialogsAdapter loadingContacts=" + (ContactsController.getInstance(currentAccount).contacts.isEmpty() && !ContactsController.getInstance(currentAccount).doneLoadingContacts) + "dialogsCount=" + dialogsCount + " dialogsType=" + dialogsType);
|
||||||
|
}
|
||||||
return (currentCount = 0);
|
return (currentCount = 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,6 +231,10 @@ public class DialogsAdapter extends RecyclerListView.SelectionAdapter {
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
currentCount = count;
|
currentCount = count;
|
||||||
|
|
||||||
|
if (BuildVars.LOGS_ENABLED) {
|
||||||
|
FileLog.d("DialogsAdapter dialogsCount=" + dialogsCount + " dialogsType=" + dialogsType);
|
||||||
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8039,7 +8039,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openAnotherForward() {
|
private void openAnotherForward() {
|
||||||
if (forwardingMessages == null) {
|
if (forwardingMessages == null || forwardingMessages.messages == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean fewSenders = false;
|
boolean fewSenders = false;
|
||||||
|
@ -8063,7 +8063,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
message = LocaleController.formatString("CancelForwardPrivate", R.string.CancelForwardPrivate, LocaleController.formatPluralString("MessagesBold", forwardingMessages.messages.size()), ContactsController.formatName(user.first_name, user.last_name));
|
message = LocaleController.formatString("CancelForwardPrivate", R.string.CancelForwardPrivate, LocaleController.formatPluralString("MessagesBold", forwardingMessages.messages.size()), ContactsController.formatName(user.first_name, user.last_name));
|
||||||
} else {
|
} else {
|
||||||
TLRPC.Chat chat = getMessagesController().getChat(-dialogId);
|
TLRPC.Chat chat = getMessagesController().getChat(-dialogId);
|
||||||
message = LocaleController.formatString("CancelForwardChat", R.string.CancelForwardChat, LocaleController.formatPluralString("MessagesBold", forwardingMessages.messages.size()), chat.title);
|
message = LocaleController.formatString("CancelForwardChat", R.string.CancelForwardChat, LocaleController.formatPluralString("MessagesBold", forwardingMessages.messages.size()), chat == null ? "" : chat.title);
|
||||||
}
|
}
|
||||||
builder.setMessage(AndroidUtilities.replaceTags(message));
|
builder.setMessage(AndroidUtilities.replaceTags(message));
|
||||||
builder.setTitle(LocaleController.formatPluralString("messages", forwardingMessages.messages.size()));
|
builder.setTitle(LocaleController.formatPluralString("messages", forwardingMessages.messages.size()));
|
||||||
|
@ -19956,7 +19956,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
boolean showMessageSeen = currentChat != null && message.isOutOwner() && message.isSent() && !message.isEditing() && !message.isSending() && !message.isSendError() && !message.isContentUnread() && !message.isUnread() && (ConnectionsManager.getInstance(currentAccount).getCurrentTime() - message.messageOwner.date < 7 * 86400) && (ChatObject.isMegagroup(currentChat) || !ChatObject.isChannel(currentChat)) && chatInfo != null && chatInfo.participants_count < 50;
|
boolean showMessageSeen = currentChat != null && message.isOutOwner() && message.isSent() && !message.isEditing() && !message.isSending() && !message.isSendError() && !message.isContentUnread() && !message.isUnread() && (ConnectionsManager.getInstance(currentAccount).getCurrentTime() - message.messageOwner.date < 7 * 86400) && (ChatObject.isMegagroup(currentChat) || !ChatObject.isChannel(currentChat)) && chatInfo != null && chatInfo.participants_count < 50;
|
||||||
MessageSeenView messageSeenView = null;
|
MessageSeenView messageSeenView = null;
|
||||||
if (showMessageSeen) {
|
if (showMessageSeen) {
|
||||||
messageSeenView = new MessageSeenView(contentView.getContext(), currentAccount, message);
|
messageSeenView = new MessageSeenView(contentView.getContext(), currentAccount, message, currentChat);
|
||||||
Drawable shadowDrawable2 = ContextCompat.getDrawable(contentView.getContext(), R.drawable.popup_fixed_alert).mutate();
|
Drawable shadowDrawable2 = ContextCompat.getDrawable(contentView.getContext(), R.drawable.popup_fixed_alert).mutate();
|
||||||
shadowDrawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground), PorterDuff.Mode.MULTIPLY));
|
shadowDrawable2.setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_actionBarDefaultSubmenuBackground), PorterDuff.Mode.MULTIPLY));
|
||||||
FrameLayout messageSeenLayout = new FrameLayout(contentView.getContext());
|
FrameLayout messageSeenLayout = new FrameLayout(contentView.getContext());
|
||||||
|
@ -20116,7 +20116,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
args.putLong("user_id", user.id);
|
args.putLong("user_id", user.id);
|
||||||
ProfileActivity fragment = new ProfileActivity(args);
|
ProfileActivity fragment = new ProfileActivity(args);
|
||||||
presentFragment(fragment);
|
presentFragment(fragment);
|
||||||
mesageSeenUsersPopupWindow.dismiss();
|
if (mesageSeenUsersPopupWindow != null) {
|
||||||
|
mesageSeenUsersPopupWindow.dismiss();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -24648,7 +24650,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
themeDescriptions.add(new ThemeDescription(alertNameTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
|
themeDescriptions.add(new ThemeDescription(alertNameTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
|
||||||
themeDescriptions.add(new ThemeDescription(alertTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelMessage));
|
themeDescriptions.add(new ThemeDescription(alertTextView, ThemeDescription.FLAG_TEXTCOLOR, null, null, null, null, Theme.key_chat_topPanelMessage));
|
||||||
themeDescriptions.add(new ThemeDescription(closePinned, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
|
themeDescriptions.add(new ThemeDescription(closePinned, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
|
||||||
themeDescriptions.add(new ThemeDescription(pinnedListButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelTitle));
|
themeDescriptions.add(new ThemeDescription(pinnedListButton, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
|
||||||
themeDescriptions.add(new ThemeDescription(closeReportSpam, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
|
themeDescriptions.add(new ThemeDescription(closeReportSpam, ThemeDescription.FLAG_IMAGECOLOR, null, null, null, null, Theme.key_chat_topPanelClose));
|
||||||
themeDescriptions.add(new ThemeDescription(topChatPanelView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
|
themeDescriptions.add(new ThemeDescription(topChatPanelView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
|
||||||
themeDescriptions.add(new ThemeDescription(alertView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
|
themeDescriptions.add(new ThemeDescription(alertView, ThemeDescription.FLAG_BACKGROUNDFILTER, null, null, null, null, Theme.key_chat_topPanelBackground));
|
||||||
|
@ -25041,7 +25043,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!setup) {
|
if (!setup) {
|
||||||
Theme.refreshThemeColors();
|
Theme.refreshThemeColors(true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25223,6 +25225,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
animatingMessageDrawable.crossfadeFromDrawable = parentLayout.messageDrawableOutStart;
|
animatingMessageDrawable.crossfadeFromDrawable = parentLayout.messageDrawableOutStart;
|
||||||
animatingMessageMediaDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOutMedia);
|
animatingMessageMediaDrawable = (Theme.MessageDrawable) getThemedDrawable(Theme.key_drawable_msgOutMedia);
|
||||||
animatingMessageMediaDrawable.crossfadeFromDrawable = parentLayout.messageDrawableOutMediaStart;
|
animatingMessageMediaDrawable.crossfadeFromDrawable = parentLayout.messageDrawableOutMediaStart;
|
||||||
|
animatingMessageDrawable.crossfadeProgress = 0f;
|
||||||
|
animatingMessageMediaDrawable.crossfadeProgress = 0f;
|
||||||
|
updateMessagesVisiblePart(false);
|
||||||
updateServiceMessageColor(0);
|
updateServiceMessageColor(0);
|
||||||
};
|
};
|
||||||
animationSettings.afterAnimationRunnable = () -> {
|
animationSettings.afterAnimationRunnable = () -> {
|
||||||
|
@ -25263,7 +25268,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
|
|
||||||
Theme.ThemeInfo activeTheme;
|
Theme.ThemeInfo activeTheme;
|
||||||
if (Theme.getActiveTheme().isDark() == isDark) {
|
if (Theme.getActiveTheme().isDark() == isDark) {
|
||||||
activeTheme = Theme.getCurrentTheme();
|
activeTheme = Theme.getActiveTheme();
|
||||||
} else {
|
} else {
|
||||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("themeconfig", Activity.MODE_PRIVATE);
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("themeconfig", Activity.MODE_PRIVATE);
|
||||||
String dayThemeName = preferences.getString("lastDayTheme", "Blue");
|
String dayThemeName = preferences.getString("lastDayTheme", "Blue");
|
||||||
|
@ -25277,7 +25282,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
activeTheme = isDark ? Theme.getTheme(nightThemeName) : Theme.getTheme(dayThemeName);
|
activeTheme = isDark ? Theme.getTheme(nightThemeName) : Theme.getTheme(dayThemeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Theme.applyTheme(activeTheme, false, isDark);
|
Theme.applyTheme(activeTheme, false, isDark);
|
||||||
} else {
|
} else {
|
||||||
currentColors = chatTheme.getCurrentColors(currentAccount, isDark);
|
currentColors = chatTheme.getCurrentColors(currentAccount, isDark);
|
||||||
|
|
|
@ -153,7 +153,7 @@ public class ChatThemeBottomSheet extends BottomSheet implements NotificationCen
|
||||||
recyclerView.setLayoutManager(layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
|
recyclerView.setLayoutManager(layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
|
||||||
recyclerView.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0);
|
recyclerView.setPadding(AndroidUtilities.dp(12), 0, AndroidUtilities.dp(12), 0);
|
||||||
recyclerView.setOnItemClickListener((view, position) -> {
|
recyclerView.setOnItemClickListener((view, position) -> {
|
||||||
if (adapter.items.get(position) == selectedItem) {
|
if (adapter.items.get(position) == selectedItem || changeDayNightView != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
selectedItem = adapter.items.get(position);
|
selectedItem = adapter.items.get(position);
|
||||||
|
@ -855,6 +855,7 @@ public class ChatThemeBottomSheet extends BottomSheet implements NotificationCen
|
||||||
drawable.setPatternBitmap(intensity >= 0 ? 100 : -100, result.second);
|
drawable.setPatternBitmap(intensity >= 0 ? 100 : -100, result.second);
|
||||||
drawable.setPatternColorFilter(drawable.getPatternColor());
|
drawable.setPatternColorFilter(drawable.getPatternColor());
|
||||||
}
|
}
|
||||||
|
invalidate();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -965,7 +966,7 @@ public class ChatThemeBottomSheet extends BottomSheet implements NotificationCen
|
||||||
noThemeTextPaint.setTextSize(AndroidUtilities.dp(14));
|
noThemeTextPaint.setTextSize(AndroidUtilities.dp(14));
|
||||||
noThemeTextPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
noThemeTextPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
||||||
textLayout = StaticLayoutEx.createStaticLayout2(
|
textLayout = StaticLayoutEx.createStaticLayout2(
|
||||||
LocaleController.getString("NoTheme", R.string.ChatNoTheme),
|
LocaleController.getString("ChatNoTheme", R.string.ChatNoTheme),
|
||||||
noThemeTextPaint,
|
noThemeTextPaint,
|
||||||
AndroidUtilities.dp(52),
|
AndroidUtilities.dp(52),
|
||||||
Layout.Alignment.ALIGN_CENTER,
|
Layout.Alignment.ALIGN_CENTER,
|
||||||
|
|
|
@ -2829,7 +2829,7 @@ public class SharedMediaLayout extends FrameLayout implements NotificationCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean onItemLongClick(MessageObject item, View view, int a) {
|
private boolean onItemLongClick(MessageObject item, View view, int a) {
|
||||||
if (isActionModeShowed || profileActivity.getParentActivity() == null) {
|
if (isActionModeShowed || profileActivity.getParentActivity() == null || item == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
AndroidUtilities.hideKeyboard(profileActivity.getParentActivity().getCurrentFocus());
|
AndroidUtilities.hideKeyboard(profileActivity.getParentActivity().getCurrentFocus());
|
||||||
|
|
|
@ -3,6 +3,8 @@ package org.telegram.ui;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
import android.view.MotionEvent;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -60,6 +62,11 @@ public class DatabaseMigrationHint extends FrameLayout {
|
||||||
|
|
||||||
addView(container, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL));
|
addView(container, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_VERTICAL));
|
||||||
setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite));
|
setBackgroundColor(Theme.getColor(Theme.key_windowBackgroundWhite));
|
||||||
|
setOnTouchListener(new OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View view, MotionEvent motionEvent) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -736,7 +736,12 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
if (child == null || child.getVisibility() == GONE || child == commentView || child == actionBar) {
|
if (child == null || child.getVisibility() == GONE || child == commentView || child == actionBar) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (child instanceof ViewPage) {
|
if (child instanceof DatabaseMigrationHint) {
|
||||||
|
int contentWidthSpec = View.MeasureSpec.makeMeasureSpec(widthSize, View.MeasureSpec.EXACTLY);
|
||||||
|
int h = View.MeasureSpec.getSize(heightMeasureSpec) + keyboardSize;
|
||||||
|
int contentHeightSpec = View.MeasureSpec.makeMeasureSpec(Math.max(AndroidUtilities.dp(10), h - inputFieldHeight + AndroidUtilities.dp(2) - actionBar.getMeasuredHeight()), View.MeasureSpec.EXACTLY);
|
||||||
|
child.measure(contentWidthSpec, contentHeightSpec);
|
||||||
|
} else if (child instanceof ViewPage) {
|
||||||
int contentWidthSpec = View.MeasureSpec.makeMeasureSpec(widthSize, View.MeasureSpec.EXACTLY);
|
int contentWidthSpec = View.MeasureSpec.makeMeasureSpec(widthSize, View.MeasureSpec.EXACTLY);
|
||||||
int h;
|
int h;
|
||||||
if (filterTabsView != null && filterTabsView.getVisibility() == VISIBLE) {
|
if (filterTabsView != null && filterTabsView.getVisibility() == VISIBLE) {
|
||||||
|
@ -850,6 +855,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
childTop = actionBar.getMeasuredHeight();
|
childTop = actionBar.getMeasuredHeight();
|
||||||
} else if (child == searchViewPager) {
|
} else if (child == searchViewPager) {
|
||||||
childTop = (onlySelect ? 0 : actionBar.getMeasuredHeight()) + topPadding + (searchTabsView == null ? 0 : AndroidUtilities.dp(44));
|
childTop = (onlySelect ? 0 : actionBar.getMeasuredHeight()) + topPadding + (searchTabsView == null ? 0 : AndroidUtilities.dp(44));
|
||||||
|
} else if (child instanceof DatabaseMigrationHint) {
|
||||||
|
childTop = actionBar.getMeasuredHeight();
|
||||||
} else if (child instanceof ViewPage) {
|
} else if (child instanceof ViewPage) {
|
||||||
if (!onlySelect) {
|
if (!onlySelect) {
|
||||||
if (filterTabsView != null && filterTabsView.getVisibility() == VISIBLE) {
|
if (filterTabsView != null && filterTabsView.getVisibility() == VISIBLE) {
|
||||||
|
@ -1815,18 +1822,24 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.fileLoaded);
|
getNotificationCenter().addObserver(this, NotificationCenter.fileLoaded);
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.fileLoadFailed);
|
getNotificationCenter().addObserver(this, NotificationCenter.fileLoadFailed);
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.fileLoadProgressChanged);
|
getNotificationCenter().addObserver(this, NotificationCenter.fileLoadProgressChanged);
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.onDatabaseMigration);
|
|
||||||
|
|
||||||
NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.didSetPasscode);
|
NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.didSetPasscode);
|
||||||
NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.appUpdateAvailable);
|
NotificationCenter.getGlobalInstance().addObserver(this, NotificationCenter.appUpdateAvailable);
|
||||||
}
|
}
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.messagesDeleted);
|
getNotificationCenter().addObserver(this, NotificationCenter.messagesDeleted);
|
||||||
|
|
||||||
|
getNotificationCenter().addObserver(this, NotificationCenter.onDatabaseMigration);
|
||||||
getNotificationCenter().addObserver(this, NotificationCenter.didClearDatabase);
|
getNotificationCenter().addObserver(this, NotificationCenter.didClearDatabase);
|
||||||
|
|
||||||
loadDialogs(getAccountInstance());
|
loadDialogs(getAccountInstance());
|
||||||
getMessagesController().loadPinnedDialogs(folderId, 0, null);
|
getMessagesController().loadPinnedDialogs(folderId, 0, null);
|
||||||
|
if (databaseMigrationHint != null && !getMessagesStorage().isDatabaseMigrationInProgress()) {
|
||||||
|
View localView = databaseMigrationHint;
|
||||||
|
if (localView.getParent() != null) {
|
||||||
|
((ViewGroup) localView.getParent()).removeView(localView);
|
||||||
|
}
|
||||||
|
databaseMigrationHint = null;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1887,6 +1900,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.appUpdateAvailable);
|
NotificationCenter.getGlobalInstance().removeObserver(this, NotificationCenter.appUpdateAvailable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNotificationCenter().removeObserver(this, NotificationCenter.onDatabaseMigration);
|
||||||
getNotificationCenter().removeObserver(this, NotificationCenter.didClearDatabase);
|
getNotificationCenter().removeObserver(this, NotificationCenter.didClearDatabase);
|
||||||
if (commentView != null) {
|
if (commentView != null) {
|
||||||
commentView.onDestroy();
|
commentView.onDestroy();
|
||||||
|
@ -2056,7 +2070,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canToggleSearch() {
|
public boolean canToggleSearch() {
|
||||||
return !actionBar.isActionModeShowed();
|
return !actionBar.isActionModeShowed() && databaseMigrationHint == null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search));
|
searchItem.setSearchFieldHint(LocaleController.getString("Search", R.string.Search));
|
||||||
|
@ -4530,7 +4544,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFilterTabsVisibility(boolean animated) {
|
private void updateFilterTabsVisibility(boolean animated) {
|
||||||
if (isPaused) {
|
if (isPaused || databaseMigrationHint != null) {
|
||||||
animated = false;
|
animated = false;
|
||||||
}
|
}
|
||||||
if (searchIsShowed) {
|
if (searchIsShowed) {
|
||||||
|
@ -6539,22 +6553,21 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
|
||||||
((ContentView) fragmentView).addView(databaseMigrationHint);
|
((ContentView) fragmentView).addView(databaseMigrationHint);
|
||||||
databaseMigrationHint.animate().alpha(1).setDuration(300).setStartDelay(1000).start();
|
databaseMigrationHint.animate().alpha(1).setDuration(300).setStartDelay(1000).start();
|
||||||
}
|
}
|
||||||
|
databaseMigrationHint.setTag(1);
|
||||||
} else {
|
} else {
|
||||||
if (databaseMigrationHint != null) {
|
if (databaseMigrationHint != null && databaseMigrationHint.getTag() != null) {
|
||||||
View localView = databaseMigrationHint;
|
View localView = databaseMigrationHint;
|
||||||
localView.animate().setListener(null).cancel();
|
localView.animate().setListener(null).cancel();
|
||||||
localView.animate().setListener(new AnimatorListenerAdapter() {
|
localView.animate().setListener(new AnimatorListenerAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationEnd(Animator animation) {
|
public void onAnimationEnd(Animator animation) {
|
||||||
if (localView.getParent() != null) {
|
if (localView.getParent() != null) {
|
||||||
((ContentView) fragmentView).removeView(localView);
|
((ViewGroup) localView.getParent()).removeView(localView);
|
||||||
}
|
}
|
||||||
|
databaseMigrationHint = null;
|
||||||
}
|
}
|
||||||
}).alpha(0f).setDuration(150).start();
|
}).alpha(0f).setStartDelay(0).setDuration(150).start();
|
||||||
|
databaseMigrationHint.setTag(null);
|
||||||
databaseMigrationHint = null;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,9 +55,11 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
ArrayList<Integer> animationIndexes = new ArrayList<>();
|
ArrayList<Integer> animationIndexes = new ArrayList<>();
|
||||||
Runnable sentInteractionsRunnable;
|
Runnable sentInteractionsRunnable;
|
||||||
|
|
||||||
|
Runnable hintRunnable;
|
||||||
private final static HashSet<String> supportedEmoji = new HashSet<>();
|
private final static HashSet<String> supportedEmoji = new HashSet<>();
|
||||||
private final static HashSet<String> excludeEmojiFromPack = new HashSet<>();
|
private final static HashSet<String> excludeEmojiFromPack = new HashSet<>();
|
||||||
static {
|
|
||||||
|
static {
|
||||||
// 1️⃣, 2️⃣, 3️⃣... etc
|
// 1️⃣, 2️⃣, 3️⃣... etc
|
||||||
excludeEmojiFromPack.add("\u0030\u20E3");
|
excludeEmojiFromPack.add("\u0030\u20E3");
|
||||||
excludeEmojiFromPack.add("\u0031\u20E3");
|
excludeEmojiFromPack.add("\u0031\u20E3");
|
||||||
|
@ -93,12 +95,14 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
checkStickerPack();
|
checkStickerPack();
|
||||||
NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.diceStickersDidLoad);
|
NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.diceStickersDidLoad);
|
||||||
NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.onEmojiInteractionsReceived);
|
NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.onEmojiInteractionsReceived);
|
||||||
|
NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.updateInterfaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onDetachedFromWindow() {
|
protected void onDetachedFromWindow() {
|
||||||
attached = false;
|
attached = false;
|
||||||
NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.diceStickersDidLoad);
|
NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.diceStickersDidLoad);
|
||||||
NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.onEmojiInteractionsReceived);
|
NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.onEmojiInteractionsReceived);
|
||||||
|
NotificationCenter.getInstance(currentAccount).removeObserver(this, NotificationCenter.updateInterfaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkStickerPack() {
|
public void checkStickerPack() {
|
||||||
|
@ -131,7 +135,7 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
String[] heartEmojies = new String[]{"🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎"};
|
String[] heartEmojies = new String[]{"🧡", "💛", "💚", "💙", "💜", "🖤", "🤍", "🤎"};
|
||||||
for (String heart : heartEmojies) {
|
for (String heart : heartEmojies) {
|
||||||
supportedEmoji.add(heart);
|
supportedEmoji.add(heart);
|
||||||
emojiInteractionsStickersMap.put(heart, stickers);
|
emojiInteractionsStickersMap.put(heart, stickers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,6 +178,11 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
} else if (id == NotificationCenter.updateInterfaces) {
|
||||||
|
Integer printingType = MessagesController.getInstance(currentAccount).getPrintingStringType(dialogId, threadMsgId);
|
||||||
|
if (printingType != null && printingType == 5) {
|
||||||
|
cancelHintRunnable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +240,7 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawingObject.imageReceiver.setImageCoords(drawingObject.lastX + drawingObject.randomOffsetX, drawingObject.lastY + drawingObject.randomOffsetY, drawingObject.lastW * 3, drawingObject.lastW * 3);
|
drawingObject.imageReceiver.setImageCoords(drawingObject.lastX + drawingObject.randomOffsetX, drawingObject.lastY + drawingObject.randomOffsetY, drawingObject.lastW * 3, drawingObject.lastW * 3);
|
||||||
if (!drawingObject.isOut) {
|
if (!drawingObject.isOut) {
|
||||||
canvas.save();
|
canvas.save();
|
||||||
canvas.scale(-1f, 1, drawingObject.imageReceiver.getCenterX(), drawingObject.imageReceiver.getCenterY());
|
canvas.scale(-1f, 1, drawingObject.imageReceiver.getCenterX(), drawingObject.imageReceiver.getCenterY());
|
||||||
|
@ -262,7 +271,13 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
if (show && !EmojiData.hasEmojiSupportVibration(view.getMessageObject().getStickerEmoji())) {
|
if (show && !EmojiData.hasEmojiSupportVibration(view.getMessageObject().getStickerEmoji())) {
|
||||||
view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP);
|
view.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP);
|
||||||
}
|
}
|
||||||
if ((Bulletin.getVisibleBulletin() == null || !Bulletin.getVisibleBulletin().isShowing()) && SharedConfig.emojiInteractionsHintCount > 0) {
|
|
||||||
|
Integer printingType = MessagesController.getInstance(currentAccount).getPrintingStringType(dialogId, threadMsgId);
|
||||||
|
boolean canShowHint = true;
|
||||||
|
if (printingType != null && printingType == 5) {
|
||||||
|
canShowHint = false;
|
||||||
|
}
|
||||||
|
if (canShowHint && hintRunnable == null && show && (Bulletin.getVisibleBulletin() == null || !Bulletin.getVisibleBulletin().isShowing()) && SharedConfig.emojiInteractionsHintCount > 0) {
|
||||||
SharedConfig.updateEmojiInteractionsHintCount(SharedConfig.emojiInteractionsHintCount - 1);
|
SharedConfig.updateEmojiInteractionsHintCount(SharedConfig.emojiInteractionsHintCount - 1);
|
||||||
TLRPC.Document document = MediaDataController.getInstance(currentAccount).getEmojiAnimatedSticker(view.getMessageObject().getStickerEmoji());
|
TLRPC.Document document = MediaDataController.getInstance(currentAccount).getEmojiAnimatedSticker(view.getMessageObject().getStickerEmoji());
|
||||||
StickerSetBulletinLayout layout = new StickerSetBulletinLayout(chatActivity.getParentActivity(), null, StickerSetBulletinLayout.TYPE_EMPTY, document, chatActivity.getResourceProvider());
|
StickerSetBulletinLayout layout = new StickerSetBulletinLayout(chatActivity.getParentActivity(), null, StickerSetBulletinLayout.TYPE_EMPTY, document, chatActivity.getResourceProvider());
|
||||||
|
@ -271,10 +286,24 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
layout.titleTextView.setTypeface(null);
|
layout.titleTextView.setTypeface(null);
|
||||||
layout.titleTextView.setMaxLines(3);
|
layout.titleTextView.setMaxLines(3);
|
||||||
layout.titleTextView.setSingleLine(false);
|
layout.titleTextView.setSingleLine(false);
|
||||||
Bulletin.make(chatActivity, layout, Bulletin.DURATION_LONG).show();
|
Bulletin bulletin = Bulletin.make(chatActivity, layout, Bulletin.DURATION_LONG);
|
||||||
|
AndroidUtilities.runOnUIThread(hintRunnable = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
bulletin.show();
|
||||||
|
hintRunnable = null;
|
||||||
|
}
|
||||||
|
}, 1500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void cancelHintRunnable() {
|
||||||
|
if (hintRunnable != null) {
|
||||||
|
AndroidUtilities.cancelRunOnUIThread(hintRunnable);
|
||||||
|
}
|
||||||
|
hintRunnable = null;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean showAnimationForCell(ChatMessageCell view, int animation, boolean sendTap, boolean sendSeen) {
|
private boolean showAnimationForCell(ChatMessageCell view, int animation, boolean sendTap, boolean sendSeen) {
|
||||||
if (drawingObjects.size() > 12) {
|
if (drawingObjects.size() > 12) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -351,7 +380,8 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
|
||||||
if (lastTappedTime == 0) {
|
if (lastTappedTime == 0) {
|
||||||
lastTappedTime = System.currentTimeMillis();
|
lastTappedTime = System.currentTimeMillis();
|
||||||
timeIntervals.clear();
|
timeIntervals.clear();
|
||||||
animationIndexes.clear();;
|
animationIndexes.clear();
|
||||||
|
;
|
||||||
timeIntervals.add(0L);
|
timeIntervals.add(0L);
|
||||||
animationIndexes.add(animation);
|
animationIndexes.add(animation);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -2109,8 +2109,9 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
} else if (intent.getAction().equals("new_dialog")) {
|
} else if (intent.getAction().equals("new_dialog")) {
|
||||||
open_new_dialog = 1;
|
open_new_dialog = 1;
|
||||||
} else if (intent.getAction().startsWith("com.tmessages.openchat")) {
|
} else if (intent.getAction().startsWith("com.tmessages.openchat")) {
|
||||||
long chatId = intent.getLongExtra("chatId", 0);
|
|
||||||
long userId = intent.getLongExtra("userId", 0);
|
long chatId = intent.getLongExtra("chatId", intent.getIntExtra("chatId", 0));
|
||||||
|
long userId = intent.getLongExtra("userId", intent.getIntExtra("userId", 0));
|
||||||
int encId = intent.getIntExtra("encId", 0);
|
int encId = intent.getIntExtra("encId", 0);
|
||||||
int widgetId = intent.getIntExtra("appWidgetId", 0);
|
int widgetId = intent.getIntExtra("appWidgetId", 0);
|
||||||
if (widgetId != 0) {
|
if (widgetId != 0) {
|
||||||
|
|
|
@ -1542,7 +1542,7 @@ public class LoginActivity extends BaseFragment {
|
||||||
|
|
||||||
private void setCountry(HashMap<String, String> languageMap, String country) {
|
private void setCountry(HashMap<String, String> languageMap, String country) {
|
||||||
String name = languageMap.get(country);
|
String name = languageMap.get(country);
|
||||||
if (name != null) {
|
if (name != null && countriesArray != null) {
|
||||||
CountrySelectActivity.Country countryWithCode = null;
|
CountrySelectActivity.Country countryWithCode = null;
|
||||||
for (int i = 0; i < countriesArray.size(); i++) {
|
for (int i = 0; i < countriesArray.size(); i++) {
|
||||||
if (countriesArray.get(i) != null && countriesArray.get(i).name.equals(country)) {
|
if (countriesArray.get(i) != null && countriesArray.get(i).name.equals(country)) {
|
||||||
|
|
|
@ -21,8 +21,12 @@ import androidx.core.content.ContextCompat;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.google.android.exoplayer2.util.Log;
|
||||||
|
|
||||||
import org.telegram.messenger.AndroidUtilities;
|
import org.telegram.messenger.AndroidUtilities;
|
||||||
|
import org.telegram.messenger.ChatObject;
|
||||||
import org.telegram.messenger.ContactsController;
|
import org.telegram.messenger.ContactsController;
|
||||||
|
import org.telegram.messenger.FileLog;
|
||||||
import org.telegram.messenger.ImageLocation;
|
import org.telegram.messenger.ImageLocation;
|
||||||
import org.telegram.messenger.LocaleController;
|
import org.telegram.messenger.LocaleController;
|
||||||
import org.telegram.messenger.MessageObject;
|
import org.telegram.messenger.MessageObject;
|
||||||
|
@ -57,7 +61,7 @@ public class MessageSeenView extends FrameLayout {
|
||||||
|
|
||||||
FlickerLoadingView flickerLoadingView;
|
FlickerLoadingView flickerLoadingView;
|
||||||
|
|
||||||
public MessageSeenView(@NonNull Context context, int currentAccount, MessageObject messageObject) {
|
public MessageSeenView(@NonNull Context context, int currentAccount, MessageObject messageObject, TLRPC.Chat chat) {
|
||||||
super(context);
|
super(context);
|
||||||
this.currentAccount = currentAccount;
|
this.currentAccount = currentAccount;
|
||||||
isVoice = (messageObject.isRoundVideo() || messageObject.isVoice());
|
isVoice = (messageObject.isRoundVideo() || messageObject.isVoice());
|
||||||
|
@ -98,6 +102,7 @@ public class MessageSeenView extends FrameLayout {
|
||||||
}
|
}
|
||||||
long finalFromId = fromId;
|
long finalFromId = fromId;
|
||||||
ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
|
ConnectionsManager.getInstance(currentAccount).sendRequest(req, (response, error) -> AndroidUtilities.runOnUIThread(() -> {
|
||||||
|
FileLog.e("MessageSeenView request completed");
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
TLRPC.Vector vector = (TLRPC.Vector) response;
|
TLRPC.Vector vector = (TLRPC.Vector) response;
|
||||||
ArrayList<Long> unknownUsers = new ArrayList<>();
|
ArrayList<Long> unknownUsers = new ArrayList<>();
|
||||||
|
@ -112,7 +117,7 @@ public class MessageSeenView extends FrameLayout {
|
||||||
}
|
}
|
||||||
TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(peerId);
|
TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(peerId);
|
||||||
allPeers.add(peerId);
|
allPeers.add(peerId);
|
||||||
if (user == null) {
|
if (true || user == null) {
|
||||||
unknownUsers.add(peerId);
|
unknownUsers.add(peerId);
|
||||||
} else {
|
} else {
|
||||||
usersLocal.put(peerId, user);
|
usersLocal.put(peerId, user);
|
||||||
|
@ -127,25 +132,46 @@ public class MessageSeenView extends FrameLayout {
|
||||||
}
|
}
|
||||||
updateView();
|
updateView();
|
||||||
} else {
|
} else {
|
||||||
TLRPC.TL_users_getUsers usersReq = new TLRPC.TL_users_getUsers();
|
if (ChatObject.isChannel(chat)) {
|
||||||
for (int i = 0; i < unknownUsers.size(); i++) {
|
TLRPC.TL_channels_getParticipants usersReq = new TLRPC.TL_channels_getParticipants();
|
||||||
usersReq.id.add(MessagesController.getInstance(currentAccount).getInputUser(unknownUsers.get(i)));
|
usersReq.limit = 50;
|
||||||
|
usersReq.offset = 0;
|
||||||
|
usersReq.filter = new TLRPC.TL_channelParticipantsRecent();
|
||||||
|
usersReq.channel = MessagesController.getInstance(currentAccount).getInputChannel(chat.id);
|
||||||
|
ConnectionsManager.getInstance(currentAccount).sendRequest(usersReq, (response1, error1) -> AndroidUtilities.runOnUIThread(() -> {
|
||||||
|
if (response1 != null) {
|
||||||
|
TLRPC.TL_channels_channelParticipants users = (TLRPC.TL_channels_channelParticipants) response1;
|
||||||
|
for (int i = 0; i < users.users.size(); i++) {
|
||||||
|
TLRPC.User user = users.users.get(i);
|
||||||
|
MessagesController.getInstance(currentAccount).putUser(user, false);
|
||||||
|
usersLocal.put(user.id, user);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < allPeers.size(); i++) {
|
||||||
|
peerIds.add(allPeers.get(i));
|
||||||
|
this.users.add(usersLocal.get(allPeers.get(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updateView();
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
TLRPC.TL_messages_getFullChat usersReq = new TLRPC.TL_messages_getFullChat();
|
||||||
|
usersReq.chat_id = chat.id;
|
||||||
|
ConnectionsManager.getInstance(currentAccount).sendRequest(usersReq, (response1, error1) -> AndroidUtilities.runOnUIThread(() -> {
|
||||||
|
if (response1 != null) {
|
||||||
|
TLRPC.TL_messages_chatFull chatFull = (TLRPC.TL_messages_chatFull) response1;
|
||||||
|
for (int i = 0; i < chatFull.users.size(); i++) {
|
||||||
|
TLRPC.User user = chatFull.users.get(i);
|
||||||
|
MessagesController.getInstance(currentAccount).putUser(user, false);
|
||||||
|
usersLocal.put(user.id, user);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < allPeers.size(); i++) {
|
||||||
|
peerIds.add(allPeers.get(i));
|
||||||
|
this.users.add(usersLocal.get(allPeers.get(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updateView();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
ConnectionsManager.getInstance(currentAccount).sendRequest(usersReq, (response1, error1) -> AndroidUtilities.runOnUIThread(() -> {
|
|
||||||
if (response1 != null) {
|
|
||||||
TLRPC.Vector users = (TLRPC.Vector) response1;
|
|
||||||
for (int i = 0; i < users.objects.size(); i++) {
|
|
||||||
TLRPC.User user = (TLRPC.User) users.objects.get(i);
|
|
||||||
MessagesController.getInstance(currentAccount).putUser(user, false);
|
|
||||||
usersLocal.put(user.id, user);
|
|
||||||
}
|
|
||||||
for (int i = 0; i < allPeers.size(); i++) {
|
|
||||||
peerIds.add(allPeers.get(i));
|
|
||||||
this.users.add(usersLocal.get(allPeers.get(i)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
updateView();
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
updateView();
|
updateView();
|
||||||
|
|
|
@ -4742,14 +4742,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
}
|
}
|
||||||
} else if (id == NotificationCenter.reloadInterface) {
|
} else if (id == NotificationCenter.reloadInterface) {
|
||||||
int prevEmptyRow = emptyRow;
|
int prevEmptyRow = emptyRow;
|
||||||
updateRowsIds();
|
updateListAnimated(false);
|
||||||
if (listAdapter != null && prevEmptyRow != emptyRow) {
|
|
||||||
if (emptyRow == -1) {
|
|
||||||
listAdapter.notifyItemRemoved(emptyRow);
|
|
||||||
} else {
|
|
||||||
listAdapter.notifyItemInserted(emptyRow);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (id == NotificationCenter.newSuggestionsAvailable) {
|
} else if (id == NotificationCenter.newSuggestionsAvailable) {
|
||||||
int prevRow1 = passwordSuggestionRow;
|
int prevRow1 = passwordSuggestionRow;
|
||||||
int prevRow2 = phoneSuggestionRow;
|
int prevRow2 = phoneSuggestionRow;
|
||||||
|
@ -6847,9 +6840,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
getMessagesController().removeSuggestion(0, type == SettingsSuggestionCell.TYPE_PHONE ? "VALIDATE_PHONE_NUMBER" : "VALIDATE_PASSWORD");
|
getMessagesController().removeSuggestion(0, type == SettingsSuggestionCell.TYPE_PHONE ? "VALIDATE_PHONE_NUMBER" : "VALIDATE_PASSWORD");
|
||||||
getNotificationCenter().addObserver(ProfileActivity.this, NotificationCenter.newSuggestionsAvailable);
|
getNotificationCenter().addObserver(ProfileActivity.this, NotificationCenter.newSuggestionsAvailable);
|
||||||
int oldRow = type == SettingsSuggestionCell.TYPE_PHONE ? phoneSuggestionRow : passwordSuggestionRow;
|
int oldRow = type == SettingsSuggestionCell.TYPE_PHONE ? phoneSuggestionRow : passwordSuggestionRow;
|
||||||
updateRowsIds();
|
updateListAnimated(false);
|
||||||
saveScrollPosition();
|
|
||||||
listAdapter.notifyItemRangeRemoved(oldRow, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -8106,7 +8097,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
}
|
}
|
||||||
int oldIndex = oldPositionToItem.get(oldItemPosition, -1);
|
int oldIndex = oldPositionToItem.get(oldItemPosition, -1);
|
||||||
int newIndex = newPositionToItem.get(newItemPosition, -1);
|
int newIndex = newPositionToItem.get(newItemPosition, -1);
|
||||||
return oldIndex == newIndex && oldIndex >= 0 && newIndex >= 0;
|
return oldIndex == newIndex && oldIndex >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue