From 16150fe751d18dd1d08b13a450af49743ce934fe Mon Sep 17 00:00:00 2001 From: DrKLO Date: Sat, 30 Aug 2014 00:06:04 +0300 Subject: [PATCH] New documents design, bug fixes --- TMessagesProj/build.gradle | 2 +- .../org/telegram/android/ImageLoader.java | 13 +- .../org/telegram/android/ImageReceiver.java | 13 +- .../org/telegram/android/MessageObject.java | 20 +- .../telegram/android/MessagesController.java | 13 +- .../org/telegram/android/MessagesStorage.java | 27 +- .../android/NotificationsController.java | 25 +- .../org/telegram/messenger/Utilities.java | 2 +- .../org/telegram/ui/Cells/ChatAudioCell.java | 2 +- .../org/telegram/ui/Cells/ChatBaseCell.java | 3 +- .../org/telegram/ui/Cells/ChatMediaCell.java | 162 +++++- .../telegram/ui/Cells/ChatMessageCell.java | 2 +- .../org/telegram/ui/Cells/ChatOrUserCell.java | 1 + .../java/org/telegram/ui/ChatActivity.java | 482 +++--------------- .../java/org/telegram/ui/LaunchActivity.java | 25 +- .../java/org/telegram/ui/PhotoViewer.java | 69 +-- .../ui/SettingsWallpapersActivity.java | 27 +- .../ui/Views/ActionBar/ActionBarActivity.java | 12 +- .../telegram/ui/Views/HorizontalListView.java | 97 ++-- .../telegram/ui/Views/RoundProgressView.java | 6 +- .../src/main/res/drawable-hdpi/doc_blue.png | Bin 869 -> 2609 bytes .../src/main/res/drawable-hdpi/doc_green.png | Bin 875 -> 2506 bytes .../res/drawable-hdpi/doccancel_b.png.png | Bin 0 -> 1401 bytes .../main/res/drawable-hdpi/doccancel_g.png | Bin 0 -> 1414 bytes .../main/res/drawable-hdpi/docload_b.png.png | Bin 0 -> 2577 bytes .../main/res/drawable-hdpi/docload_g.png.png | Bin 0 -> 2581 bytes .../src/main/res/drawable-ldpi/doc_blue.png | Bin 500 -> 1699 bytes .../src/main/res/drawable-ldpi/doc_green.png | Bin 490 -> 1615 bytes .../main/res/drawable-ldpi/doccancel_b.png | Bin 0 -> 1265 bytes .../main/res/drawable-ldpi/doccancel_g.png | Bin 0 -> 1265 bytes .../src/main/res/drawable-ldpi/docload_b.png | Bin 0 -> 1728 bytes .../src/main/res/drawable-ldpi/docload_g.png | Bin 0 -> 1725 bytes .../src/main/res/drawable-mdpi/doc_blue.png | Bin 589 -> 2037 bytes .../src/main/res/drawable-mdpi/doc_green.png | Bin 587 -> 1944 bytes .../main/res/drawable-mdpi/doccancel_b.png | Bin 0 -> 1248 bytes .../main/res/drawable-mdpi/doccancel_g.png | Bin 0 -> 1265 bytes .../src/main/res/drawable-mdpi/docload_b.png | Bin 0 -> 1964 bytes .../src/main/res/drawable-mdpi/docload_g.png | Bin 0 -> 1969 bytes .../src/main/res/drawable-xhdpi/doc_blue.png | Bin 1759 -> 3293 bytes .../src/main/res/drawable-xhdpi/doc_green.png | Bin 1758 -> 3197 bytes .../main/res/drawable-xhdpi/doccancel_b.png | Bin 0 -> 1536 bytes .../main/res/drawable-xhdpi/doccancel_g.png | Bin 0 -> 1519 bytes .../src/main/res/drawable-xhdpi/docload_b.png | Bin 0 -> 3130 bytes .../src/main/res/drawable-xhdpi/docload_g.png | Bin 0 -> 3132 bytes .../src/main/res/drawable-xxhdpi/doc_blue.png | Bin 1602 -> 5125 bytes .../main/res/drawable-xxhdpi/doc_green.png | Bin 1612 -> 5127 bytes .../main/res/drawable-xxhdpi/doccancel_b.png | Bin 0 -> 1740 bytes .../main/res/drawable-xxhdpi/doccancel_g.png | Bin 0 -> 1738 bytes .../main/res/drawable-xxhdpi/docload_b.png | Bin 0 -> 4296 bytes .../main/res/drawable-xxhdpi/docload_g.png | Bin 0 -> 4309 bytes .../chat_group_incoming_document_layout.xml | 134 ----- .../chat_group_incoming_location_layout.xml | 75 --- .../layout/chat_incoming_document_layout.xml | 126 ----- .../layout/chat_incoming_location_layout.xml | 69 --- .../layout/chat_outgoing_document_layout.xml | 152 ------ .../layout/chat_outgoing_location_layout.xml | 90 ---- .../src/main/res/values-it/strings.xml | 74 +-- .../src/main/res/values-nl/strings.xml | 22 +- 58 files changed, 439 insertions(+), 1306 deletions(-) mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-hdpi/doc_blue.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-hdpi/doc_green.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/doccancel_b.png.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/doccancel_g.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/docload_b.png.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/docload_g.png.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-ldpi/doc_green.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doccancel_b.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doccancel_g.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docload_b.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docload_g.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-mdpi/doc_blue.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-mdpi/doc_green.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/doccancel_b.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/doccancel_g.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/docload_b.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/docload_g.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-xhdpi/doc_blue.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-xhdpi/doc_green.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/doccancel_b.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/doccancel_g.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/docload_b.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/docload_g.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-xxhdpi/doc_blue.png mode change 100755 => 100644 TMessagesProj/src/main/res/drawable-xxhdpi/doc_green.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/doccancel_b.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/doccancel_g.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/docload_b.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/docload_g.png delete mode 100644 TMessagesProj/src/main/res/layout/chat_group_incoming_document_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_group_incoming_location_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_incoming_document_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_incoming_location_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_outgoing_document_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_outgoing_location_layout.xml diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index d60fb1b6..e57703a9 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -80,7 +80,7 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 19 - versionCode 312 + versionCode 315 versionName "1.8.0" } } diff --git a/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java index cf08591c..714479e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java @@ -278,10 +278,7 @@ public class ImageLoader { } } } catch (Exception e) { - if (canDeleteFile && cacheFileFinal != null && cacheFileFinal.length() == 0) { - cacheFileFinal.delete(); - } - FileLog.e("tmessages", e); + //don't promt } return image != null ? new BitmapDrawable(image) : null; } @@ -641,7 +638,8 @@ public class ImageLoader { if (filter != null) { key += "@" + filter; } - if (imageReceiver != null) { + BitmapDrawable bitmapDrawable = memCache.get(key); + if (bitmapDrawable != null && imageReceiver != null) { Integer TAG = imageReceiver.getTag(); if (TAG != null) { CacheImage alreadyLoadingImage = imageLoadingByTag.get(TAG); @@ -650,7 +648,7 @@ public class ImageLoader { } } } - return memCache.get(key); + return bitmapDrawable; } public void replaceImageInCache(final String oldKey, final String newKey) { @@ -744,7 +742,8 @@ public class ImageLoader { } img.addImageView(imageView); imageLoadingByKeys.put(key, img); - cacheOutTasks.add(new CacheOutTask(img)); + img.cacheTask = new CacheOutTask(img); + cacheOutTasks.add(img.cacheTask); runCacheTasks(false); } else { img.url = url; diff --git a/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java b/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java index 5ac40331..02aca637 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java @@ -33,7 +33,6 @@ public class ImageReceiver { private int imageX = 0, imageY = 0, imageW = 0, imageH = 0; private Rect drawRegion = new Rect(); private boolean isVisible = true; - private boolean selfSetting = false; private boolean isAspectFit = false; public ImageReceiver() { @@ -106,12 +105,7 @@ public class ImageReceiver { isPlaceholder = true; ImageLoader.getInstance().loadImage(fileLocation, httpUrl, this, size); } else { - selfSetting = true; setImageBitmap(img, currentPath); - selfSetting = false; - } - if (parentView != null) { - parentView.invalidate(); } } @@ -122,7 +116,7 @@ public class ImageReceiver { isPlaceholder = false; ImageLoader.getInstance().incrementUseCount(currentPath); currentImage = bitmap; - if (!selfSetting && parentView != null) { + if (parentView != null) { parentView.invalidate(); } } @@ -193,7 +187,7 @@ public class ImageReceiver { } } - public void draw(Canvas canvas, int x, int y, int w, int h) { + public boolean draw(Canvas canvas, int x, int y, int w, int h) { try { Drawable bitmapDrawable = currentImage; if (bitmapDrawable == null && last_placeholder != null && last_placeholder instanceof BitmapDrawable) { @@ -240,12 +234,14 @@ public class ImageReceiver { } } } + return true; } else if (last_placeholder != null) { drawRegion.set(x, y, x + w, y + h); last_placeholder.setBounds(drawRegion); if (isVisible) { last_placeholder.draw(canvas); } + return true; } } catch (Exception e) { if (currentPath != null) { @@ -255,6 +251,7 @@ public class ImageReceiver { setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size); FileLog.e("tmessages", e); } + return false; } public Bitmap getBitmap() { diff --git a/TMessagesProj/src/main/java/org/telegram/android/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/android/MessageObject.java index dfb10f03..5ec21af4 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MessageObject.java @@ -279,24 +279,20 @@ public class MessageObject { type = 3; } else if (message.media != null && message.media instanceof TLRPC.TL_messageMediaContact) { if (isFromMe()) { - contentType = 4; + contentType = 3; type = 12; } else { - contentType = 5; + contentType = 4; type = 13; } } else if (message.media != null && message.media instanceof TLRPC.TL_messageMediaUnsupported) { contentType = type = 0; } else if (message.media != null && message.media instanceof TLRPC.TL_messageMediaDocument) { + contentType = 1; if (message.media.document.thumb != null && !(message.media.document.thumb instanceof TLRPC.TL_photoSizeEmpty) && message.media.document.mime_type != null && message.media.document.mime_type.equals("image/gif")) { - contentType = 1; type = 8; } else { - if (isFromMe()) { - contentType = type = 8; - } else { - contentType = type = 9; - } + type = 9; } } else if (message.media != null && message.media instanceof TLRPC.TL_messageMediaAudio) { contentType = type = 2; @@ -305,9 +301,11 @@ public class MessageObject { if (message.action instanceof TLRPC.TL_messageActionLoginUnknownLocation) { contentType = type = 0; } else if (message.action instanceof TLRPC.TL_messageActionChatEditPhoto || message.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) { - contentType = type = 11; + contentType = 8; + type = 11; } else { - contentType = type = 10; + contentType = 7; + type = 10; } } else if (message instanceof TLRPC.TL_messageForwarded) { contentType = type = 0; @@ -417,7 +415,7 @@ public class MessageObject { } private void generateLayout() { - if (type != 0 && type != 1 && type != 8 && type != 9 || messageOwner.to_id == null || messageText == null || messageText.length() == 0) { + if (type != 0 || messageOwner.to_id == null || messageText == null || messageText.length() == 0) { return; } diff --git a/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java index aa43c96a..a5efd842 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java @@ -170,6 +170,15 @@ public class MessagesController implements NotificationCenter.NotificationCenter user.status = null; user.photo = new TLRPC.TL_userProfilePhotoEmpty(); putUser(user, true); + + user = new TLRPC.TL_userForeign(); + user.phone = "42777"; + user.id = 777000; + user.first_name = "Telegram"; + user.last_name = "Notifications"; + user.status = null; + user.photo = new TLRPC.TL_userProfilePhotoEmpty(); + putUser(user, true); } public static TLRPC.InputUser getInputUser(TLRPC.User user) { @@ -2991,11 +3000,11 @@ public class MessagesController implements NotificationCenter.NotificationCenter UserConfig.saveConfig(false); newMessage.unread = true; newMessage.date = update.date; - newMessage.from_id = 333000; + newMessage.from_id = 777000; newMessage.to_id = new TLRPC.TL_peerUser(); newMessage.to_id.user_id = UserConfig.getClientUserId(); newMessage.out = false; - newMessage.dialog_id = 333000; + newMessage.dialog_id = 777000; messagesArr.add(newMessage); MessageObject obj = new MessageObject(newMessage, usersDict); diff --git a/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java index 7ed8172e..13d194c4 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java @@ -31,6 +31,7 @@ import org.telegram.ui.ApplicationLoader; import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -170,7 +171,7 @@ public class MessagesStorage { } catch (Exception e) { FileLog.e("tmessages", e); } - loadUnreadMessages(false); + loadUnreadMessages(); } public void updateDbToVersion3() { @@ -352,7 +353,7 @@ public class MessagesStorage { }); } - public void loadUnreadMessages(final boolean onlyCount) { + public void loadUnreadMessages() { storageQueue.postRunnable(new Runnable() { @Override public void run() { @@ -364,20 +365,18 @@ public class MessagesStorage { long did = cursor.longValue(0); int count = cursor.intValue(1); pushDialogs.put(did, count); - if (!onlyCount) { - if (ids.length() != 0) { - ids += ","; - } - ids += did; + if (ids.length() != 0) { + ids += ","; } + ids += did; } cursor.dispose(); - final ArrayList messages = onlyCount ? null : new ArrayList(); - final ArrayList users = onlyCount ? null : new ArrayList(); - final ArrayList chats = onlyCount ? null : new ArrayList(); - final ArrayList encryptedChats = onlyCount ? null : new ArrayList(); - if (messages != null && ids.length() > 0) { + final ArrayList messages = new ArrayList(); + final ArrayList users = new ArrayList(); + final ArrayList chats = new ArrayList(); + final ArrayList encryptedChats = new ArrayList(); + if (ids.length() > 0) { ArrayList userIds = new ArrayList(); ArrayList chatIds = new ArrayList(); ArrayList encryptedChatIds = new ArrayList(); @@ -510,7 +509,7 @@ public class MessagesStorage { cursor.dispose(); } } - + Collections.reverse(messages); AndroidUtilities.RunOnUIThread(new Runnable() { @Override public void run() { @@ -3595,7 +3594,7 @@ public class MessagesStorage { database.commitTransaction(); - loadUnreadMessages(true); + loadUnreadMessages(); } catch (Exception e) { FileLog.e("tmessages", e); } diff --git a/TMessagesProj/src/main/java/org/telegram/android/NotificationsController.java b/TMessagesProj/src/main/java/org/telegram/android/NotificationsController.java index 6286c385..0d189ce9 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/NotificationsController.java +++ b/TMessagesProj/src/main/java/org/telegram/android/NotificationsController.java @@ -373,6 +373,7 @@ public class NotificationsController { .setContentTitle(name) .setSmallIcon(R.drawable.notification) .setAutoCancel(true) + .setNumber(total_unread_count) .setContentIntent(contentIntent); String lastMessage = null; @@ -577,6 +578,7 @@ public class NotificationsController { } pushMessagesDict.put(messageObject.messageOwner.id, messageObject); pushMessages.add(0, messageObject); + FileLog.e("tmessages", "processNewMessages add dialog = " + dialog_id); } } @@ -607,6 +609,7 @@ public class NotificationsController { Integer currentCount = pushDialogs.get(dialog_id); Integer newCount = entry.getValue(); + FileLog.e("tmessages", "processDialogsUpdateRead dialog = " + dialog_id + " newCount = " + newCount + " oldCount = " + currentCount); if (newCount < 0) { if (currentCount == null) { continue; @@ -646,6 +649,17 @@ public class NotificationsController { MessagesController.getInstance().putChats(chats, true); MessagesController.getInstance().putEncryptedChats(encryptedChats, true); + pushDialogs.clear(); + pushMessages.clear(); + pushMessagesDict.clear(); + total_unread_count = 0; + SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE); + for (HashMap.Entry entry : dialogs.entrySet()) { + pushDialogs.put(entry.getKey(), entry.getValue()); + total_unread_count += entry.getValue(); + FileLog.e("tmessages", "processLoadedUnreadMessages dialog = " + entry.getKey() + " count = " + entry.getValue()); + } + FileLog.e("tmessages", "processLoadedUnreadMessages total = " + total_unread_count + " messages = " + messages.size()); if (messages != null) { for (TLRPC.Message message : messages) { if (pushMessagesDict.containsKey(message.id)) { @@ -660,21 +674,12 @@ public class NotificationsController { pushMessages.add(0, messageObject); } } - - pushDialogs.clear(); - total_unread_count = 0; - SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE); - for (HashMap.Entry entry : dialogs.entrySet()) { - pushDialogs.put(entry.getKey(), entry.getValue()); - total_unread_count += entry.getValue(); - } if (total_unread_count == 0) { - pushMessages.clear(); - pushMessagesDict.clear(); popupMessages.clear(); showOrUpdateNotification(false); NotificationCenter.getInstance().postNotificationName(NotificationCenter.pushMessagesUpdated); } + if (preferences.getBoolean("badgeNumber", true)) { setBadge(ApplicationLoader.applicationContext, total_unread_count); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java index 7903e768..163b54a6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Utilities.java @@ -547,7 +547,7 @@ public class Utilities { } public static int getUserAvatarForId(int id) { - if (id / 1000 == 333) { + if (id / 1000 == 333 || id / 1000 == 777) { return R.drawable.telegram_avatar; } return arrUsersAvatars[getColorIndex(id)]; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java index 2798d818..bedb1568 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java @@ -60,7 +60,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega private String currentNameString; public ChatAudioCell(Context context) { - super(context, false); + super(context); TAG = MediaController.getInstance().generateObserverTag(); avatarImage = new ImageReceiver(this); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java index f9c357ab..41365d4e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java @@ -146,10 +146,9 @@ public class ChatBaseCell extends BaseCell { } } - public ChatBaseCell(Context context, boolean isMedia) { + public ChatBaseCell(Context context) { super(context); init(); - media = isMedia; avatarImage = new ImageReceiver(this); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java index 8d37efe9..dfb635bf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java @@ -16,11 +16,13 @@ import android.graphics.drawable.Drawable; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; +import android.text.TextUtils; import android.view.MotionEvent; import android.view.SoundEffectConstants; import org.telegram.android.AndroidUtilities; import org.telegram.android.ImageLoader; +import org.telegram.android.LocaleController; import org.telegram.messenger.FileLoader; import org.telegram.android.MediaController; import org.telegram.messenger.R; @@ -43,10 +45,15 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD private static Drawable placeholderInDrawable; private static Drawable placeholderOutDrawable; + private static Drawable placeholderDocInDrawable; + private static Drawable placeholderDocOutDrawable; private static Drawable videoIconDrawable; private static Drawable[] buttonStatesDrawables = new Drawable[4]; + private static Drawable[][] buttonStatesDrawablesDoc = new Drawable[2][2]; private static TextPaint infoPaint; private static MessageObject lastDownloadedGifMessage = null; + private static TextPaint namePaint; + private static Paint docBackPaint; private GifDrawable gifDrawable = null; @@ -74,23 +81,38 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD private int infoOffset = 0; private String currentInfoString; + private StaticLayout nameLayout; + private int nameWidth = 0; + private String currentNameString; + public ChatMediaCellDelegate mediaDelegate = null; public ChatMediaCell(Context context) { - super(context, true); + super(context); if (placeholderInDrawable == null) { placeholderInDrawable = getResources().getDrawable(R.drawable.photo_placeholder_in); placeholderOutDrawable = getResources().getDrawable(R.drawable.photo_placeholder_out); + placeholderDocInDrawable = getResources().getDrawable(R.drawable.doc_blue); + placeholderDocOutDrawable = getResources().getDrawable(R.drawable.doc_green); buttonStatesDrawables[0] = getResources().getDrawable(R.drawable.photoload); buttonStatesDrawables[1] = getResources().getDrawable(R.drawable.photocancel); buttonStatesDrawables[2] = getResources().getDrawable(R.drawable.photogif); buttonStatesDrawables[3] = getResources().getDrawable(R.drawable.playvideo); + buttonStatesDrawablesDoc[0][0] = getResources().getDrawable(R.drawable.docload_b); + buttonStatesDrawablesDoc[1][0] = getResources().getDrawable(R.drawable.doccancel_b); + buttonStatesDrawablesDoc[0][1] = getResources().getDrawable(R.drawable.docload_g); + buttonStatesDrawablesDoc[1][1] = getResources().getDrawable(R.drawable.doccancel_g); videoIconDrawable = getResources().getDrawable(R.drawable.ic_video); infoPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); - infoPaint.setColor(0xffffffff); infoPaint.setTextSize(AndroidUtilities.dp(12)); + + namePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + namePaint.setColor(0xff000000); + namePaint.setTextSize(AndroidUtilities.dp(16)); + + docBackPaint = new Paint(); } TAG = MediaController.getInstance().generateObserverTag(); @@ -135,7 +157,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD buttonPressed = 1; invalidate(); result = true; - } else if (photoImage.isInsideImage(x, y)) { + } else if (x >= photoImage.getImageX() && x <= photoImage.getImageX() + backgroundWidth && y >= photoImage.getImageY() && y <= photoImage.getImageY() + photoImage.getImageHeight()) { imagePressed = true; result = true; } @@ -213,6 +235,12 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD if (mediaDelegate != null) { mediaDelegate.didPressedImage(this); } + } else if (currentMessageObject.type == 9) { + if (buttonState == -1) { + if (mediaDelegate != null) { + mediaDelegate.didPressedImage(this); + } + } } } @@ -225,7 +253,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD } else { photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, currentMessageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable, currentPhotoObject.photoOwner.size); } - } else if (currentMessageObject.type == 8) { + } else if (currentMessageObject.type == 8 || currentMessageObject.type == 9) { FileLoader.getInstance().loadFile(currentMessageObject.messageOwner.media.document); lastDownloadedGifMessage = currentMessageObject; } else if (currentMessageObject.type == 3) { @@ -243,7 +271,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD cancelLoading = true; if (currentMessageObject.type == 1) { ImageLoader.getInstance().cancelLoadingForImageView(photoImage); - } else if (currentMessageObject.type == 8) { + } else if (currentMessageObject.type == 8 || currentMessageObject.type == 9) { FileLoader.getInstance().cancelLoadFile(currentMessageObject.messageOwner.media.document); if (lastDownloadedGifMessage != null && lastDownloadedGifMessage.messageOwner.id == currentMessageObject.messageOwner.id) { lastDownloadedGifMessage = null; @@ -297,6 +325,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD @Override public void setMessageObject(MessageObject messageObject) { + media = messageObject.type != 9; if (currentMessageObject != messageObject || isPhotoDataChanged(messageObject) || isUserDataChanged()) { super.setMessageObject(messageObject); cancelLoading = false; @@ -308,7 +337,41 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD currentUrl = null; photoNotSet = false; - if (messageObject.type == 8) { + if (messageObject.type == 9) { + String name = messageObject.messageOwner.media.document.file_name; + if (name == null || name.length() == 0) { + name = LocaleController.getString("AttachDocument", R.string.AttachDocument); + } + int maxWidth = Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) - AndroidUtilities.dp(122 + 86 + 24); + if (currentNameString == null || !currentNameString.equals(name)) { + currentNameString = name; + nameWidth = (int) Math.ceil(namePaint.measureText(currentNameString)); + nameWidth = Math.min(maxWidth, (int) Math.ceil(namePaint.measureText(currentNameString))); + CharSequence str = TextUtils.ellipsize(currentNameString, namePaint, nameWidth, TextUtils.TruncateAt.END); + nameLayout = new StaticLayout(str, namePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + } + + String fileName = messageObject.getFileName(); + int idx = fileName.lastIndexOf("."); + String ext = null; + if (idx != -1) { + ext = fileName.substring(idx + 1); + } + if (ext == null || ext.length() == 0) { + ext = messageObject.messageOwner.media.document.mime_type; + } + ext = ext.toUpperCase(); + + String str = Utilities.formatFileSize(messageObject.messageOwner.media.document.size) + " " + ext; + + if (currentInfoString == null || !currentInfoString.equals(str)) { + currentInfoString = str; + infoOffset = 0; + infoWidth = Math.min(maxWidth, (int) Math.ceil(infoPaint.measureText(currentInfoString))); + CharSequence str2 = TextUtils.ellipsize(currentInfoString, infoPaint, infoWidth, TextUtils.TruncateAt.END); + infoLayout = new StaticLayout(str2, infoPaint, infoWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + } + } else if (messageObject.type == 8) { gifDrawable = MediaController.getInstance().getGifDrawable(this, false); String str = Utilities.formatFileSize(messageObject.messageOwner.media.document.size); @@ -318,6 +381,8 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD infoWidth = (int) Math.ceil(infoPaint.measureText(currentInfoString)); infoLayout = new StaticLayout(currentInfoString, infoPaint, infoWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); } + nameLayout = null; + currentNameString = null; } else if (messageObject.type == 3) { int duration = messageObject.messageOwner.media.video.duration; int minutes = duration / 60; @@ -329,12 +394,31 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD infoWidth = (int) Math.ceil(infoPaint.measureText(currentInfoString)); infoLayout = new StaticLayout(currentInfoString, infoPaint, infoWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); } + nameLayout = null; + currentNameString = null; } else { currentInfoString = null; + currentNameString = null; infoLayout = null; + nameLayout = null; } - if (messageObject.type == 4) { + if (messageObject.type == 9) { + photoWidth = AndroidUtilities.dp(86); + photoHeight = AndroidUtilities.dp(86); + backgroundWidth = photoWidth + Math.max(nameWidth, infoWidth) + AndroidUtilities.dp(40); + currentPhotoObject = PhotoObject.getClosestImageWithSize(messageObject.photoThumbs, 800, 800); + if (currentPhotoObject != null) { + if (currentPhotoObject.image != null) { + photoImage.setImageBitmap(currentPhotoObject.image); + } else { + currentPhotoFilter = String.format(Locale.US, "%d_%d_b", photoWidth, photoHeight); + photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, null, currentPhotoObject.photoOwner.size); + } + } else { + photoImage.setImageBitmap((BitmapDrawable)null); + } + } else if (messageObject.type == 4) { photoWidth = AndroidUtilities.dp(100); photoHeight = AndroidUtilities.dp(100); backgroundWidth = photoWidth + AndroidUtilities.dp(12); @@ -446,7 +530,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD } fileName = FileLoader.getAttachFileName(currentPhotoObject.photoOwner); cacheFile = new File(AndroidUtilities.getCacheDir(), fileName); - } else if (currentMessageObject.type == 8 || currentMessageObject.type == 3) { + } else if (currentMessageObject.type == 8 || currentMessageObject.type == 3 || currentMessageObject.type == 9) { if (currentMessageObject.messageOwner.attachPath != null && currentMessageObject.messageOwner.attachPath.length() != 0) { File f = new File(currentMessageObject.messageOwner.attachPath); if (f.exists()) { @@ -530,7 +614,11 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD int x; if (currentMessageObject.isOut()) { - x = layoutWidth - backgroundWidth - AndroidUtilities.dp(3); + if (media) { + x = layoutWidth - backgroundWidth - AndroidUtilities.dp(3); + } else { + x = layoutWidth - backgroundWidth + AndroidUtilities.dp(6); + } } else { if (isChat) { x = AndroidUtilities.dp(67); @@ -542,11 +630,12 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD int size = AndroidUtilities.dp(44); buttonX = (int)(x + (photoWidth - size) / 2.0f); buttonY = (int)(AndroidUtilities.dp(7) + (photoHeight - size) / 2.0f); - progressView.rect.set(buttonX + AndroidUtilities.dp(2), buttonY + AndroidUtilities.dp(2), buttonX + AndroidUtilities.dp(42), buttonY + AndroidUtilities.dp(42)); + progressView.rect.set(buttonX + AndroidUtilities.dp(1), buttonY + AndroidUtilities.dp(1), buttonX + AndroidUtilities.dp(43), buttonY + AndroidUtilities.dp(43)); } @Override protected void onAfterBackgroundDraw(Canvas canvas) { + boolean imageDrawn = false; if (gifDrawable != null) { canvas.save(); gifDrawable.setBounds(photoImage.getImageX(), photoImage.getImageY(), photoImage.getImageX() + photoWidth, photoImage.getImageY() + photoHeight); @@ -554,12 +643,46 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD canvas.restore(); } else { photoImage.setVisible(!PhotoViewer.getInstance().isShowingImage(currentMessageObject), false); - photoImage.draw(canvas, photoImage.getImageX(), photoImage.getImageY(), photoWidth, photoHeight); + imageDrawn = photoImage.draw(canvas, photoImage.getImageX(), photoImage.getImageY(), photoWidth, photoHeight); drawTime = photoImage.getVisible(); } + if (currentMessageObject.type == 9) { + if (currentMessageObject.isOut()) { + infoPaint.setColor(0xff75b166); + docBackPaint.setColor(0xffd0f3b3); + } else { + infoPaint.setColor(0xffa1adbb); + docBackPaint.setColor(0xffebf0f5); + } + + if (!imageDrawn) { + canvas.drawRect(photoImage.getImageX(), photoImage.getImageY(), photoImage.getImageX() + photoImage.getImageWidth(), photoImage.getImageY() + photoImage.getImageHeight(), docBackPaint); + + if (buttonState == -1) { + Drawable drawable = currentMessageObject.isOut() ? placeholderDocOutDrawable : placeholderDocInDrawable; + setDrawableBounds(drawable, photoImage.getImageX() + AndroidUtilities.dp(27), photoImage.getImageY() + AndroidUtilities.dp(27)); + drawable.draw(canvas); + } + if (currentMessageObject.isOut()) { + progressView.setColor(0xff81bd72); + } else { + progressView.setColor(0xffadbdcc); + } + } else { + progressView.setColor(0xffffffff); + } + } else { + progressView.setColor(0xffffffff); + } + if (buttonState >= 0 && buttonState < 4) { - Drawable currentButtonDrawable = buttonStatesDrawables[buttonState]; + Drawable currentButtonDrawable = null; + if (currentMessageObject.type == 9 && !imageDrawn) { + currentButtonDrawable = buttonStatesDrawablesDoc[buttonState][currentMessageObject.isOut() ? 1 : 0]; + } else { + currentButtonDrawable = buttonStatesDrawables[buttonState]; + } setDrawableBounds(currentButtonDrawable, buttonX, buttonY); currentButtonDrawable.draw(canvas); } @@ -568,7 +691,20 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD progressView.draw(canvas); } - if (infoLayout != null && (buttonState == 1 || buttonState == 0 || buttonState == 3)) { + if (nameLayout != null) { + canvas.save(); + canvas.translate(photoImage.getImageX() + photoImage.getImageWidth() + AndroidUtilities.dp(10), photoImage.getImageY() + AndroidUtilities.dp(8)); + nameLayout.draw(canvas); + canvas.restore(); + + if (infoLayout != null) { + canvas.save(); + canvas.translate(photoImage.getImageX() + photoImage.getImageWidth() + AndroidUtilities.dp(10), photoImage.getImageY() + AndroidUtilities.dp(30)); + infoLayout.draw(canvas); + canvas.restore(); + } + } else if (infoLayout != null && (buttonState == 1 || buttonState == 0 || buttonState == 3)) { + infoPaint.setColor(0xffffffff); setDrawableBounds(mediaBackgroundDrawable, photoImage.getImageX() + AndroidUtilities.dp(4), photoImage.getImageY() + AndroidUtilities.dp(4), infoWidth + AndroidUtilities.dp(8) + infoOffset, AndroidUtilities.dpf(16.5f)); mediaBackgroundDrawable.draw(canvas); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index 85693349..8d03bfb0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -29,7 +29,7 @@ public class ChatMessageCell extends ChatBaseCell { private int totalVisibleBlocksCount = 0; public ChatMessageCell(Context context) { - super(context, false); + super(context); drawForwardedName = true; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java index 823a5ae1..20213837 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java @@ -405,6 +405,7 @@ public class ChatOrUserCell extends BaseCell { } avatarImage.setImageCoords(avatarLeft, avatarTop, AndroidUtilities.dp(50), AndroidUtilities.dp(50)); + double widthpx = 0; float left = 0; if (LocaleController.isRTL) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index 5f0d48e1..3963b7cd 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -43,7 +43,6 @@ import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; @@ -62,7 +61,6 @@ import org.telegram.messenger.FileLog; import org.telegram.android.MessageObject; import org.telegram.android.PhotoObject; import org.telegram.messenger.ConnectionsManager; -import org.telegram.messenger.FileLoader; import org.telegram.android.MessagesController; import org.telegram.android.NotificationCenter; import org.telegram.messenger.R; @@ -149,7 +147,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private boolean firstLoading = true; private int minDate = 0; - private int progressTag = 0; private boolean first = true; private int unread_to_load = 0; private int first_unread_id = 0; @@ -163,10 +160,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private TLRPC.ChatParticipants info = null; private int onlineCount = -1; - private HashMap progressBarMap = new HashMap(); - private HashMap> loadingFile = new HashMap>(); - private HashMap progressByTag = new HashMap(); - private CharSequence lastPrintString; private long chatEnterTime = 0; @@ -341,10 +334,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not NotificationCenter.getInstance().addObserver(this, NotificationCenter.encryptedChatUpdated); NotificationCenter.getInstance().addObserver(this, NotificationCenter.messagesReadedEncrypted); NotificationCenter.getInstance().addObserver(this, NotificationCenter.removeAllMessagesFromDialog); - NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileUploadProgressChanged); - NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidFailedLoad); - NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidLoaded); - NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileLoadProgressChanged); NotificationCenter.getInstance().addObserver(this, NotificationCenter.audioProgressDidChanged); NotificationCenter.getInstance().addObserver(this, NotificationCenter.audioDidReset); NotificationCenter.getInstance().addObserver(this, NotificationCenter.screenshotTook); @@ -381,10 +370,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not NotificationCenter.getInstance().removeObserver(this, NotificationCenter.encryptedChatUpdated); NotificationCenter.getInstance().removeObserver(this, NotificationCenter.messagesReadedEncrypted); NotificationCenter.getInstance().removeObserver(this, NotificationCenter.removeAllMessagesFromDialog); - NotificationCenter.getInstance().removeObserver(this, NotificationCenter.FileUploadProgressChanged); - NotificationCenter.getInstance().removeObserver(this, NotificationCenter.FileDidFailedLoad); - NotificationCenter.getInstance().removeObserver(this, NotificationCenter.FileDidLoaded); - NotificationCenter.getInstance().removeObserver(this, NotificationCenter.FileLoadProgressChanged); NotificationCenter.getInstance().removeObserver(this, NotificationCenter.contactsDidLoaded); NotificationCenter.getInstance().removeObserver(this, NotificationCenter.audioProgressDidChanged); NotificationCenter.getInstance().removeObserver(this, NotificationCenter.audioDidReset); @@ -715,7 +700,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } emptyView.setPadding(AndroidUtilities.dp(7), AndroidUtilities.dp(1), AndroidUtilities.dp(7), AndroidUtilities.dp(1)); - if (currentUser != null && currentUser.id / 1000 == 333) { + if (currentUser != null && (currentUser.id / 1000 == 333 || currentUser.id % 1000 == 0)) { emptyView.setText(LocaleController.getString("GotAQuestion", R.string.GotAQuestion)); } @@ -1048,22 +1033,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } - private void addToLoadingFile(String path, ProgressBar bar) { - ArrayList arr = loadingFile.get(path); - if (arr == null) { - arr = new ArrayList(); - loadingFile.put(path, arr); - } - arr.add(bar); - } - - private void removeFromloadingFile(String path, ProgressBar bar) { - ArrayList arr = loadingFile.get(path); - if (arr != null) { - arr.remove(bar); - } - } - private void updateOnlineCount() { if (info == null) { return; @@ -1094,7 +1063,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not return -1; } } else { - if (messageObject.type == 7) { + if (messageObject.type == 6) { return -1; } else if (messageObject.type == 10 || messageObject.type == 11) { if (messageObject.messageOwner.id == 0) { @@ -1136,7 +1105,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } else { - if (messageObject.type == 7) { + if (messageObject.type == 6) { return -1; } else if (messageObject.messageOwner.send_state == MessageObject.MESSAGE_SEND_STATE_SEND_ERROR) { if (!(messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty)) { @@ -1775,7 +1744,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not dateMsg.message = LocaleController.formatDateChat(obj.messageOwner.date); dateMsg.id = 0; MessageObject dateObj = new MessageObject(dateMsg, null); - dateObj.contentType = dateObj.type = 10; + dateObj.type = 10; + dateObj.contentType = 7; if (forwardLoad) { messages.add(0, dateObj); } else { @@ -1798,7 +1768,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not dateMsg.message = ""; dateMsg.id = 0; MessageObject dateObj = new MessageObject(dateMsg, null); - dateObj.contentType = dateObj.type = 7; + dateObj.contentType = dateObj.type = 6; boolean dateAdded = true; if (a != messArr.size() - 1) { MessageObject next = messArr.get(a + 1); @@ -2012,9 +1982,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (minDate == 0 || obj.messageOwner.date < minDate) { minDate = obj.messageOwner.date; } - if (obj.messageOwner.attachPath != null && obj.messageOwner.attachPath.length() != 0) { - progressBarMap.put(obj.messageOwner.attachPath, null); - } if (obj.isOut()) { removeUnreadPlane(false); @@ -2042,7 +2009,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not dateMsg.message = LocaleController.formatDateChat(obj.messageOwner.date); dateMsg.id = 0; MessageObject dateObj = new MessageObject(dateMsg, null); - dateObj.contentType = dateObj.type = 10; + dateObj.type = 10; + dateObj.contentType = 7; messages.add(0, dateObj); } if (!obj.isOut() && obj.messageOwner.unread) { @@ -2177,17 +2145,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not obj.messageOwner.id = newMsgId; obj.messageOwner.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; updateVisibleRows(); - if (obj.messageOwner.attachPath != null && obj.messageOwner.attachPath.length() != 0) { - progressBarMap.remove(obj.messageOwner.attachPath); - } } } else if (id == NotificationCenter.messageReceivedByAck) { Integer msgId = (Integer)args[0]; MessageObject obj = messagesDict.get(msgId); if (obj != null) { - if (obj.messageOwner.attachPath != null && obj.messageOwner.attachPath.length() != 0) { - progressBarMap.remove(obj.messageOwner.attachPath); - } obj.messageOwner.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; updateVisibleRows(); } @@ -2197,9 +2159,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (obj != null) { obj.messageOwner.send_state = MessageObject.MESSAGE_SEND_STATE_SEND_ERROR; updateVisibleRows(); - if (obj.messageOwner.attachPath != null && obj.messageOwner.attachPath.length() != 0) { - progressBarMap.remove(obj.messageOwner.attachPath); - } } } else if (id == NotificationCenter.chatInfoDidLoaded) { int chatId = (Integer)args[0]; @@ -2210,40 +2169,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not SendMessagesHelper.getInstance().setCurrentChatInfo(info); } } - } else if (id == NotificationCenter.FileUploadProgressChanged) { - String location = (String)args[0]; - boolean enc = (Boolean)args[2]; - if (enc && currentEncryptedChat == null) { - return; - } else if (!enc && currentEncryptedChat != null) { - return; - } - ProgressBar bar; - if ((bar = progressBarMap.get(location)) != null) { - Float progress = (Float)args[1]; - bar.setProgress((int) (progress * 100)); - } - } else if (id == NotificationCenter.FileDidFailedLoad) { - String location = (String)args[0]; - if (loadingFile.containsKey(location)) { - loadingFile.remove(location); - updateVisibleRows(); - } - } else if (id == NotificationCenter.FileDidLoaded) { - String location = (String)args[0]; - if (loadingFile.containsKey(location)) { - loadingFile.remove(location); - updateVisibleRows(); - } - } else if (id == NotificationCenter.FileLoadProgressChanged) { - String location = (String)args[0]; - ArrayList arr = loadingFile.get(location); - if (arr != null) { - Float progress = (Float)args[1]; - for (ProgressBar bar : arr) { - bar.setProgress((int)(progress * 100)); - } - } } else if (id == NotificationCenter.contactsDidLoaded) { updateContactStatus(); updateSubtitle(); @@ -2368,12 +2293,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not currentUser = user; } if (currentEncryptedChat != null && !(currentEncryptedChat instanceof TLRPC.TL_encryptedChat) - || currentUser.id / 1000 == 333 - || currentUser.id / 1000 == 777 + || currentUser.id / 1000 == 333 || currentUser.id / 1000 == 777 || currentUser instanceof TLRPC.TL_userEmpty || currentUser instanceof TLRPC.TL_userDeleted - || (currentUser.phone != null && currentUser.phone.length() != 0 && - ContactsController.getInstance().contactsDict.get(currentUser.id) != null && - (ContactsController.getInstance().contactsDict.size() != 0 || !ContactsController.getInstance().isLoadingContacts()))) { + || ContactsController.getInstance().isLoadingContacts() + || (currentUser.phone != null && currentUser.phone.length() != 0 && ContactsController.getInstance().contactsDict.get(currentUser.id) != null && (ContactsController.getInstance().contactsDict.size() != 0 || !ContactsController.getInstance().isLoadingContacts()))) { topPanel.setVisibility(View.GONE); } else { topPanel.setVisibility(View.VISIBLE); @@ -2868,7 +2791,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not MediaController.saveFile(fileName, selectedObject.messageOwner.attachPath, getParentActivity(), 1, null); } else if (selectedObject.type == 1) { MediaController.saveFile(fileName, selectedObject.messageOwner.attachPath, getParentActivity(), 0, null); - } else if (selectedObject.type == 8 || selectedObject.type == 9) { + } else if (selectedObject.type == 8) { MediaController.saveFile(fileName, selectedObject.messageOwner.attachPath, getParentActivity(), 2, selectedObject.messageOwner.media.document.file_name); } } else if (option == 5) { @@ -3080,12 +3003,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else if (messageType == 13) { holder.chatBubbleView.setBackgroundResource(R.drawable.chat_incoming_text_states); holder.chatBubbleView.setPadding(AndroidUtilities.dp(15), AndroidUtilities.dp(6), AndroidUtilities.dp(9), 0); - } else if (messageType == 8) { - holder.chatBubbleView.setBackgroundResource(R.drawable.chat_outgoing_text_states); - holder.chatBubbleView.setPadding(AndroidUtilities.dp(9), AndroidUtilities.dp(9), AndroidUtilities.dp(18), 0); - } else if (messageType == 9) { - holder.chatBubbleView.setBackgroundResource(R.drawable.chat_incoming_text_states); - holder.chatBubbleView.setPadding(AndroidUtilities.dp(18), AndroidUtilities.dp(9), AndroidUtilities.dp(9), 0); } } else { if (messageType == 12) { @@ -3102,20 +3019,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not holder.chatBubbleView.setBackgroundResource(R.drawable.msg_in); } holder.chatBubbleView.setPadding(AndroidUtilities.dp(15), AndroidUtilities.dp(6), AndroidUtilities.dp(9), 0); - } else if (messageType == 8) { - if (selected) { - holder.chatBubbleView.setBackgroundResource(R.drawable.msg_out_selected); - } else { - holder.chatBubbleView.setBackgroundResource(R.drawable.msg_out); - } - holder.chatBubbleView.setPadding(AndroidUtilities.dp(9), AndroidUtilities.dp(9), AndroidUtilities.dp(18), 0); - } else if (messageType == 9) { - if (selected) { - holder.chatBubbleView.setBackgroundResource(R.drawable.msg_in_selected); - } else { - holder.chatBubbleView.setBackgroundResource(R.drawable.msg_in); - } - holder.chatBubbleView.setPadding(AndroidUtilities.dp(18), AndroidUtilities.dp(9), AndroidUtilities.dp(9), 0); } } } @@ -3277,28 +3180,20 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not view = new ChatMessageCell(mContext); } if (type == 1) { view = new ChatMediaCell(mContext); - } else if (type == 10) { + } else if (type == 7) { view = li.inflate(R.layout.chat_action_message_layout, viewGroup, false); - } else if (type == 11) { + } else if (type == 8) { view = li.inflate(R.layout.chat_action_change_photo_layout, viewGroup, false); - } else if (type == 4) { + } else if (type == 3) { view = li.inflate(R.layout.chat_outgoing_contact_layout, viewGroup, false); - } else if (type == 5) { + } else if (type == 4) { if (currentChat != null) { view = li.inflate(R.layout.chat_group_incoming_contact_layout, viewGroup, false); } else { view = li.inflate(R.layout.chat_incoming_contact_layout, viewGroup, false); } - } else if (type == 7) { + } else if (type == 6) { view = li.inflate(R.layout.chat_unread_layout, viewGroup, false); - } else if (type == 8) { - view = li.inflate(R.layout.chat_outgoing_document_layout, viewGroup, false); - } else if (type == 9) { - if (currentChat != null) { - view = li.inflate(R.layout.chat_group_incoming_document_layout, viewGroup, false); - } else { - view = li.inflate(R.layout.chat_incoming_document_layout, viewGroup, false); - } } else if (type == 2) { view = new ChatAudioCell(mContext); } @@ -3383,6 +3278,48 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not LocationActivity fragment = new LocationActivity(); fragment.setMessageObject(message); presentFragment(fragment); + } else if (message.type == 9) { + File f = null; + String fileName = message.getFileName(); + if (message.messageOwner.attachPath != null && message.messageOwner.attachPath.length() != 0) { + f = new File(message.messageOwner.attachPath); + } + if (f == null || f != null && !f.exists()) { + f = new File(AndroidUtilities.getCacheDir(), fileName); + } + if (f != null && f.exists()) { + String realMimeType = null; + try { + Intent intent = new Intent(Intent.ACTION_VIEW); + if (message.type == 8 || message.type == 9) { + MimeTypeMap myMime = MimeTypeMap.getSingleton(); + int idx = fileName.lastIndexOf("."); + if (idx != -1) { + String ext = fileName.substring(idx + 1); + realMimeType = myMime.getMimeTypeFromExtension(ext.toLowerCase()); + if (realMimeType != null) { + intent.setDataAndType(Uri.fromFile(f), realMimeType); + } else { + intent.setDataAndType(Uri.fromFile(f), "text/plain"); + } + } else { + intent.setDataAndType(Uri.fromFile(f), "text/plain"); + } + } + if (realMimeType != null) { + try { + getParentActivity().startActivity(intent); + } catch (Exception e) { + intent.setDataAndType(Uri.fromFile(f), "text/plain"); + getParentActivity().startActivity(intent); + } + } else { + getParentActivity().startActivity(intent); + } + } catch (Exception e) { + alertUserOpenError(message); + } + } } } }; @@ -3414,11 +3351,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (!endReached && messages.size() != 0) { offset = 0; if (i == 0) { - return 6; + return 5; } } if (!unread_end_reached && i == (messages.size() + 1 - offset)) { - return 6; + return 5; } MessageObject message = messages.get(messages.size() - i - offset); return message.contentType; @@ -3426,7 +3363,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public int getViewTypeCount() { - return 12; + return 9; } @Override @@ -3453,8 +3390,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public BackupImageView photoImage; public ImageView halfCheckImage; public ImageView checkImage; - public TextView actionAttachButton; - public TextView videoTimeText; public MessageObject message; public TextView phoneTextView; public BackupImageView contactAvatar; @@ -3463,14 +3398,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public View addContactView; public View chatBubbleView; - public ProgressBar actionProgress; - public View actionView; - public ImageView actionCancelButton; - - private PhotoObject photoObjectToSet = null; - private File photoFile = null; - private String photoFilter = null; - public void update() { TLRPC.User fromUser = MessagesController.getInstance().getUser(message.messageOwner.from_id); @@ -3556,51 +3483,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not contactAvatar.setImageResource(Utilities.getUserAvatarForId(message.messageOwner.media.user_id)); addContactView.setVisibility(View.GONE); } - } else if (type == 7) { + } else if (type == 6) { messageTextView.setTextSize(16); messageTextView.setText(LocaleController.formatPluralString("NewMessages", unread_to_load)); - } else if (type == 8 || type == 9) { - TLRPC.Document document = message.messageOwner.media.document; - if (document instanceof TLRPC.TL_document || document instanceof TLRPC.TL_documentEncrypted) { - nameTextView.setText(message.messageOwner.media.document.file_name); - - String fileName = message.getFileName(); - int idx = fileName.lastIndexOf("."); - String ext = null; - if (idx != -1) { - ext = fileName.substring(idx + 1); - } - if (ext == null || ext.length() == 0) { - ext = message.messageOwner.media.document.mime_type; - } - ext = ext.toUpperCase(); - if (document.size < 1024) { - phoneTextView.setText(String.format("%d B %s", document.size, ext)); - } else if (document.size < 1024 * 1024) { - phoneTextView.setText(String.format("%.1f KB %s", document.size / 1024.0f, ext)); - } else { - phoneTextView.setText(String.format("%.1f MB %s", document.size / 1024.0f / 1024.0f, ext)); - } - if (document.thumb instanceof TLRPC.TL_photoSize) { - contactAvatar.setImage(document.thumb.location, "50_50", type == 8 ? R.drawable.doc_green : R.drawable.doc_blue); - } else if (document.thumb instanceof TLRPC.TL_photoCachedSize) { - contactAvatar.setImage(document.thumb.location, "50_50", type == 8 ? R.drawable.doc_green : R.drawable.doc_blue); - } else { - if (type == 8) { - contactAvatar.setImageResource(R.drawable.doc_green); - } else { - contactAvatar.setImageResource(R.drawable.doc_blue); - } - } - } else { - nameTextView.setText("Error"); - phoneTextView.setText("Error"); - if (type == 8) { - contactAvatar.setImageResource(R.drawable.doc_green); - } else { - contactAvatar.setImageResource(R.drawable.doc_blue); - } - } } if (message.isFromMe()) { @@ -3609,37 +3494,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not checkImage.setVisibility(View.INVISIBLE); halfCheckImage.setImageResource(R.drawable.msg_clock); halfCheckImage.setVisibility(View.VISIBLE); - if (actionView != null) { - if (actionView != null) { - actionView.setVisibility(View.VISIBLE); - } - Float progress = null; - if (message.messageOwner.attachPath != null && message.messageOwner.attachPath.length() != 0) { - progress = FileLoader.getInstance().getFileProgress(message.messageOwner.attachPath); - progressByTag.put((Integer)actionProgress.getTag(), message.messageOwner.attachPath); - progressBarMap.put(message.messageOwner.attachPath, actionProgress); - } - if (progress != null) { - actionProgress.setProgress((int)(progress * 100)); - } else { - actionProgress.setProgress(0); - } - } - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.GONE); - } } else if (message.messageOwner.send_state == MessageObject.MESSAGE_SEND_STATE_SEND_ERROR) { halfCheckImage.setVisibility(View.VISIBLE); halfCheckImage.setImageResource(R.drawable.msg_warning); if (checkImage != null) { checkImage.setVisibility(View.INVISIBLE); } - if (actionView != null) { - actionView.setVisibility(View.GONE); - } - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.GONE); - } } else if (message.messageOwner.send_state == MessageObject.MESSAGE_SEND_STATE_SENT) { if (!message.messageOwner.unread) { halfCheckImage.setVisibility(View.VISIBLE); @@ -3650,108 +3510,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not checkImage.setVisibility(View.INVISIBLE); halfCheckImage.setImageResource(R.drawable.msg_check); } - if (actionView != null) { - actionView.setVisibility(View.GONE); - } - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.VISIBLE); - } } } } - if (message.type == 8 || message.type == 9) { - Integer tag = (Integer)actionProgress.getTag(); - String file = progressByTag.get(tag); - if (file != null) { - removeFromloadingFile(file, actionProgress); - } - if (message.messageOwner.send_state != MessageObject.MESSAGE_SEND_STATE_SENDING && message.messageOwner.send_state != MessageObject.MESSAGE_SEND_STATE_SEND_ERROR) { - if (file != null) { - progressBarMap.remove(file); - } - String fileName = message.getFileName(); - boolean load = false; - if (message.type != 2 && message.type != 3 && message.messageOwner.attachPath != null && message.messageOwner.attachPath.length() != 0) { - File f = new File(message.messageOwner.attachPath); - if (f.exists()) { - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.VISIBLE); - if (message.type == 8 || message.type == 9) { - actionAttachButton.setText(LocaleController.getString("Open", R.string.Open)); - } - } - if (actionView != null) { - actionView.setVisibility(View.GONE); - } - } else { - load = true; - } - } - if (load && message.messageOwner.attachPath != null && message.messageOwner.attachPath.length() != 0 || !load && (message.messageOwner.attachPath == null || message.messageOwner.attachPath.length() == 0)) { - File cacheFile = null; - if ((cacheFile = new File(AndroidUtilities.getCacheDir(), fileName)).exists()) { - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.VISIBLE); - if (message.type == 8 || message.type == 9) { - actionAttachButton.setText(LocaleController.getString("Open", R.string.Open)); - } - } - if (actionView != null) { - actionView.setVisibility(View.GONE); - } - load = false; - } else { - load = true; - } - } - if (load) { - Float progress = FileLoader.getInstance().getFileProgress(fileName); - if (loadingFile.containsKey(fileName) || progress != null) { - if (progress != null) { - actionProgress.setProgress((int)(progress * 100)); - } else { - actionProgress.setProgress(0); - } - progressByTag.put((Integer)actionProgress.getTag(), fileName); - addToLoadingFile(fileName, actionProgress); - if (actionView != null) { - actionView.setVisibility(View.VISIBLE); - } - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.GONE); - } - } else { - if (actionView != null) { - actionView.setVisibility(View.GONE); - } - if (actionAttachButton != null) { - actionAttachButton.setVisibility(View.VISIBLE); - if (message.type == 8 || message.type == 9) { - actionAttachButton.setText(LocaleController.getString("DOWNLOAD", R.string.DOWNLOAD)); - } - } - } - } - } - if (message.type == 8 || message.type == 9) { - int width; - if (currentChat != null && type != 8) { - if (actionView.getVisibility() == View.VISIBLE) { - width = AndroidUtilities.displaySize.x - AndroidUtilities.dp(290); - } else { - width = AndroidUtilities.displaySize.x - AndroidUtilities.dp(270); - } - } else { - if (actionView.getVisibility() == View.VISIBLE) { - width = AndroidUtilities.displaySize.x - AndroidUtilities.dp(240); - } else { - width = AndroidUtilities.displaySize.x - AndroidUtilities.dp(220); - } - } - nameTextView.setMaxWidth(width); - phoneTextView.setMaxWidth(width); - } - } } public ChatListRowHolderEx(View view, int type) { @@ -3762,12 +3523,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not photoImage = (BackupImageView)view.findViewById(R.id.chat_photo_image); halfCheckImage = (ImageView)view.findViewById(R.id.chat_row_halfcheck); checkImage = (ImageView)view.findViewById(R.id.chat_row_check); - actionAttachButton = (TextView)view.findViewById(R.id.chat_view_action_button); messageTextView = (TextView)view.findViewById(R.id.chat_message_text); - videoTimeText = (TextView)view.findViewById(R.id.chat_video_time); - actionView = view.findViewById(R.id.chat_view_action_layout); - actionProgress = (ProgressBar)view.findViewById(R.id.chat_view_action_progress); - actionCancelButton = (ImageView)view.findViewById(R.id.chat_view_action_cancel_button); phoneTextView = (TextView)view.findViewById(R.id.phone_text_view); contactAvatar = (BackupImageView)view.findViewById(R.id.contact_avatar); contactView = view.findViewById(R.id.shared_layout); @@ -3778,21 +3534,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messageTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, MessagesController.getInstance().fontSize); } - if (actionProgress != null) { - actionProgress.setTag(progressTag); - progressTag++; - } - - if (type != 2 && type != 3) { - if (actionView != null) { - if (isCustomTheme) { - actionView.setBackgroundResource(R.drawable.system_black); - } else { - actionView.setBackgroundResource(R.drawable.system_blue); - } - } - } - if (messageLayoutAction != null) { if (isCustomTheme) { messageLayoutAction.setBackgroundResource(R.drawable.system_black); @@ -3829,9 +3570,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not contactView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - if (message.type == 8 || message.type == 9) { - processOnClick(view); - } else if (message.type == 12 || message.type == 13) { + if (message.type == 12 || message.type == 13) { if (actionBarLayer.isActionModeShowed()) { processRowSelect(view); return; @@ -3903,15 +3642,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not }); } - if (actionAttachButton != null) { - actionAttachButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - processOnClick(view); - } - }); - } - if (avatarImageView != null) { avatarImageView.setOnClickListener(new View.OnClickListener() { @Override @@ -3929,33 +3659,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not }); } - if (actionCancelButton != null) { - actionCancelButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (message != null) { - Integer tag = (Integer)actionProgress.getTag(); - if (message.messageOwner.send_state != 0) { - SendMessagesHelper.getInstance().cancelSendingMessage(message); - String file = progressByTag.get(tag); - if (file != null) { - progressBarMap.remove(file); - } - } else if (message.type == 8 || message.type == 9) { - String file = progressByTag.get(tag); - if (file != null) { - loadingFile.remove(file); - if (message.type == 8 || message.type == 9) { - FileLoader.getInstance().cancelLoadFile(message.messageOwner.media.document); - } - updateVisibleRows(); - } - } - } - } - }); - } - if (photoImage != null) { photoImage.setOnClickListener(new View.OnClickListener() { @Override @@ -3983,63 +3686,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (message.type == 11) { PhotoViewer.getInstance().setParentActivity(getParentActivity()); PhotoViewer.getInstance().openPhoto(message, ChatActivity.this); - } else if (message.type == 8 || message.type == 9) { - File f = null; - String fileName = message.getFileName(); - if (message.messageOwner.attachPath != null && message.messageOwner.attachPath.length() != 0) { - f = new File(message.messageOwner.attachPath); - } - if (f == null || f != null && !f.exists()) { - f = new File(AndroidUtilities.getCacheDir(), fileName); - } - if (f != null && f.exists()) { - String realMimeType = null; - try { - Intent intent = new Intent(Intent.ACTION_VIEW); - if (message.type == 8 || message.type == 9) { - MimeTypeMap myMime = MimeTypeMap.getSingleton(); - int idx = fileName.lastIndexOf("."); - if (idx != -1) { - String ext = fileName.substring(idx + 1); - realMimeType = myMime.getMimeTypeFromExtension(ext.toLowerCase()); - if (realMimeType != null) { - intent.setDataAndType(Uri.fromFile(f), realMimeType); - } else { - intent.setDataAndType(Uri.fromFile(f), "text/plain"); - } - } else { - intent.setDataAndType(Uri.fromFile(f), "text/plain"); - } - } - if (realMimeType != null) { - try { - getParentActivity().startActivity(intent); - } catch (Exception e) { - intent.setDataAndType(Uri.fromFile(f), "text/plain"); - getParentActivity().startActivity(intent); - } - } else { - getParentActivity().startActivity(intent); - } - } catch (Exception e) { - alertUserOpenError(message); - } - } else { - if (message.messageOwner.send_state != MessageObject.MESSAGE_SEND_STATE_SEND_ERROR && message.messageOwner.send_state != MessageObject.MESSAGE_SEND_STATE_SENDING || !message.isOut()) { - if (!loadingFile.containsKey(fileName)) { - progressByTag.put((Integer)actionProgress.getTag(), fileName); - addToLoadingFile(fileName, actionProgress); - if (message.type == 8 || message.type == 9) { - FileLoader.getInstance().loadFile(message.messageOwner.media.document); - } - updateVisibleRows(); - } - } else { - if (message.messageOwner.send_state == MessageObject.MESSAGE_SEND_STATE_SEND_ERROR) { - createMenu(view, false); - } - } - } } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index aa793fd7..7778eef8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -26,7 +26,6 @@ import org.telegram.android.SendMessagesHelper; import org.telegram.messenger.ConnectionsManager; import org.telegram.messenger.FileLog; import org.telegram.android.LocaleController; -import org.telegram.android.MessagesController; import org.telegram.android.NotificationCenter; import org.telegram.messenger.R; import org.telegram.messenger.TLRPC; @@ -362,23 +361,14 @@ public class LaunchActivity extends ActionBarActivity implements NotificationCen int userId = intent.getIntExtra("userId", 0); int encId = intent.getIntExtra("encId", 0); if (chatId != 0) { - TLRPC.Chat chat = MessagesController.getInstance().getChat(chatId); - if (chat != null) { - NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); - push_chat_id = chatId; - } + NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); + push_chat_id = chatId; } else if (userId != 0) { - TLRPC.User user = MessagesController.getInstance().getUser(userId); - if (user != null) { - NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); - push_user_id = userId; - } + NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); + push_user_id = userId; } else if (encId != 0) { - TLRPC.EncryptedChat chat = MessagesController.getInstance().getEncryptedChat(encId); - if (chat != null) { - NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); - push_enc_id = encId; - } + NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); + push_enc_id = encId; } else { showDialogsList = true; } @@ -425,6 +415,9 @@ public class LaunchActivity extends ActionBarActivity implements NotificationCen fragment.setDelegate(this); presentFragment(fragment, false, true); pushOpened = true; + if (PhotoViewer.getInstance().isVisible()) { + PhotoViewer.getInstance().closePhoto(true); + } } if (open_settings != 0) { presentFragment(new SettingsActivity(), false, true); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index ada07e37..c09aa674 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -489,7 +489,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat windowLayoutParams.format = PixelFormat.TRANSLUCENT; windowLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; windowLayoutParams.gravity = Gravity.TOP; - windowLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION; + windowLayoutParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; windowLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; actionBar = new ActionBar(activity); @@ -1212,6 +1212,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat int prevIndex = currentIndex; currentIndex = index; currentFileName = getFileName(index, null); + boolean sameImage = false; if (!imagesArr.isEmpty()) { deleteButton.setVisibility(View.VISIBLE); @@ -1240,7 +1241,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } else { deleteButton.setVisibility(View.GONE); } + TLRPC.FileLocation old = currentFileLocation; currentFileLocation = imagesArrLocations.get(index); + if (old != null && currentFileLocation != null && old.local_id == currentFileLocation.local_id && old.volume_id == currentFileLocation.volume_id) { + sameImage = true; + } actionBarLayer.setTitle(LocaleController.formatString("Of", R.string.Of, currentIndex + 1, imagesArrLocations.size())); } else if (!imagesArrLocals.isEmpty()) { currentPathObject = imagesArrLocals.get(index).path; @@ -1270,33 +1275,35 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } - draggingDown = false; - translationX = 0; - translationY = 0; - scale = 1; - animateToX = 0; - animateToY = 0; - animateToScale = 1; - animationDuration = 0; - animationStartTime = 0; + if (!sameImage) { + draggingDown = false; + translationX = 0; + translationY = 0; + scale = 1; + animateToX = 0; + animateToY = 0; + animateToScale = 1; + animationDuration = 0; + animationStartTime = 0; - pinchStartDistance = 0; - pinchStartScale = 1; - pinchCenterX = 0; - pinchCenterY = 0; - pinchStartX = 0; - pinchStartY = 0; - moveStartX = 0; - moveStartY = 0; - zooming = false; - moving = false; - doubleTap = false; - invalidCoords = false; - canDragDown = true; - changingPage = false; - switchImageAfterAnimation = 0; - canZoom = currentFileName == null || !currentFileName.endsWith("mp4"); - updateMinMax(scale); + pinchStartDistance = 0; + pinchStartScale = 1; + pinchCenterX = 0; + pinchCenterY = 0; + pinchStartX = 0; + pinchStartY = 0; + moveStartX = 0; + moveStartY = 0; + zooming = false; + moving = false; + doubleTap = false; + invalidCoords = false; + canDragDown = true; + changingPage = false; + switchImageAfterAnimation = 0; + canZoom = currentFileName == null || !currentFileName.endsWith("mp4"); + updateMinMax(scale); + } if (prevIndex == -1) { setIndexToImage(centerImage, currentIndex); @@ -1915,7 +1922,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat draggingDown = true; moving = false; dragY = ev.getY(); - if (isActionBarVisible) { + if (isActionBarVisible && canShowBottom) { toggleActionBar(false, true); } return true; @@ -2334,7 +2341,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public boolean onSingleTapConfirmed(MotionEvent e) { - toggleActionBar(!isActionBarVisible, true); + if (canShowBottom) { + toggleActionBar(!isActionBarVisible, true); + } else { + checkImageView.callOnClick(); + } return true; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java index fc454b83..7347e7b4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java @@ -177,18 +177,22 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { - if (i == 0) { - Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - File image = Utilities.generatePicturePath(); - if (image != null) { - takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image)); - currentPicturePath = image.getAbsolutePath(); + try { + if (i == 0) { + Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + File image = Utilities.generatePicturePath(); + if (image != null) { + takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image)); + currentPicturePath = image.getAbsolutePath(); + } + getParentActivity().startActivityForResult(takePictureIntent, 10); + } else if (i == 1) { + Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); + photoPickerIntent.setType("image/*"); + getParentActivity().startActivityForResult(photoPickerIntent, 11); } - getParentActivity().startActivityForResult(takePictureIntent, 10); - } else if (i == 1) { - Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); - photoPickerIntent.setType("image/*"); - getParentActivity().startActivityForResult(photoPickerIntent, 11); + } catch (Exception e) { + FileLog.e("tmessages", e); } } }); @@ -521,7 +525,6 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica selection.setVisibility(View.INVISIBLE); } } - } else if (type == 1) { if (view == null) { LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarActivity.java index 40b72321..8aaee775 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarActivity.java @@ -744,19 +744,11 @@ public class ActionBarActivity extends Activity { } containerView.invalidate(); if (intent != null) { - try { - ActionBarActivity.super.startActivityForResult(intent, requestCode); - } catch (Exception e) { - FileLog.e("tmessages", e); - } + super.startActivityForResult(intent, requestCode); } } else { if (intent != null) { - try { - super.startActivityForResult(intent, requestCode); - } catch (Exception e) { - FileLog.e("tmessages", e); - } + super.startActivityForResult(intent, requestCode); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/HorizontalListView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/HorizontalListView.java index d9cad047..277ea468 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/HorizontalListView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/HorizontalListView.java @@ -43,7 +43,6 @@ public class HorizontalListView extends AdapterView { private OnItemLongClickListener mOnItemLongClicked; private boolean mDataChanged = false; - public HorizontalListView(Context context, AttributeSet attrs) { super(context, attrs); initView(); @@ -66,7 +65,7 @@ public class HorizontalListView extends AdapterView { } @Override - public void setOnItemClickListener(AdapterView.OnItemClickListener listener){ + public void setOnItemClickListener(AdapterView.OnItemClickListener listener) { mOnItemClicked = listener; } @@ -76,10 +75,9 @@ public class HorizontalListView extends AdapterView { } private DataSetObserver mDataObserver = new DataSetObserver() { - @Override public void onChanged() { - synchronized(HorizontalListView.this){ + synchronized (HorizontalListView.this) { mDataChanged = true; } invalidate(); @@ -92,7 +90,6 @@ public class HorizontalListView extends AdapterView { invalidate(); requestLayout(); } - }; @Override @@ -113,7 +110,7 @@ public class HorizontalListView extends AdapterView { @Override public void setAdapter(ListAdapter adapter) { - if(mAdapter != null && mDataObserver != null) { + if (mAdapter != null && mDataObserver != null) { mAdapter.unregisterDataSetObserver(mDataObserver); } mAdapter = adapter; @@ -121,35 +118,33 @@ public class HorizontalListView extends AdapterView { reset(); } - private synchronized void reset(){ + private synchronized void reset() { initView(); + mRemovedViewQueue.clear(); removeAllViewsInLayout(); requestLayout(); } private void addAndMeasureChild(final View child, int viewPos) { LayoutParams params = child.getLayoutParams(); - if(params == null) { + if (params == null) { params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); } - addViewInLayout(child, viewPos, params, true); - child.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), - MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.AT_MOST)); + child.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.AT_MOST)); } - @SuppressLint("DrawAllocation") @Override protected synchronized void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - if(mAdapter == null){ + if (mAdapter == null) { return; } - if(mDataChanged){ + if (mDataChanged) { int oldCurrentX = mCurrentX; initView(); removeAllViewsInLayout(); @@ -157,15 +152,15 @@ public class HorizontalListView extends AdapterView { mDataChanged = false; } - if(mScroller.computeScrollOffset()){ + if (mScroller.computeScrollOffset()) { mNextX = mScroller.getCurrX(); } - if(mNextX <= 0){ + if (mNextX <= 0) { mNextX = 0; mScroller.forceFinished(true); } - if(mNextX >= mMaxX) { + if (mNextX >= mMaxX) { mNextX = mMaxX; mScroller.forceFinished(true); } @@ -178,35 +173,34 @@ public class HorizontalListView extends AdapterView { mCurrentX = mNextX; - if(!mScroller.isFinished()){ - post(new Runnable(){ + if (!mScroller.isFinished()) { + post(new Runnable() { @Override public void run() { requestLayout(); } }); - } } private void fillList(final int dx) { int edge = 0; - View child = getChildAt(getChildCount()-1); - if(child != null) { + View child = getChildAt(getChildCount() - 1); + if (child != null) { edge = child.getRight(); } fillListRight(edge, dx); edge = 0; child = getChildAt(0); - if(child != null) { + if (child != null) { edge = child.getLeft(); } fillListLeft(edge, dx); } private void fillListRight(int rightEdge, final int dx) { - while(rightEdge + dx < getWidth() && mRightViewIndex < mAdapter.getCount()) { + while (rightEdge + dx < getWidth() && mRightViewIndex < mAdapter.getCount()) { View v = null; int type = mAdapter.getItemViewType(mRightViewIndex); @@ -219,8 +213,9 @@ public class HorizontalListView extends AdapterView { addAndMeasureChild(child, -1); rightEdge += child.getMeasuredWidth(); + child.invalidate(); - if(mRightViewIndex == mAdapter.getCount() - 1) { + if (mRightViewIndex == mAdapter.getCount() - 1) { mMaxX = mCurrentX + rightEdge - getWidth() + getPaddingLeft(); } @@ -233,7 +228,7 @@ public class HorizontalListView extends AdapterView { } private void fillListLeft(int leftEdge, final int dx) { - while(leftEdge + dx > 0 && mLeftViewIndex >= 0) { + while (leftEdge + dx > 0 && mLeftViewIndex >= 0) { View v = null; int type = mAdapter.getItemViewType(mLeftViewIndex); LinkedList list = mRemovedViewQueue.get(type); @@ -252,44 +247,43 @@ public class HorizontalListView extends AdapterView { private void removeNonVisibleItems(final int dx) { View child = getChildAt(0); - while(child != null && child.getRight() + dx <= 0) { + while (child != null && child.getRight() + dx <= 0) { mDisplayOffset += child.getMeasuredWidth(); - int type = (Integer)child.getTag(R.string.CacheTag); + int type = (Integer) child.getTag(R.string.CacheTag); LinkedList list = mRemovedViewQueue.get(type); if (list == null) { list = new LinkedList(); mRemovedViewQueue.put(type, list); } - list.offer(child); + list.add(child); removeViewInLayout(child); mLeftViewIndex++; child = getChildAt(0); - } child = getChildAt(getChildCount() - 1); - while(child != null && child.getLeft() + dx >= getWidth()) { - int type = (Integer)child.getTag(R.string.CacheTag); + while (child != null && child.getLeft() + dx >= getWidth()) { + int type = (Integer) child.getTag(R.string.CacheTag); LinkedList list = mRemovedViewQueue.get(type); if (list == null) { list = new LinkedList(); mRemovedViewQueue.put(type, list); } - list.offer(child); + list.add(child); removeViewInLayout(child); mRightViewIndex--; - child = getChildAt(getChildCount()-1); + child = getChildAt(getChildCount() - 1); } } private void positionItems(final int dx) { - if(getChildCount() > 0){ + if (getChildCount() > 0) { mDisplayOffset += dx; int left = mDisplayOffset; - for(int i=0;i { return super.onInterceptTouchEvent(ev); } - protected boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { - synchronized(HorizontalListView.this){ - mScroller.fling(mNextX, 0, (int)-velocityX, 0, 0, mMaxX, 0, 0); + protected boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { + synchronized (HorizontalListView.this) { + mScroller.fling(mNextX, 0, (int) -velocityX, 0, 0, mMaxX, 0, 0); } requestLayout(); @@ -339,37 +332,32 @@ public class HorizontalListView extends AdapterView { } @Override - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { + public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return HorizontalListView.this.onFling(e1, e2, velocityX, velocityY); } @Override - public boolean onScroll(MotionEvent e1, MotionEvent e2, - float distanceX, float distanceY) { - - synchronized(HorizontalListView.this){ - mNextX += (int)distanceX; + public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { + synchronized (HorizontalListView.this) { + mNextX += (int) distanceX; } requestLayout(); - return true; } @Override public boolean onSingleTapUp(MotionEvent e) { - for(int i=0;i { } break; } - } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/RoundProgressView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/RoundProgressView.java index df1ddaa9..551b4944 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/RoundProgressView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/RoundProgressView.java @@ -24,10 +24,14 @@ public class RoundProgressView { paint = new Paint(); paint.setColor(0xffffffff); paint.setStyle(Paint.Style.STROKE); - paint.setStrokeWidth(AndroidUtilities.dp(1)); + paint.setStrokeWidth(AndroidUtilities.dp(2)); paint.setAntiAlias(true); } + public void setColor(int color) { + paint.setColor(color); + } + public void setProgress(float progress) { currentProgress = progress; if (currentProgress < 0) { diff --git a/TMessagesProj/src/main/res/drawable-hdpi/doc_blue.png b/TMessagesProj/src/main/res/drawable-hdpi/doc_blue.png old mode 100755 new mode 100644 index c9cd69113e1a8a0fd835dae48986984a582163c7..1c1b3cdfeef741e670ddf826fd0bdca359fe7a2c GIT binary patch literal 2609 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 ATmS$7 delta 809 zcmV+^1J?Yp6y*kxNq+}PL_t(|+U%K8Zks?5hH=#cxF@KOfTcdC@Yc6DH-H;BCkQKiz-(QGvx4=f7{I1($3f@2KdzcV{C3yag~6ujs0A$aFw z7BCCwIX?Eiz|-@uwx=$^HelCa5q>tK0{aQJ`*!u^c!?g+;D0Y*4|u#}-$(e}3rxu7 z(gfsSC4)ZVtXFtUy;OpT{89vHkSz<980-`NjUi;raYfGCf{1Kt0SSY@6+qtxh^W9~ zJjaYX5D`r!Ai-oS!^gz^8H3l^XaTk+=OhhY7*0S7_=Kgwlw>2t(q&lVoj|G^y#)|> zbCZJr&+9c&QGAEVLB+o_~7o(YFUm1|JiEutgo(f$WpX&!oh7BRw8x9d())uhs@0scSlnc0WypLx$V z`>h2C@M#0Q!Zl%qH|qxBd03@B(`dxt3$mcghEz)T1>(99;8mN@aTQ>)42Rb@URmI& z_xQS5Nq@D(Wna8#`(#c7lX#UvVlCus9(p&}CrM%D4DTesQU_uom-FppN{X3O2-mLg zUF$&J0zPqoe=CGt;Jeg;ydj?Jc4R4QBT6Bas==E%fM4-h6>coG5d~WlkuP{x577SP zRwy#I?c`Y@6udX6fPXWGPY+zSlV^p{2fV9*Rew!?zO-y7GXcKvwGr= zu#vwT3SN&cPp7{M|4UI=;kc<8)dPw=Y?Ah{_l}#I(FHuRMLG1tE$;&83~#^-CDsNy zww7!(od7KL6vn)?*rWZ$Hlr>ZP3{5n$S-9ra}=DvGAhP^@03PyKd@#QCm^#P3nB*_ niz4|={VZS>FbkM;yb3S?)Rs&>d;T<+00000NkvXXu0mjfdw+T| diff --git a/TMessagesProj/src/main/res/drawable-hdpi/doc_green.png b/TMessagesProj/src/main/res/drawable-hdpi/doc_green.png old mode 100755 new mode 100644 index 890cc33fb806db1446902d62e2b14edc7b46d5a9..68b72142579e6395dbd3f62fc2f2269f82958f12 GIT binary patch literal 2506 zcmaJ@dpwkB8=e`V6`vGx=rG@qGjl{U8RIaphf<=XooUm4e|&xK@AtmXb3ec9y6*eA@9U2@n;hh=qh+E6 z0)cdVeTWq0icr1FHI(0Q$b6=9F&2AK#UcD?aUxv^fZSPp1_1Tt(qjM$KxZZG>;_yw zAT<~#lq#kM2H=={t^-|#agcBYN;U}OLXZgP%veASWdJc89v(JzxeW&8u<)>O$3R4& zz!P9|e3FGgNODjpGdY%tWx)upP!|bKDZmB9bf|5N08a0mqS>jP6} z6SAUl6e8(sE@gy=vBhEm4h~ODOms*@JMe`ua3mIsRcWA5_DY1kD2XSgOYC_fvn2&0 zAYuwR0x^frgQ^ti41T;A4^vk9_Z7H;Z?Zhm*ET5|2A9wUaHIo5b)_X>VBr6Ua=G8o zA~6N{r{4c5EDB8$0B{N*;>Qb_%E3jOsZt4WoFS|-<2Mngw z|4SB8T`zcb@m9TJ;>ut{dzyh&|Bm@%#ihvNlBBzj7w11)SkBKZzP)v2W>Pr$DQ`uF z$AQB8CH^uiKV8};gm#nurVT#eU788tGH^*&TU<$@PUQ6G=OLx{d{&Vm0g&GFM$rNt zvUUpCMZKkO;QDJMc~OgIi|8zGF`S`jsx>OKp2#oo4pc?ywm?eF27*AE>0Gg?NVZ%X z^g%5q>*p2etqSUsVyY>k^hTmVENNJaW-y)E`M6Ro5fWl#N;8{<*W;`rFWfk=?H1{it1KCf64&Qd=$0p!Wt;oP_wN z@3blS6QtRGv_@?v2_|b#Hbdx24Ce-)V_&96<(os$ipmQqJFgtP|17e;NTa2OaZQR& zk1<-3NlE-i4zrA2hpRkh_I% z7<&?ZV!Q3YczV9V?Yc+B9Ixe|ccq}st-77{L7q}!L1;TQdm6$sjEz?q(R9xyLS!A= zi}SZny^&OjOUUMy0^2&D1=;Yc)w`vB^IotQLjl4}@*`Wi zo>%rw7Jx%ioAxU^+U3q;R}Oa%Ilq)PB_w_(qi|wF6VzOq&V51!656Lf1H)wni?&6cxrO&YEZ9q zoqU>Zdix+Y3e{s%g|}Aso8S6jA+jj-01E?AM_- zFZ|YDO4}ni%b@IlBmbP_#8V3JjLOoFU3M2RLzo8zI`2jq6YFT@S`DV@88&tP-FYqM zCGR)aX7wjmjvLqZ29(!x4bSy9gxa*_@gufgJD#g^q~iI{Rxfh8&3n|>X!S{J|43c^ z$NFatQ|hj|7k@pyRh_Ll-%B?z?Fs9lx@W{CrDSw5NYQ;XYb>TKwcb8u27WO{en(#T zABwt_Y={tO{Hc1>c<&3?AsoS5?d=a?wzBmnhbK%<>F4BUVS6`pB-Y4}9lCR7hGPt8 z94}x>*Q9^6f4b&KZ46|~J~Z);u=Ggz=1W&Xcje{e*}E{{qj$TWeyr^#W;gRekI$8A zh9#GhFKa~R zr#3V1-N@=!v+aMQbmbI|z$K|ur$z@dkXQ{@1^KoU_+cLGgLR%$S%C-vAun*g% zY5~9hl-+3lVU8VNo>4>{uLHlXT-IH_)0zc+5ad_92s@GD@-Q|x=S1HD;LTcJ!{);} zxwiXKxYHbDk3P01%)aW{Ks`Ci8DTq-%d%r^PS?BIq*1nGQ}F8|LqqG+3u`;<-p`ni z!(_GhgJ^X-FbR<#p87R*;@20xcklRA!kP1SzlnL88ZF!IxzRe@b~Gm0is02K>ok60 z3OU+M!rV)yTA>Cj-j*~px%G`O?&K@lpLwL!jvXytxHcSG-Pg!PTAvdmdE_4Kg;<6rkPw9$`+ZO8jfWd&)bkv%(h!H#Oo<%JE1uK#EkUF^8_ zREy5SP5LXVb2patH|b+tKToY(p*93AoPSN1|27z|=Tx&1U<(;gZa?_itxja;#dpky z$mVTeLMQR+eClt~u!MC?g*bZ68;nP#vFZK7!Oh5`&&!NJEdep7ZkZoDtNOe0^$H@M I@u2Pb3wY)vlK=n! delta 815 zcmV+~1JL}+6YB<$Nq-GVL_t(|+U%L_ahpI8hEc`^C>2B{pbB!N0m~gg1(qlOW0LHF~#Jz&6Jz<-|bc*(w3_}vRk$mY@n zWMBn@KH{vGcuc)ifQal;1Q?Jl3zZ1$J^qa#WbAQC&f9{BbZP-HgTE6%Uk8XN!6H1z zj(ZTHrVut!1t2RG#a(q3OfDp4y z6}<7x9?W!)zkk3|A)Q(;>_~PB#}E)AoCVr3_$M?)&NuPBhY(p-TvHRT4l01dYXLs4 z`EAzc=Dh^q>~Z*rxIbm^CL1ll*5sVH#tXvQG5DM;=%OZ-(tUxrZUlJUCUjf{*et{0&5c(L@YH*J z-K?Zq;(xL)UbKBOXMjn(N+GcpayAdW8|;&$uyTfX63|cwA|aRa?PNlVnN$eZuJB#! zK-L02c7T5^gk9jf)Pbxfo~w3b32P$?A(iUEn>m1A@mUpaEVU6iTNBC`ysHOje{v@j znWpXJSs@g>H>iMrGlx$PT(*;Eh0q7QtAJHSe}BGg*iNPbeC}%_-X#nDW}lBFw`*Y| ze?Jtw8C{-Ee-!?gps?I=Q!}auGmsH1HMxl#r?pVWt@P_ tdMG4_9BeG+H}$iCS->n{((zY-0RYvAN%z8RZ3_SZ002ovPDHLkV1nfsd|Utk diff --git a/TMessagesProj/src/main/res/drawable-hdpi/doccancel_b.png.png b/TMessagesProj/src/main/res/drawable-hdpi/doccancel_b.png.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe1295c2dc242eba641fed74014e330703fe2b7 GIT binary patch literal 1401 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+nA0*tB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA){ffi_eM3D1{oGuTzrd=COM+4n&cLd=IHa;5RX-@T zIKQ+g85kdF$}r8qu)}W=NFmTQR{lkqz(`5Vami0E%}vcK@pQ3O0?O#6WTsdd7+V+^ z8k(CJm>U_GSr{5xn3}AbaXW`Gj@aN^~@_SNz6-5h1r`4v=^$^2(Ml%=c3falKi5O{QMkP3JA!^FUc>? z$S+WE4mMTrO-#wx>H$aNFB2k(EBrE(#o*cwzPu+xz(({=SM8mDy7g?t~oFaE!?1I(Yl_=k*f%1ozBSUX|41@S$$O zFJ5JlL)SA}e@Ly9ez#iY_RHCu)_rkSWNFqoSP_0}p+M6&sa+Qrp4vBe8+W_vdk#aB z*mr3=SLpbLet((MqrXir#5UcB#pUGfh0zs0R*D8bEFAZ%n>MFc95*mj__Lw0>Zrj+ z1q+GleTF_h9IQRU_a)TKS^^~0+*$-A)WTTqOZfh)oPG7GwS~myQ!z%q(~nw&w3UA4 yiz;?cUGnvv`m*0WxgVBtV+${!SVv|JmjT0luWx5}Fs|zd6^5R!elF{r5}E+TM&HB$ literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/doccancel_g.png b/TMessagesProj/src/main/res/drawable-hdpi/doccancel_g.png new file mode 100644 index 0000000000000000000000000000000000000000..00716eef04c59c1edc1d1eba1a0ce8871cd4f6f4 GIT binary patch literal 1414 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+nA0*tB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA){ffi_eM3D1{oGuTzrd=COM+4n&cLd=IHa;5RX-@T zIKQ+g85kdF$}r8qu)}W=NFmTQR{lkqz(`5Vami0E%}vcK@pQ3O0?O#6WTsdd7+V+^ z8k(CJm>U_GSr{5xn3}AbaXW`Gj@aN^~@_SNz6-5h1r`4v=^!us1A=_E9aur#FG4?ko^1{SPBTp$S=t+ z&d4uNa1J(A@J&q4%meX3(F5_VOKMSOS!#+~QGTuhIDD-#vDj~5Ldf3`y(#2`nLf}l z`k=&tlvrRwz!V5#!jnFb1J69EdB7Y~1k4&wEgZ`j7#O#Cx;TbZ+VZ*rKOw6diS#yOrVFKA4T{P^hZ zxid$%e~?%gX%@fZ?#(4rmt`KBsM5#MqQIia;mF}6&?JDy{t2;XyN&;6B}|OhSe&2B zxbrxBA?m}AfQw(FW`IgY MPgg&ebxsLQ0M!iPFaQ7m literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/docload_b.png.png b/TMessagesProj/src/main/res/drawable-hdpi/docload_b.png.png new file mode 100644 index 0000000000000000000000000000000000000000..a39c692e4f2ba86469e837dc4989b49ab6526a7c GIT binary patch literal 2577 zcmbVOdo)!09-rIGNmI zkP`y2FigM+Py~2+Qh5@QEq6}GRwAG+_KnEr1sAX@I|j z7v4+CgdzlPY8m9G-pJvpg**x$a9)pgQc__85v1Uvm7++ooT{V&pLnV8eol-7(4SNk zLK^VdsQ@n@G*cpj& z0fgi{nLw%#NW|zlMsBDiT0sL~Pd|qsl6rZ4B^JxSBnnO$PRW(x2)1~fNHiDMCvCaH z7y6GI-_(|KR8k1%3&|zXG9FxyFw8s{&fQ-dnp1?mp?b>%a8bCCpoAAKg2W1UkOsgv zwtNAfink-<2?R%bydx1$A`=K?l7l0~fyr`YksO&Ii8#;kEiBoNL}U_}bRvmGA`o2d z=`0EnbcDAQx+{@n$C}5wi{%Qgmc>?j=d9FO4qXi+EAO_;IWD*hjQ+}y}Z`jA%|F5_|WBLD2&Tz0ZxVh%| zuV$GS!5uia{o4BQ;p^}~Vt8U?@Mx4@h;l_BmeAcnI!D|I=dP4E3HhZXOnY}wa(zrg7j>XKjyaDDbT z)kMBwur2*^Y2;ndjaO+`!0prs5bNE|=#%Akv?mW5A!Cbj7!23=(Jn)_VphvOtgSTR zBrxb>%r2%jQdwnI9u+URV+#y-rVDR-frgsHo2la|oIebzUq={0&#Q#vlEg#NYxPm} zu|%q2P5MW)6DEaEj~|}FHj0_`WFCgMxMZCdN^DlLb~GlJR#CCPBx$-nV3j%Yc*L}3 zb%jOf%^rg({6?yMy~WFP5|2E}KKY2X|M0RXivf+s{E^znhCv2XbxRYlY$v~hk4b8G z->UKSmD;(QgfM5Lu1U&(xO>+iN;SDqdM;4ZPTU@E9_pa|pd8KGzHY$ErgpkD;D)lH zv_+*n=#soF`mJ_tL1btg&^r>mAkW)! z798u|F%ox%ou3PGT(BGNH;wDIY<*Z9EVSetvo;1|EC=4^Ki~4s>PX9-uHp>Klu`%v z#DX}*wX};*A>M4cAF|_g^&RhYuGMNom;9?|pWNqz987V)`%3+St0yw6M$v@O3Ad?4 zxhZGNWMP+#l@V~8o|u*FYeqv6{3Gs_Wd2}{6yA3e8MW${gO@ZYQR-9fdc_)6NoD^Y zET#S&taq+0po?)}z&w_Y-HllZVt;NZya)ZEeU9Bi}6B#oTy&NQxP?kBGc2M)t1F9)w=yioY5~&V5ZN-?m+)|sG42x6q z!L@)`8}Kl(bM1_wIa6`qFhtq!3MLe+%5XjP#u@pE8>;Y5*{b{S9Z zvFHOVJe9otYH3@;k(%6FW@GrL6R%T3bNOY}Ypb&+*JcfxYW24EjvqI>pemE)Ne^ud8yYU()$zHf~`Lu}}-C)})op?90Fe$%Bn28V?#K zOjuTVp4it`NGCg;p7~)ZCRg~XnypbLPgCtR)T1}~U(9yS$Fhd4<0fRcYnDIG?+EXF z`g35ntAQr+P)JQknHE1Xh=nR(7#n50ue^&Q-M5ZDv2KaOb9UkoNpUO9pg$3NUY8y- z*{m)N+N9IDyY8PkmF#fpphbvOx4O^*b<3mj9SUV)Yo2Dsu5@C?=s&;MPaf$!;9mEz zb!W>_&cm2)*BJq`Il-j(tr4~(=%?P0eGT&MK8>neRl@Yc7}e|ZZGkb<&{fG*v!XML z-R@QC=~ryvN`FL-dK=>StF~y^`@OPEG|-u(xAY4a(0{Q(Czih0nL7SnmC*08;7z@GSr@Io%keh7nUz!Gu-dlP#8iLH(LFjUj81vi o3!(3C0`HxTO&wFfsp)ms5mIc#5sQ)Lh`FCMch`+z1!G(MpI4_UnE(I) literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/docload_g.png.png b/TMessagesProj/src/main/res/drawable-hdpi/docload_g.png.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ac99dec040cac1aaca154965679068434c2f6f GIT binary patch literal 2581 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png b/TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png old mode 100755 new mode 100644 index d39e47fe403eccc9880d54a3aaaa605b1d52e647..e757044d7e26914764499d5a53c668008b300bec GIT binary patch literal 1699 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 delta 428 zcmV;d0aO0Z4C(`rNPhv0Nklk24Gb zBxCt>_g0=->-Dt=@C?JM@%jMWBhdaLivV8}zJ=z{H55ZrsDHq`KiDF|7f_B&V>Ojy zPBJf`XW2>b9RQGOIDSXa0+P%Pt;wONw?zVCW)?1)ZlE=7nR4kT*9V;g5H29eFriHX zNa(%q$hztjKx|O(5XzKI?|g4~!16o@yje-kGG#RsEWeNzt&~jy{pRvH`=M|Y!0`?g z+^`}d2i(qw+<(Ew+SsK`XX@j?+SGviJOiVG#aL6Fts*RvCc0rDeFlb^T6n2<;_BkI zM*9Po%v1%%?BuiXwg8#>xYAv$;Qp!qpDqD@Yn|{^!4rK3v~%!%aNxLC<(DaVe#w0x z)vy#hnB`X4^wJgH)@Ui4ODg3Hx}|MLjWj5L3bJG)$t8|H08jhge%`;o^hXcyBftPc W+r?YcVFsB10000c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA){ffi_eM3D1{oGuTzrd=COM+4n&cLd=IHa;5RX-@T zIKQ+g85kdF$}r8qu)}W=NFmTQR{lkqz(`5Vami0E%}vcK@pQ3O0?O#6WTsdd7+V+^ z8k(CJm>U_GSr{5xn3F8=?X6y#j>zP+vl9-pA3bQv8XfIT+GhV$`&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9BiuKo0y!L2jYXG2jW|o)S}F?)D*X({9FZa_*!LRvERUikiQ{%Q^*N3eV}9X zL5Tw?vA~3YDGYHqoSvaV@SoVH`C5@H8}{hUoF>Q zSvWaAK%jAg2xr{l=;iBVo8z=!h_JM_F9`m^6ePgebb+~KhYhCe+bi;tecA*8Atxt~DOwwE$fY^>Zd}jomihTqru}V?Rmw64S--UJT_(Tz zyhB8zaYo|(y<5B#W_BkuvlYaJKJh%j946Ix=6K^0YoUu3f_?{jR);Kn>`{>{{Gw!T zMaWVwm$U5~*vtdim)kJ4x{2`LRz9=RJz`#=T;rmt1}lW@LLYfe{a_cw$x-6j(3>dD z!;pQ6_g&^x?+FfHWD|k~E?m5!@+d_#u#2m}_K-_fr0WzOCN0h#dmMUBY%1Y=^@r0m t{zF=pj=|a*t0VtgK)!hNUPX?HhryM-klU<-f$kWx&Wt~$(69D8tq@w@; literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/doccancel_g.png b/TMessagesProj/src/main/res/drawable-ldpi/doccancel_g.png new file mode 100644 index 0000000000000000000000000000000000000000..608f103c5476943d1ce0dd2623722f7a65f252d5 GIT binary patch literal 1265 zcmbVMZD<>19DmZ3y-7kk73Z+<^wJHBOYS8v*E^auX)f6Urlx6F1CFuFX*+f+Z42_D=% z&;NP;zu*7;W^?_=Jo^sr0|0n3$E7@3JDhjVF7h4v;if^Br*W!?2aRD|lT8E?Wut^( zMw3TS9?9j2mp(^50Jw+MLJ=3U&x?wo1!YGkXlqr12B4?cuFA?N!mxx!R6R!ha_u?= z)pCp)ie#B=HHj+f@ktX6PWBg+$x%fpQ@uxFk1Y}c4PhDD+L&&Mc8uEK70KQ?rYX3g zf=6T2rc=di4kir~!AOt^C`^=rQ8vhi!aUC(fgHm!G{ey>7hriY#EA?8w;qaEGt0wb zUP^D-B2tX1U|bbxx>l^Sf(6(?M{o}@t+E!tris(GDjB!&T z^%(Xy!6bK&HsmN0Z^Rc&l@vuDlMH2CLpsh#F^b#-%W7F7&&O@$L_fgD6xR!F3{XeiypW^@b7x`LW^RbqDw z+xnHZCd2K&~n_W^KqWTZsFUM>Cg z@L}(*xcl(A1W32D>y3e9uZh!(bCuPhldVhprG*b$*LlJ9ulSoJRbKDE-i@bgpO_O(=2+To9Tm(2Lf;Kc?M?sfUDwS5oXyzH+0)V7eE z|EhiZKG=P-BQ=2UJ-F)jy%+z}zWnOqT>a2d`0-LNJdt(!MS zE8p0C?Pk3&!wjs0kHRfxMlo^kn3gJRd&-@be9g!2yrnN+`YrSJ6g-wU3g0ssI2 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/docload_b.png b/TMessagesProj/src/main/res/drawable-ldpi/docload_b.png new file mode 100644 index 0000000000000000000000000000000000000000..84b9884ad4b50683e9211b4f813d3135be4ccccd GIT binary patch literal 1728 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 OABt2Qi4-kP%=#NUV3s)m literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/doc_blue.png b/TMessagesProj/src/main/res/drawable-mdpi/doc_blue.png old mode 100755 new mode 100644 index 69b5351ea05f126f988c770d68f88c52c4fe4573..3364e7377a6a98c495fd7de37b6538f8ba973114 GIT binary patch literal 2037 zcmaJ?YgAKL7LL3G6sHu6k`%cl#CCwZNkT#ZLqY&0fIJFRL1J=&0LhKXMG^#5EJIP$ zz|gUxyi^#9$U>bGK@>_01_l*nm@eee%Dcsaf{IKP=0?T#N9kSb-gEX@-}mkB?7i2z zc_Bf5R+eZ>6bfY(;Li_5R>1I@n;~CSdiqmjv4ef1;4mm2P7^6X6juW61%UvWC;C2wJb%hVyiu|uXWkT-f&F9 z0m z`(Tl5N=ZCBlrMOj3yD0ji7>2SlSpZ4X~Z-d5mF|QC@dDsph2Y)5ClP`k;5W2L9W8B zDDXj*SSeM&Qb-OM6h(WXRM-=XIDK;knc|(ST=lk0NWn;Ik%B}ak_}f{0SbkG4wcE? zp;d4w_?zE96jp_66d)-SR6(gqG19nroFSEh%~OIR7*d8qP|8XbLlPkvQYAtPfEPvw zgd(w2Zirvwg+g|KTm_5dVlaU3iA5BMQmKSZccV~z+-YPgL%^a?eBHPL7M0IrP$(>} zFO@+PtZ?~|I8_G9;T5jrH!fvWu3;2p3M4ZhR7&@Q5`hwu0k5yjmagiBisW6*%Nwp_ zRWDS*s$3FchGb~$?;5>wgiMcN`)+KJ;N9SZa%9?-$XHj@&gf7m6KMdS8?Js(dumvsvFk9Cc3BNlla)A%o_=0 zFVmN8zd9X%24?2_fwd1F3~Ae;t`F>%+c$xgzwqCvS{r$%8ed!`Ay!hp@ z{(Cb8uD*T_+L#OJ|BYuKj>k&! zm++P26;q$5WOs<^%RGg(Q?YfV$C|ATm7PjG&3=w+=_JSsq_pC7bnlDF7SiGl@mQ50 zR&Mrl;Q`#kg%hGnl97zR=0&crhY#3hAmky#G3kb_h?U1hVvJ!epKNrr1_g(*k$xsd||siH~LC_ z)QR`!Utu3JuHl%RY3)K!)i07e{#lVD9{|y_^LBeMcZM>j*A(e&G4Zma%S$}PevS~&aI6r;+4*5C*7Z%o59rM zjLW7xt;TaUEKWO9MDu;dVy5%UbDfI5{foM& zJ8THLyBoX_Qc}M&wM`S#S>j*g%G}^)ZA2w5uqxK;(Af@W%d9<2|6Od0DQw24UBFZq ziA;;W9=w&5oz;ZK&GN7A`ntupU829+_s_QH=!a32B9D&Yk8hx>g6cPmZY@VuG+w)T zFfta$`LQUx|EL8~lRv}ZMhLg_^qDwEr_nDKjk+=#AB3On`kB~Nm#2jir%uYQg`|Aa z67sBNK~qy!(7X-D5iMIq7zch59Ul>T+SzVLpP$k3r!PsZs2sZi^J9e4GQ*EJz&D6r I=M$Ixe{PvU%m4rY delta 528 zcmV+r0`L9x56uLSNPhwENklCultZ z-T*v-_N{N)J~t^hkRxydJCpotrjtchSYw)$WTX7Re*ezS&cfhuI0V-`hQXDOs~foS z(aHPgS4clIYEMFbqqcc`xUWth9q@2V1Xw}D+MU?S_cr~9G&j~A8A9lm!mOOU4)%0A>dog zF^_TzZEZ#_;D4cp!6-jloo&DZk8#PS1;W%$XeMD-T_TVR_g1*ccru$K^tH)$p;cH7 z?gsGi1RYKR$^fq|@R`snrA^h+bc%okl@^GBXG-UL=gYh!Jt+ ziyh1Hu_F3-Cp6{sLui?TkNUvd4A|Cff-N{{D#t!wN=-TCSF2ZStz6O46D9iWqiq#@ z15)7SvPRg~wsL$412Vw^03-3g7rb>DqUgk8It;w<0r&D<@c(W2=MDS_FaRi(Luz1@ SE)xI%00{s|MNUMnLSTX^r|$y* diff --git a/TMessagesProj/src/main/res/drawable-mdpi/doc_green.png b/TMessagesProj/src/main/res/drawable-mdpi/doc_green.png old mode 100755 new mode 100644 index ebb8cbf7a99a68345a4c885adaa8926b00ea5d85..91549a4dd7202f027a0318aaeda6de7b2694b4b4 GIT binary patch literal 1944 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 aBEcZCyPN6YmlYzQGRM=^&t;ucLK6VbtDgA) literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/doccancel_g.png b/TMessagesProj/src/main/res/drawable-mdpi/doccancel_g.png new file mode 100644 index 0000000000000000000000000000000000000000..371d6a4c71f2c69d4e145c52f486501b84a23015 GIT binary patch literal 1265 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/docload_g.png b/TMessagesProj/src/main/res/drawable-mdpi/docload_g.png new file mode 100644 index 0000000000000000000000000000000000000000..80620158bdf2b58151580d1f79737436fa631baa GIT binary patch literal 1969 zcmbVNdsGuw8V~hN4Ja*C#BJlm1h<7uW)kv}s5BuMn*c(zv9f_78DJnY6Ous^&=eG3 zNRd+!P^sE-L^!evQf(0*kru_eh!(6=9<_8Su2s>RLS3l46BWCEc)I6w&Y8L2z4!b5 zzW14JvC&aX@44O#27{?yri`Q45YIb(D*b)E;5{#T38W(RR6LnNWg}LU5n&>eQI;A< zQqedRF*!0XqTvk2q!di2r}SEl%t+!q#G}Kr;}#mtV1zHRTM%OgO0kmBRE&@V!_8*_ z7G{zI?}lmlT8jcr!Dk_P)IBjz%o9c z_3Qy?YgSW=EKaFS}6zU8=eU> z$@l^ZAA-a}z8L0AiWEkuq_9#< zi_(ZlSR_zQVAX_;LI@)|VHczAKEpzPh?Oar#w%iRiajGEoxF(Nu2d0zcTCv_W8p97xz=F>Cfa0q@4jh&GA3YGI2zAphtY( z`t;`c@Sp@eF;;psj#Mtd=!yGYt&GswZ*=X>R8}JMF6{5$D>)|F{KQ#W9KWL{D|>jX z|6c!ZzvkRKojdGUJlZ_;NPc!`^hfuZ=EDgUzTPW1v9r9FwvLB;;}M6ua??9bW^6Vy z?QQdG7^1hcVx1et3TwT8IE~*56V85lf8k)a+ag`StA+YI4V{MGPg27ydHcXY-@n6W z7ESBhSYG}$Gi1`J;$25*Qm6atJ=)-1_rGiU$Mt0JKy=>GLzDEUelFa1BW39Bm6*ZH z<5$=%LlHq&{Feq-a#wvAO-7J27ERd|fn$08JxC&2*|`Z`_1(JMs`#YchpS?F?gXdY z9eMEEn^za=Iv`VB=2GA8DFGd~o2<<96r;ZZ#rHR5_n)*Q`@A3sLcG<-waJ0Z zps&m2yqwtDb~CKA^AjJ#$eN;NXG-)>hN{+2OE!(>7wvj!UCXjpPN%=|OEuROQ)2d8%ML&eJ#tiScZ|$Q2M&m86BA&V z7hJu&x@7v@Taxf|C%zdRC~@BY*W?Fn(g1a@zT4F0dMIlw-;;OAtACbTIF@Cu@afZB z2JRCJMl{!rude7NfMX>~nhHYULh1SkJ|7E8dnG^ScP~<2(6%(&rd{I@wxNtRuJBau z{+W9lt_BC_i`lO=o!tAu7Z?{gNc47G3c7z!1thgrIp0d$f%?s@&+Z~>HFeDT#s|la zZ)}O*;U(Yar4Kafr!ic`Up9lQrx-SjER3o1i|KiM?&8Uc1IYPdt}B}J)s~(3wGP!zR0Wa=v1x#B<2l|sB?h@z3TfOQkg8TRluc?f*8vjyx&PAQ)C#sH&Rvvjf HX~Ta3K#LI) literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/doc_blue.png b/TMessagesProj/src/main/res/drawable-xhdpi/doc_blue.png old mode 100755 new mode 100644 index f8cfa704a131c288ed2d75b58bba6bd137c9376c..459d5c97909840bce1d5a911e6526ef2c33fec0b GIT binary patch literal 3293 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 BB{~2A diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/doc_green.png b/TMessagesProj/src/main/res/drawable-xhdpi/doc_green.png old mode 100755 new mode 100644 index ff5df25e4179216ea078144f145e58ed74051df9..39b34fcd3e79709dbba159ccad3969b55f674ed4 GIT binary patch literal 3197 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 AE&u=k diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/doccancel_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/doccancel_b.png new file mode 100644 index 0000000000000000000000000000000000000000..932492f42d34e2a874297b5f0a27078824b17b71 GIT binary patch literal 1536 zcmbVMeM}Q)9KOP=d^5(D;mG27WH^EL?n*!C(au0iXNkoMD4+v5?hZJ$cgOXx#l(dH zOW5WNSRo5!@gHD|n`L1^JJ4BlI*1t?^K*&{%H|kDV*FUlOxRnX&OeMxcFEoQ^?RP* z$Mbvd1AE@v(GjmjKoAsdU1!b*V{zaOlY?(f8>R-s3Mr>pD&Q+67b!AO7R^^Mu+>3U zG5HKh*VT+L1_%nRWDAR>V%vIx;vGsdV54+91b~Jh!&rr^7K6385>Hp_bhAsZd;{z;#5rioh^<=|O-u zk**~2&6Xu!U}Z$AB}pJq)a7z1UFk|*tU__UULW94sT9CM;jH5%(yic}NkIlPYZ3HBNOG4+4ty@;j%Pt8ye3>s*TrhX(k=FA!_BxOs~RJxkKDg@ z_gD`jBwyRVa*Ap>%Ni#4ot@Y?koIwRD>Z(3bf)ag_bIVy`U9g^F14mkMcwK8RE=Is zlusm0*H#{z8`k?+Z`bO!sp+r@(O2SczyI6qvG+IA@d@03>FNRRudknE&D!@SwX=D>w`%&dbUe&m^2FJO zlkMZ>EjGXJ#+rfZUfC~AdlN(Y3-Tbg$zS4Jc zR`$r9Q2&?WQ2cnvROa*@_|@}QOPNPs^tf7FUANyj`pxmt)IGn?Nk3iMR|gIL;olVd tv@$?4AW9S_OIVZ)2(={Rm-x1jC}{G#!@kR@>30MFWNS{I*_&P7@DC1QD}Vq1 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/doccancel_g.png b/TMessagesProj/src/main/res/drawable-xhdpi/doccancel_g.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1ad66d638164927c997aec820c2c239e39214e GIT binary patch literal 1519 zcmeAS@N?(olHy`uVBq!ia0vp^5g^RL1|$oo8khhn$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8oy6KF3~uL)kgR?bDKi6!|(A^G_^uoMuGkzbNu zoRMFk;2dnK;G3A7nFr#7q6gwzm(-%nveXo}qWoM1aQIqfVzJ-Agpj`>dQ->=Gku_A z^g)RODY3wWfGH5fgeQF<2cCIS^ME;~2$(fw{9E`L7?|WeT^vIyZoRp)(d%%4MBBq> z4@5bf0(mSrn;w{2?6mAyAQHo>zL8^BNI`k&SGFULE-oQ09QWE+mj_JvA#dqCK_%C> z|EK?_x(^f8ma0@nO`0qqwKVgV;=d#X28jeFg98l04UB9v7 zH$Jtnm~wKP{u7})vXS4zwc9fHO)!0U&5m!LSrKR6dcGK4aj9TOxkl@p-&12$Q`YXd zr8o6|%Noh>$9p?GCx$-GVwuMhX}d1$LE(hv16O%s+WzR(ax;co7YKgZv%2bzK*Qz} z{+93WW*_5a-SL=@{j}xj@TIY5rRA75*e=}bC0=}Q^JyVT?&A#MhtD$I^LSs^ueU{M z_JM-8oVnq`S z<7JFwE{I_bw=Pfez``E7IOS^a(MzE}U=pIT<$Ap7z8g15WG8DX&ji<|?H*nme4DAv@> c?lbW)Xl-Pl@Lze&Q&17?>FVdQ&MBb@0KT9Z0RR91 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/docload_b.png b/TMessagesProj/src/main/res/drawable-xhdpi/docload_b.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8c18cc6ee9e943c02bb2be21d79a00d645d378 GIT binary patch literal 3130 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/docload_g.png b/TMessagesProj/src/main/res/drawable-xhdpi/docload_g.png new file mode 100644 index 0000000000000000000000000000000000000000..52d94e79f92d67c99c4e8b658b7f67c089cdfdba GIT binary patch literal 3132 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 delta 1549 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 delta 1559 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/doccancel_g.png b/TMessagesProj/src/main/res/drawable-xxhdpi/doccancel_g.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2f08dc1fbb6794593597344013b87dcb7ad676 GIT binary patch literal 1738 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On1|$PrnwJA9$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|80+w{G(j&jGsViu(AmV&*~!?*%+1))(AC7z&C($Uq( z%-9X4*Cju>G&eP`1g19yq1ObbUQklVEdbi=l3J8mmYU*Ll%J~r_OewbZnqfXG!Lpb z1-Dy_aO%|uIz}H9u}BdO69T3l5EGtkfgE_kPt60S_99@iHvKlW1DIRvJY5_^DsH{G zdp7GzfJDPX6J1tE0g;2V1z6rM;0_eo9r%YiaQa=b*s_ajzevSsin(s!*tPM+HSU7v zt{hDY8Gn^Dd#vVizWwuL&gVTJCT`oDF{^Thr_s!phwj~rQ+*qLn}x~AfrEolQGunU zK|lbL!-+=@tV=|9=|A?Ick9l7{hq%jhw-8?$Md9*2G8ow^vkWgzcIolb03e%eA`qX z`NO|w+%{aFJgvIpq3@aA8T=prMk*}ZzVZBa3BPUjyKbn9FiV8plAoJ*&0JKZG)bcG z_@lQBZL9n>+7ec<1?^-#uP)^jAH5(kG3$V~^72 z2b3Hru)S8T-uia;gjfGhcUV7+(wTQ$hi~W4*fXzs`s_9xobV>ltzS-a)1e6_9dZj! z@Hu}{xb>`2$(v_q!wl1|9K$CpNnskBj!ls6(9?*MWpw=}QN&`%cl4?AA`K?zbqZ>| zizIj~n`el0Ei!n*_h^O2v80ZhCv%&p7I5B83=rvDC?fD%<6VhMpibK)2b0`#hr&fE zJigwck-6JXFTeVK{UkGueMjbKi8^QY3&hH4b{z}Q>L}FcIvQZqQ7dv*^$&Zj;uq~_ zVV)9R>=$Kx?{r5>Y|NDlvE6+{zT;)0#fywZrz^P>xQ+yx!g*B0!UtqnBa`KwO2h-dSQPbYP+ep#1(Ldcbu zS>$B%3(hwC+%-9=tsu=Qj$Z_w^E85LPDQ+tZtK%Hx5eGX!Ka|vT>ej`=CkDc20e}+ zHJ>@%`6k-&a^a1&RloLi)(5CGE8bk(BX)FZnsc~q?R}T-BvVx$-;;Hd-X7?Cw&(p1 zt>u&075ybKlOiy=so+Yc;G_slz(VjOZ1S^?+kioTXTiD9t)90TfWXt$&t;ucLK6V; C>2Cr6 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/docload_b.png b/TMessagesProj/src/main/res/drawable-xxhdpi/docload_b.png new file mode 100644 index 0000000000000000000000000000000000000000..05cae54b709060d86eb034b3f99535f1f1e31775 GIT binary patch literal 4296 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/docload_g.png b/TMessagesProj/src/main/res/drawable-xxhdpi/docload_g.png new file mode 100644 index 0000000000000000000000000000000000000000..4b44c5ef350eec03b664c97bf7ae1706f403a824 GIT binary patch literal 4309 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 D8}N`? literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/layout/chat_group_incoming_document_layout.xml b/TMessagesProj/src/main/res/layout/chat_group_incoming_document_layout.xml deleted file mode 100644 index 85bf92b6..00000000 --- a/TMessagesProj/src/main/res/layout/chat_group_incoming_document_layout.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/chat_group_incoming_location_layout.xml b/TMessagesProj/src/main/res/layout/chat_group_incoming_location_layout.xml deleted file mode 100644 index d10dbcf4..00000000 --- a/TMessagesProj/src/main/res/layout/chat_group_incoming_location_layout.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/chat_incoming_document_layout.xml b/TMessagesProj/src/main/res/layout/chat_incoming_document_layout.xml deleted file mode 100644 index eb562cf1..00000000 --- a/TMessagesProj/src/main/res/layout/chat_incoming_document_layout.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/chat_incoming_location_layout.xml b/TMessagesProj/src/main/res/layout/chat_incoming_location_layout.xml deleted file mode 100644 index 5e25a7a8..00000000 --- a/TMessagesProj/src/main/res/layout/chat_incoming_location_layout.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/chat_outgoing_document_layout.xml b/TMessagesProj/src/main/res/layout/chat_outgoing_document_layout.xml deleted file mode 100644 index 66044546..00000000 --- a/TMessagesProj/src/main/res/layout/chat_outgoing_document_layout.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/chat_outgoing_location_layout.xml b/TMessagesProj/src/main/res/layout/chat_outgoing_location_layout.xml deleted file mode 100644 index 459e185f..00000000 --- a/TMessagesProj/src/main/res/layout/chat_outgoing_location_layout.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values-it/strings.xml b/TMessagesProj/src/main/res/values-it/strings.xml index 079157f9..cd56303e 100644 --- a/TMessagesProj/src/main/res/values-it/strings.xml +++ b/TMessagesProj/src/main/res/values-it/strings.xml @@ -11,14 +11,14 @@ Il tuo telefono - Conferma il prefisso della tua nazione \ne inserisci il tuo numero di telefono. + Conferma il prefisso della tua nazione\ne inserisci il tuo numero di telefono. Scegli una nazione Prefisso errato Il tuo codice Abbiamo inviato un SMS al tuo telefono con il codice di attivazione - Ti chiameremo tra + Ti telefoneremo tra Ti stiamo chiamando… Codice Numero errato? @@ -58,11 +58,11 @@ Seleziona chat - Lista Broadcast - Nuova Lista Broadcast + Lista broadcast + Nuova lista broadcast Immetti il nome della lista Hai creato una lista broadcast - Aggiungi Destinatario + Aggiungi destinatario Rimuovi dalla lista broadcast @@ -76,12 +76,12 @@ Trasferimento USB attivo Archiviazione interna Archiviazione esterna - Radice di sistema + Root di sistema Scheda SD invisibile - scrivendo… + sta scrivendo… Allega sta scrivendo… stanno scrivendo… @@ -104,10 +104,10 @@ Selezionati: %d CONDIVIDI LE MIE INFORMAZIONI DI CONTATTO AGGIUNGI AI CONTATTI - %s ti ha mandato un invito a una chat privata. + %s ti ha mandato un invito a una chat segreta. Hai invitato %s a entrare in una chat segreta. Chat segrete: - Utilizzano la cifratura punto-punto + Utilizzano la crittografia end-to-end Non lasciano traccia sui nostri server Hanno un contatore di autodistruzione Non permettono l’inoltro @@ -115,7 +115,7 @@ Hai lasciato il gruppo Elimina questo gruppo Elimina questa chat - TRASCINA PER ANNULLARE + CANCELLA Salva in download Applica file di localizzazione Allegato non supportato @@ -123,10 +123,10 @@ Chat segreta richiesta Chat segreta iniziata - %1$s imposta il contatore di autodistruzione a %2$s - Hai impostato il contatore di autodistruzione a %1$s - %1$s ha disabilitato il contatore di autodistruzione - Hai disabilitato il contatore di autodistruzione + %1$s ha impostato il timer di autodistruzione a %2$s + Hai impostato il timer di autodistruzione a %1$s + %1$s ha disabilitato il timer di autodistruzione + Hai disabilitato il timer di autodistruzione 2 secondi 5 secondi 1 minuto @@ -141,7 +141,7 @@ %1$s ha condiviso un contatto con te %1$s ti ha inviato una posizione %1$s ti ha inviato un documento - %1$s ti ha inviato dell\'audio + %1$s ti ha inviato un audio %1$s @ %2$s: %3$s %1$s ha inviato un messaggio al gruppo %2$s %1$s ha inviato una foto al gruppo %2$s @@ -149,7 +149,7 @@ %1$s ha condiviso un contatto con il gruppo %2$s %1$s ha inviato una posizione al gruppo %2$s %1$s ha inviato un documento al gruppo %2$s - %1$s ha inviato dell\'audio al gruppo %2$s + %1$s ha inviato un audio al gruppo %2$s %1$s ti ha invitato nel gruppo %2$s %1$s ha modificato il nome del gruppo %2$s %1$s ha modificato la foto del gruppo %2$s @@ -158,9 +158,9 @@ %1$s ti ha rimosso dal gruppo %2$s %1$s ha lasciato il gruppo %2$s %1$s ha iniziato a usare Telegram! - %1$s,\nAbbiamo rilevato un accesso al tuo account da un nuovo dispositivo %2$s\n\nDispositivo: %3$s\nPosizione: %4$s\n\nSe non sei stato tu, puoi andare su Impostazioni - Termina tutte le sessioni.\n\nGrazie,\nIl Team di Telegram + %1$s,\nAbbiamo rilevato un accesso al tuo account da un nuovo dispositivo %2$s\n\nDispositivo: %3$s\nPosizione: %4$s\n\nSe non sei stato tu, puoi andare su Impostazioni - Termina tutte le sessioni.\n\nGrazie,\nil team di Telegram %1$s ha aggiornato la foto del profilo - Reply + Rispondi Seleziona contatto @@ -211,7 +211,7 @@ Impossibile creare una chat segreta con %1$s.\n\n%2$s sta usando una vecchia versione di Telegram e deve prima aggiornarla. Chat segreta Chiave di cifratura - Contatore di autodistruzione + Timer di autodistruzione Spento 2s 5s @@ -259,37 +259,37 @@ Un contatto si è collegato a Telegram PEBBLE Lingua - Nota che il supporto di Telegram è fornito da volontari. Proviamo a rispondere non appena possibile, ma potrebbe richiedere del tempo.
]]>Dai un\'occhiata alle Domande frequenti]]>: troverai risposte alla maggior parte delle domande e suggerimenti importanti per l\'individuazione del problema]]>.
+ Nota che il supporto di Telegram è fornito da volontari. Proviamo a rispondere non appena possibile, ma potrebbe richiedere del tempo.
]]>Dai un\'occhiata alle Domande frequenti]]>: troverai risposte alla maggior parte delle domande e suggerimenti importanti per l\'individuazione del problema]]>.
Chiedi a un volontario Domande frequenti - https://telegram.org/faq + https://telegram.org/faq/it Eliminare la localizzazione? File della localizzazione non valido Abilitato Disabilitato Servizio notifiche - Se i servizi di Google Play sono sufficienti per ricevere le notifiche, è possibile disabilitare il Servizio Notifiche. Ti raccomandiamo comunque di lasciarlo abilitato per lasciare l\'app attiva in background e ricevere le notifiche istantanee. + Se i servizi di Google Play sono sufficienti per ricevere le notifiche, è possibile disabilitare il Servizio notifiche. Ti raccomandiamo comunque di lasciarlo abilitato per lasciare l\'app attiva in background e ricevere le notifiche istantanee. Ordina per Importa contatti Solo tramite WiFi Nome Cognome Colore LED - Notifiche Popup + Notifiche popup Nessun popup Solo con schermo acceso Solo con schermo spento Mostra sempre i popup Contatore Badge - Short - Long - System default - Settings default - AUTOMATIC MEDIA DOWNLOAD - When using mobile data - When connected on Wi-Fi - When roaming - No media + Breve + Lungo + Predefinito di sistema + Impostazioni predefinite + SCARICAMENTO AUTOMATICO MEDIA + Quando si utilizza la rete dati + Quando si utilizza il Wi-Fi + In roaming + Nessun media Nessun media condiviso @@ -314,9 +314,9 @@ Ancora nessuna foto - Modifica Video - Video Originale - Video Modificato + Modifica video + Video originale + Video modificato Avanti @@ -376,8 +376,8 @@ Cognome non valido Caricamento… Non hai un lettore video, per favore installane uno per continuare - Invia un’email a sms@telegram.org e parlaci del tuo problema. - Nessuna applicazione può gestire il tipo di file \'%1$s\', per favore installane una per proseguire + Invia un’email a sms@telegram.org spiegandoci il problema. + Non hai nessuna applicazione che può gestire il tipo di file \'%1$s\': installane una per proseguire Questo utente non ha ancora Telegram, vuoi invitarlo? Sei sicuro? Vuoi aggiungere il contatto? diff --git a/TMessagesProj/src/main/res/values-nl/strings.xml b/TMessagesProj/src/main/res/values-nl/strings.xml index 3616506e..8913dc25 100644 --- a/TMessagesProj/src/main/res/values-nl/strings.xml +++ b/TMessagesProj/src/main/res/values-nl/strings.xml @@ -160,7 +160,7 @@ %1$s heeft nu Telegram! %1$s,\nEr is op je account ingelogd vanaf een nieuw apparaat op %2$s\n\nApparaat: %3$s\nLocatie: %4$s\n\nAls jij dit niet was, kun je alle sessies beëindigen via Instellingen – Beëindig alle andere sessies.\n\nBedankt,\nHet Telegram-team %1$s heeft zijn/haar profielfoto gewijzigd - Reply + Antwoord Kies een contact @@ -259,7 +259,7 @@ Contact lid geworden van Telegram PEBBLE Taal - Houd er rekening mee dat de ondersteuning van Telegram door vrijwilligers wordt gedaan. We doen ons best om zo snel mogelijk te antwoorden, maar het kan even even duren.
]]>Bekijk ook de veelgestelde vragen]]>: hier staan de antwoorden op de meeste vragen en belangrijke tips voor het oplossen van problemen]]>.
+ Houd er rekening mee dat de ondersteuning van Telegram door vrijwilligers wordt gedaan. We doen ons best om zo snel mogelijk te antwoorden, maar het kan even even duren.
]]>Bekijk ook de veelgestelde vragen]]>: hier staan de antwoorden op de meeste vragen en belangrijke tips voor het oplossen van problemen]]>.
Vraag een vrijwilliger Veelgestelde vragen https://telegram.org/faq @@ -281,15 +281,15 @@ Alleen wanneer scherm \"uit\" staat Altijd popup tonen Badgenummer - Short - Long - System default - Settings default - AUTOMATIC MEDIA DOWNLOAD - When using mobile data - When connected on Wi-Fi - When roaming - No media + Kort + Lang + Standaardinstelling + Standaardinstelling + AUTOMATISCH MEDIA OPHALEN + Bij mobiel datagebruik + Bij Wi-Fi verbinding + Bij roamen + Geen media Nog geen media gedeeld