mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-22 14:35:03 +01:00
Move to API layer 17, bug fixes
This commit is contained in:
parent
a9e84c0e23
commit
43674c486f
41 changed files with 943 additions and 391 deletions
|
@ -3,7 +3,7 @@ buildscript {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:0.12.+'
|
classpath 'com.android.tools.build:gradle:0.13.+'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
@ -25,7 +25,7 @@ dependencies {
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 19
|
compileSdkVersion 19
|
||||||
buildToolsVersion '19.1.0'
|
buildToolsVersion '20.0.0'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
debug {
|
debug {
|
||||||
|
@ -80,7 +80,7 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 8
|
minSdkVersion 8
|
||||||
targetSdkVersion 19
|
targetSdkVersion 19
|
||||||
versionCode 349
|
versionCode 355
|
||||||
versionName "1.9.3"
|
versionName "1.9.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,6 @@ public class AndroidUtilities {
|
||||||
private static int prevOrientation = -10;
|
private static int prevOrientation = -10;
|
||||||
private static boolean waitingForSms = false;
|
private static boolean waitingForSms = false;
|
||||||
private static final Object smsLock = new Object();
|
private static final Object smsLock = new Object();
|
||||||
public static int externalCacheNotAvailableState = 0;
|
|
||||||
|
|
||||||
public static int statusBarHeight = 0;
|
public static int statusBarHeight = 0;
|
||||||
public static float density = 1;
|
public static float density = 1;
|
||||||
|
@ -211,8 +210,7 @@ public class AndroidUtilities {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static File getCacheDir() {
|
public static File getCacheDir() {
|
||||||
if (externalCacheNotAvailableState == 1 || externalCacheNotAvailableState == 0 && Environment.getExternalStorageState().startsWith(Environment.MEDIA_MOUNTED)) {
|
if (Environment.getExternalStorageState().startsWith(Environment.MEDIA_MOUNTED)) {
|
||||||
externalCacheNotAvailableState = 1;
|
|
||||||
try {
|
try {
|
||||||
File file = ApplicationLoader.applicationContext.getExternalCacheDir();
|
File file = ApplicationLoader.applicationContext.getExternalCacheDir();
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
|
@ -222,7 +220,6 @@ public class AndroidUtilities {
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
externalCacheNotAvailableState = 2;
|
|
||||||
try {
|
try {
|
||||||
File file = ApplicationLoader.applicationContext.getCacheDir();
|
File file = ApplicationLoader.applicationContext.getCacheDir();
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
|
|
|
@ -640,54 +640,77 @@ public class ImageLoader {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
|
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
|
||||||
telegramPath = new File(Environment.getExternalStorageDirectory(), LocaleController.getString("AppName", R.string.AppName));
|
telegramPath = new File(Environment.getExternalStorageDirectory(), "Telegram");
|
||||||
telegramPath.mkdirs();
|
telegramPath.mkdirs();
|
||||||
if (telegramPath.isDirectory()) {
|
|
||||||
try {
|
|
||||||
File imagePath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Images");
|
|
||||||
imagePath.mkdir();
|
|
||||||
if (imagePath.isDirectory()) {
|
|
||||||
mediaDirs.put(FileLoader.MEDIA_DIR_IMAGE, imagePath);
|
|
||||||
FileLog.e("tmessages", "image path = " + imagePath);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
FileLog.e("tmessages", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
boolean canRename = false;
|
||||||
File videoPath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Video");
|
|
||||||
videoPath.mkdir();
|
|
||||||
if (videoPath.isDirectory()) {
|
|
||||||
mediaDirs.put(FileLoader.MEDIA_DIR_VIDEO, videoPath);
|
|
||||||
FileLog.e("tmessages", "video path = " + videoPath);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
FileLog.e("tmessages", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
File audioPath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Audio");
|
for (int a = 0; a < 5; a++) {
|
||||||
audioPath.mkdir();
|
File srcFile = new File(cachePath, "temp.file");
|
||||||
if (audioPath.isDirectory()) {
|
srcFile.createNewFile();
|
||||||
new File(audioPath, ".nomedia").createNewFile();
|
File dstFile = new File(telegramPath, "temp.file");
|
||||||
mediaDirs.put(FileLoader.MEDIA_DIR_AUDIO, audioPath);
|
canRename = srcFile.renameTo(dstFile);
|
||||||
FileLog.e("tmessages", "audio path = " + audioPath);
|
srcFile.delete();
|
||||||
|
dstFile.delete();
|
||||||
|
if (canRename) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
FileLog.e("tmessages", e);
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
FileLog.e("tmessages", e);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
if (canRename) {
|
||||||
File documentPath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Documents");
|
if (telegramPath.isDirectory()) {
|
||||||
documentPath.mkdir();
|
try {
|
||||||
if (documentPath.isDirectory()) {
|
File imagePath = new File(telegramPath, "Telegram Images");
|
||||||
new File(documentPath, ".nomedia").createNewFile();
|
imagePath.mkdir();
|
||||||
mediaDirs.put(FileLoader.MEDIA_DIR_DOCUMENT, documentPath);
|
if (imagePath.isDirectory()) {
|
||||||
FileLog.e("tmessages", "documents path = " + documentPath);
|
mediaDirs.put(FileLoader.MEDIA_DIR_IMAGE, imagePath);
|
||||||
|
FileLog.e("tmessages", "image path = " + imagePath);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
FileLog.e("tmessages", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
File videoPath = new File(telegramPath, "Telegram Video");
|
||||||
|
videoPath.mkdir();
|
||||||
|
if (videoPath.isDirectory()) {
|
||||||
|
mediaDirs.put(FileLoader.MEDIA_DIR_VIDEO, videoPath);
|
||||||
|
FileLog.e("tmessages", "video path = " + videoPath);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
FileLog.e("tmessages", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
File audioPath = new File(telegramPath, "Telegram Audio");
|
||||||
|
audioPath.mkdir();
|
||||||
|
if (audioPath.isDirectory()) {
|
||||||
|
new File(audioPath, ".nomedia").createNewFile();
|
||||||
|
mediaDirs.put(FileLoader.MEDIA_DIR_AUDIO, audioPath);
|
||||||
|
FileLog.e("tmessages", "audio path = " + audioPath);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
FileLog.e("tmessages", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
File documentPath = new File(telegramPath, "Telegram Documents");
|
||||||
|
documentPath.mkdir();
|
||||||
|
if (documentPath.isDirectory()) {
|
||||||
|
new File(documentPath, ".nomedia").createNewFile();
|
||||||
|
mediaDirs.put(FileLoader.MEDIA_DIR_DOCUMENT, documentPath);
|
||||||
|
FileLog.e("tmessages", "documents path = " + documentPath);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
FileLog.e("tmessages", e);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
FileLog.e("tmessages", "this Android can't rename files");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MediaController.getInstance().checkSaveToGalleryFiles();
|
MediaController.getInstance().checkSaveToGalleryFiles();
|
||||||
|
@ -809,7 +832,7 @@ public class ImageLoader {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadImage(final TLRPC.FileLocation fileLocation, final String httpUrl, final ImageReceiver imageView, final int size) {
|
public void loadImage(final TLRPC.FileLocation fileLocation, final String httpUrl, final ImageReceiver imageView, final int size, final boolean cacheOnly) {
|
||||||
if ((fileLocation == null && httpUrl == null) || imageView == null || (fileLocation != null && !(fileLocation instanceof TLRPC.TL_fileLocation) && !(fileLocation instanceof TLRPC.TL_fileEncryptedLocation))) {
|
if ((fileLocation == null && httpUrl == null) || imageView == null || (fileLocation != null && !(fileLocation instanceof TLRPC.TL_fileLocation) && !(fileLocation instanceof TLRPC.TL_fileEncryptedLocation))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -861,7 +884,7 @@ public class ImageLoader {
|
||||||
if (!added) {
|
if (!added) {
|
||||||
boolean onlyCache = false;
|
boolean onlyCache = false;
|
||||||
File cacheFile = null;
|
File cacheFile = null;
|
||||||
if (size == 0 || httpUrl != null || fileLocation != null && (fileLocation.key != null || fileLocation.volume_id == Integer.MIN_VALUE && fileLocation.local_id < 0)) {
|
if (cacheOnly || size == 0 || httpUrl != null || fileLocation != null && (fileLocation.key != null || fileLocation.volume_id == Integer.MIN_VALUE && fileLocation.local_id < 0)) {
|
||||||
cacheFile = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE), url);
|
cacheFile = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE), url);
|
||||||
} else {
|
} else {
|
||||||
cacheFile = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_IMAGE), url);
|
cacheFile = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_IMAGE), url);
|
||||||
|
@ -898,7 +921,7 @@ public class ImageLoader {
|
||||||
img.addImageView(imageView);
|
img.addImageView(imageView);
|
||||||
imageLoadingByUrl.put(url, img);
|
imageLoadingByUrl.put(url, img);
|
||||||
if (httpUrl == null) {
|
if (httpUrl == null) {
|
||||||
FileLoader.getInstance().loadFile(fileLocation, size, size == 0 || fileLocation.key != null);
|
FileLoader.getInstance().loadFile(fileLocation, size, size == 0 || fileLocation.key != null || cacheOnly);
|
||||||
} else {
|
} else {
|
||||||
String file = Utilities.MD5(httpUrl);
|
String file = Utilities.MD5(httpUrl);
|
||||||
File cacheDir = FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE);
|
File cacheDir = FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE);
|
||||||
|
|
|
@ -34,6 +34,7 @@ public class ImageReceiver {
|
||||||
private Rect drawRegion = new Rect();
|
private Rect drawRegion = new Rect();
|
||||||
private boolean isVisible = true;
|
private boolean isVisible = true;
|
||||||
private boolean isAspectFit = false;
|
private boolean isAspectFit = false;
|
||||||
|
private boolean lastCacheOnly = false;
|
||||||
|
|
||||||
public ImageReceiver() {
|
public ImageReceiver() {
|
||||||
|
|
||||||
|
@ -43,19 +44,19 @@ public class ImageReceiver {
|
||||||
parentView = view;
|
parentView = view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder) {
|
public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder, boolean cacheOnly) {
|
||||||
setImage(path, null, filter, placeholder, 0);
|
setImage(path, null, filter, placeholder, 0, cacheOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder, int size) {
|
public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder, int size, boolean cacheOnly) {
|
||||||
setImage(path, null, filter, placeholder, size);
|
setImage(path, null, filter, placeholder, size, cacheOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImage(String path, String filter, Drawable placeholder) {
|
public void setImage(String path, String filter, Drawable placeholder) {
|
||||||
setImage(null, path, filter, placeholder, 0);
|
setImage(null, path, filter, placeholder, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImage(TLRPC.FileLocation fileLocation, String httpUrl, String filter, Drawable placeholder, int size) {
|
public void setImage(TLRPC.FileLocation fileLocation, String httpUrl, String filter, Drawable placeholder, int size, boolean cacheOnly) {
|
||||||
if ((fileLocation == null && httpUrl == null) || (fileLocation != null && !(fileLocation instanceof TLRPC.TL_fileLocation) && !(fileLocation instanceof TLRPC.TL_fileEncryptedLocation))) {
|
if ((fileLocation == null && httpUrl == null) || (fileLocation != null && !(fileLocation instanceof TLRPC.TL_fileLocation) && !(fileLocation instanceof TLRPC.TL_fileEncryptedLocation))) {
|
||||||
recycleBitmap(null);
|
recycleBitmap(null);
|
||||||
currentPath = null;
|
currentPath = null;
|
||||||
|
@ -63,6 +64,7 @@ public class ImageReceiver {
|
||||||
last_path = null;
|
last_path = null;
|
||||||
last_httpUrl = null;
|
last_httpUrl = null;
|
||||||
last_filter = null;
|
last_filter = null;
|
||||||
|
lastCacheOnly = false;
|
||||||
last_placeholder = placeholder;
|
last_placeholder = placeholder;
|
||||||
last_size = 0;
|
last_size = 0;
|
||||||
currentImage = null;
|
currentImage = null;
|
||||||
|
@ -101,9 +103,10 @@ public class ImageReceiver {
|
||||||
last_filter = filter;
|
last_filter = filter;
|
||||||
last_placeholder = placeholder;
|
last_placeholder = placeholder;
|
||||||
last_size = size;
|
last_size = size;
|
||||||
|
lastCacheOnly = cacheOnly;
|
||||||
if (img == null) {
|
if (img == null) {
|
||||||
isPlaceholder = true;
|
isPlaceholder = true;
|
||||||
ImageLoader.getInstance().loadImage(fileLocation, httpUrl, this, size);
|
ImageLoader.getInstance().loadImage(fileLocation, httpUrl, this, size, cacheOnly);
|
||||||
} else {
|
} else {
|
||||||
setImageBitmap(img, currentPath);
|
setImageBitmap(img, currentPath);
|
||||||
}
|
}
|
||||||
|
@ -136,6 +139,7 @@ public class ImageReceiver {
|
||||||
last_filter = null;
|
last_filter = null;
|
||||||
currentImage = null;
|
currentImage = null;
|
||||||
last_size = 0;
|
last_size = 0;
|
||||||
|
lastCacheOnly = false;
|
||||||
if (parentView != null) {
|
if (parentView != null) {
|
||||||
parentView.invalidate();
|
parentView.invalidate();
|
||||||
}
|
}
|
||||||
|
@ -152,6 +156,7 @@ public class ImageReceiver {
|
||||||
last_httpUrl = null;
|
last_httpUrl = null;
|
||||||
last_filter = null;
|
last_filter = null;
|
||||||
last_size = 0;
|
last_size = 0;
|
||||||
|
lastCacheOnly = false;
|
||||||
if (parentView != null) {
|
if (parentView != null) {
|
||||||
parentView.invalidate();
|
parentView.invalidate();
|
||||||
}
|
}
|
||||||
|
@ -213,7 +218,7 @@ public class ImageReceiver {
|
||||||
ImageLoader.getInstance().removeImage(currentPath);
|
ImageLoader.getInstance().removeImage(currentPath);
|
||||||
currentPath = null;
|
currentPath = null;
|
||||||
}
|
}
|
||||||
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size);
|
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size, lastCacheOnly);
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
|
@ -238,7 +243,7 @@ public class ImageReceiver {
|
||||||
ImageLoader.getInstance().removeImage(currentPath);
|
ImageLoader.getInstance().removeImage(currentPath);
|
||||||
currentPath = null;
|
currentPath = null;
|
||||||
}
|
}
|
||||||
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size);
|
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size, lastCacheOnly);
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +260,7 @@ public class ImageReceiver {
|
||||||
ImageLoader.getInstance().removeImage(currentPath);
|
ImageLoader.getInstance().removeImage(currentPath);
|
||||||
currentPath = null;
|
currentPath = null;
|
||||||
}
|
}
|
||||||
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size);
|
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size, lastCacheOnly);
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -273,7 +278,7 @@ public class ImageReceiver {
|
||||||
ImageLoader.getInstance().removeImage(currentPath);
|
ImageLoader.getInstance().removeImage(currentPath);
|
||||||
currentPath = null;
|
currentPath = null;
|
||||||
}
|
}
|
||||||
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size);
|
setImage(last_path, last_httpUrl, last_filter, last_placeholder, last_size, lastCacheOnly);
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -518,6 +518,19 @@ public class LocaleController {
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
editor.remove("language");
|
editor.remove("language");
|
||||||
editor.commit();
|
editor.commit();
|
||||||
|
|
||||||
|
if (newLocale != null) {
|
||||||
|
LocaleInfo info = null;
|
||||||
|
if (newLocale.getLanguage() != null) {
|
||||||
|
info = languagesDict.get(newLocale.getLanguage());
|
||||||
|
}
|
||||||
|
if (info == null) {
|
||||||
|
info = languagesDict.get(getLocaleString(newLocale));
|
||||||
|
}
|
||||||
|
if (info == null) {
|
||||||
|
newLocale = Locale.US;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (newLocale != null) {
|
if (newLocale != null) {
|
||||||
if (localeInfo.pathToFile == null) {
|
if (localeInfo.pathToFile == null) {
|
||||||
|
@ -680,7 +693,10 @@ public class LocaleController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recreateFormatters() {
|
public void recreateFormatters() {
|
||||||
Locale locale = Locale.getDefault();
|
Locale locale = currentLocale;
|
||||||
|
if (locale == null) {
|
||||||
|
locale = Locale.getDefault();
|
||||||
|
}
|
||||||
String lang = locale.getLanguage();
|
String lang = locale.getLanguage();
|
||||||
if (lang == null) {
|
if (lang == null) {
|
||||||
lang = "en";
|
lang = "en";
|
||||||
|
|
|
@ -144,7 +144,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final static String MIME_TYPE = "video/avc";
|
public final static String MIME_TYPE = "video/avc";
|
||||||
private final static int PROCESSOR_TYPE_OTHER = 0;
|
private final static int PROCESSOR_TYPE_OTHER = 0;
|
||||||
private final static int PROCESSOR_TYPE_QCOM = 1;
|
private final static int PROCESSOR_TYPE_QCOM = 1;
|
||||||
private final static int PROCESSOR_TYPE_INTEL = 2;
|
private final static int PROCESSOR_TYPE_INTEL = 2;
|
||||||
|
@ -1799,10 +1799,10 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
|
||||||
|
|
||||||
public void checkSaveToGalleryFiles() {
|
public void checkSaveToGalleryFiles() {
|
||||||
try {
|
try {
|
||||||
File telegramPath = new File(Environment.getExternalStorageDirectory(), LocaleController.getString("AppName", R.string.AppName));
|
File telegramPath = new File(Environment.getExternalStorageDirectory(), "Telegram");
|
||||||
File imagePath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Images");
|
File imagePath = new File(telegramPath, "Telegram Images");
|
||||||
imagePath.mkdir();
|
imagePath.mkdir();
|
||||||
File videoPath = new File(telegramPath, LocaleController.getString("AppName", R.string.AppName) + " Video");
|
File videoPath = new File(telegramPath, "Telegram Video");
|
||||||
videoPath.mkdir();
|
videoPath.mkdir();
|
||||||
|
|
||||||
if (saveToGallery) {
|
if (saveToGallery) {
|
||||||
|
@ -1946,7 +1946,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static MediaCodecInfo selectCodec(String mimeType) {
|
public static MediaCodecInfo selectCodec(String mimeType) {
|
||||||
int numCodecs = MediaCodecList.getCodecCount();
|
int numCodecs = MediaCodecList.getCodecCount();
|
||||||
MediaCodecInfo lastCodecInfo = null;
|
MediaCodecInfo lastCodecInfo = null;
|
||||||
for (int i = 0; i < numCodecs; i++) {
|
for (int i = 0; i < numCodecs; i++) {
|
||||||
|
@ -1982,7 +1982,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int selectColorFormat(MediaCodecInfo codecInfo, String mimeType) {
|
public static int selectColorFormat(MediaCodecInfo codecInfo, String mimeType) {
|
||||||
MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
|
MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
|
||||||
int lastColorFormat = 0;
|
int lastColorFormat = 0;
|
||||||
for (int i = 0; i < capabilities.colorFormats.length; i++) {
|
for (int i = 0; i < capabilities.colorFormats.length; i++) {
|
||||||
|
|
|
@ -1241,7 +1241,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
req.typing = true;
|
req.action = new TLRPC.TL_sendMessageTypingAction();
|
||||||
sendingTypings.put(dialog_id, true);
|
sendingTypings.put(dialog_id, true);
|
||||||
long reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
|
long reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1668,6 +1668,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
req.max_id = max_positive_id;
|
req.max_id = max_positive_id;
|
||||||
req.offset = offset;
|
req.offset = offset;
|
||||||
|
req.read_contents = true;
|
||||||
if (offset == 0) {
|
if (offset == 0) {
|
||||||
MessagesStorage.getInstance().processPendingRead(dialog_id, max_positive_id, max_date, false);
|
MessagesStorage.getInstance().processPendingRead(dialog_id, max_positive_id, max_date, false);
|
||||||
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
||||||
|
@ -1712,17 +1713,6 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offset == 0) {
|
|
||||||
TLRPC.TL_messages_receivedMessages req2 = new TLRPC.TL_messages_receivedMessages();
|
|
||||||
req2.max_id = max_positive_id;
|
|
||||||
ConnectionsManager.getInstance().performRpc(req2, new RPCRequest.RPCRequestDelegate() {
|
|
||||||
@Override
|
|
||||||
public void run(TLObject response, TLRPC.TL_error error) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (max_date == 0) {
|
if (max_date == 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -1967,7 +1957,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteUserFromChat(int chat_id, final TLRPC.User user, final TLRPC.ChatParticipants info) {
|
public void deleteUserFromChat(final int chat_id, final TLRPC.User user, final TLRPC.ChatParticipants info) {
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2008,9 +1998,13 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (changed) {
|
if (changed) {
|
||||||
MessagesStorage.getInstance().updateChatInfo(info.chat_id, info, true);
|
MessagesStorage.getInstance().updateChatInfo(chat_id, info, true);
|
||||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatInfoDidLoaded, info.chat_id, info);
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatInfoDidLoaded, info.chat_id, info);
|
||||||
|
} else {
|
||||||
|
MessagesStorage.getInstance().updateChatInfo(chat_id, user.id, true, 0, 0);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
MessagesStorage.getInstance().updateChatInfo(chat_id, user.id, true, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2575,6 +2569,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
message.to_id.chat_id = updates.chat_id;
|
message.to_id.chat_id = updates.chat_id;
|
||||||
message.message = updates.message;
|
message.message = updates.message;
|
||||||
message.date = updates.date;
|
message.date = updates.date;
|
||||||
|
message.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
message.unread = true;
|
message.unread = true;
|
||||||
message.media = new TLRPC.TL_messageMediaEmpty();
|
message.media = new TLRPC.TL_messageMediaEmpty();
|
||||||
MessagesStorage.lastSeqValue = updates.seq;
|
MessagesStorage.lastSeqValue = updates.seq;
|
||||||
|
@ -2641,6 +2636,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
message.message = updates.message;
|
message.message = updates.message;
|
||||||
message.date = updates.date;
|
message.date = updates.date;
|
||||||
message.unread = true;
|
message.unread = true;
|
||||||
|
message.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
message.media = new TLRPC.TL_messageMediaEmpty();
|
message.media = new TLRPC.TL_messageMediaEmpty();
|
||||||
MessagesStorage.lastSeqValue = updates.seq;
|
MessagesStorage.lastSeqValue = updates.seq;
|
||||||
MessagesStorage.lastPtsValue = updates.pts;
|
MessagesStorage.lastPtsValue = updates.pts;
|
||||||
|
@ -2873,7 +2869,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
} else if (update instanceof TLRPC.TL_updateRestoreMessages) {
|
} else if (update instanceof TLRPC.TL_updateRestoreMessages) {
|
||||||
MessagesStorage.lastPtsValue = update.pts;
|
MessagesStorage.lastPtsValue = update.pts;
|
||||||
} else if (update instanceof TLRPC.TL_updateUserTyping || update instanceof TLRPC.TL_updateChatUserTyping) {
|
} else if (update instanceof TLRPC.TL_updateUserTyping || update instanceof TLRPC.TL_updateChatUserTyping) {
|
||||||
if (update.user_id != UserConfig.getClientUserId()) {
|
if (update.action instanceof TLRPC.TL_sendMessageTypingAction && update.user_id != UserConfig.getClientUserId()) {
|
||||||
long uid = -update.chat_id;
|
long uid = -update.chat_id;
|
||||||
if (uid == 0) {
|
if (uid == 0) {
|
||||||
uid = update.user_id;
|
uid = update.user_id;
|
||||||
|
@ -2919,6 +2915,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
||||||
UserConfig.saveConfig(false);
|
UserConfig.saveConfig(false);
|
||||||
newMessage.unread = true;
|
newMessage.unread = true;
|
||||||
|
newMessage.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
newMessage.date = update.date;
|
newMessage.date = update.date;
|
||||||
newMessage.from_id = update.user_id;
|
newMessage.from_id = update.user_id;
|
||||||
newMessage.to_id = new TLRPC.TL_peerUser();
|
newMessage.to_id = new TLRPC.TL_peerUser();
|
||||||
|
@ -2964,6 +2961,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
||||||
UserConfig.saveConfig(false);
|
UserConfig.saveConfig(false);
|
||||||
newMessage.unread = true;
|
newMessage.unread = true;
|
||||||
|
newMessage.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
newMessage.date = update.date;
|
newMessage.date = update.date;
|
||||||
newMessage.from_id = 777000;
|
newMessage.from_id = 777000;
|
||||||
newMessage.to_id = new TLRPC.TL_peerUser();
|
newMessage.to_id = new TLRPC.TL_peerUser();
|
||||||
|
@ -3509,6 +3507,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
newMessage.to_id = new TLRPC.TL_peerUser();
|
newMessage.to_id = new TLRPC.TL_peerUser();
|
||||||
newMessage.random_id = message.random_id;
|
newMessage.random_id = message.random_id;
|
||||||
newMessage.to_id.user_id = UserConfig.getClientUserId();
|
newMessage.to_id.user_id = UserConfig.getClientUserId();
|
||||||
|
newMessage.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
newMessage.out = false;
|
newMessage.out = false;
|
||||||
newMessage.unread = true;
|
newMessage.unread = true;
|
||||||
newMessage.dialog_id = ((long)chat.id) << 32;
|
newMessage.dialog_id = ((long)chat.id) << 32;
|
||||||
|
@ -3657,6 +3656,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
|
||||||
UserConfig.saveConfig(false);
|
UserConfig.saveConfig(false);
|
||||||
|
newMessage.flags = TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
newMessage.unread = true;
|
newMessage.unread = true;
|
||||||
newMessage.date = message.date;
|
newMessage.date = message.date;
|
||||||
newMessage.from_id = from_id;
|
newMessage.from_id = from_id;
|
||||||
|
|
|
@ -1213,23 +1213,19 @@ public class MessagesStorage {
|
||||||
SQLiteCursor cursor = database.queryFinalized("SELECT u.data, u.status, u.name FROM users as u INNER JOIN contacts as c ON u.uid = c.uid");
|
SQLiteCursor cursor = database.queryFinalized("SELECT u.data, u.status, u.name FROM users as u INNER JOIN contacts as c ON u.uid = c.uid");
|
||||||
while (cursor.next()) {
|
while (cursor.next()) {
|
||||||
String name = cursor.stringValue(2);
|
String name = cursor.stringValue(2);
|
||||||
String[] args = name.split(" ");
|
if (name.startsWith(q) || name.contains(" " + q)) {
|
||||||
for (String str : args) {
|
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
||||||
if (str.startsWith(q)) {
|
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0) {
|
||||||
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
TLRPC.User user = (TLRPC.User)TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
||||||
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0) {
|
if (user.id != UserConfig.getClientUserId()) {
|
||||||
TLRPC.User user = (TLRPC.User)TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
if (user.status != null) {
|
||||||
if (user.id != UserConfig.getClientUserId()) {
|
user.status.expires = cursor.intValue(1);
|
||||||
if (user.status != null) {
|
|
||||||
user.status.expires = cursor.intValue(1);
|
|
||||||
}
|
|
||||||
resultArrayNames.add(Utilities.generateSearchName(user.first_name, user.last_name, q));
|
|
||||||
resultArray.add(user);
|
|
||||||
}
|
}
|
||||||
|
resultArrayNames.add(Utilities.generateSearchName(user.first_name, user.last_name, q));
|
||||||
|
resultArray.add(user);
|
||||||
}
|
}
|
||||||
buffersStorage.reuseFreeBuffer(data);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
buffersStorage.reuseFreeBuffer(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cursor.dispose();
|
cursor.dispose();
|
||||||
|
@ -1238,30 +1234,26 @@ public class MessagesStorage {
|
||||||
cursor = database.queryFinalized("SELECT q.data, q.name, q.user, q.g, q.authkey, q.ttl, u.data, u.status FROM enc_chats as q INNER JOIN dialogs as d ON (q.uid << 32) = d.did INNER JOIN users as u ON q.user = u.uid");
|
cursor = database.queryFinalized("SELECT q.data, q.name, q.user, q.g, q.authkey, q.ttl, u.data, u.status FROM enc_chats as q INNER JOIN dialogs as d ON (q.uid << 32) = d.did INNER JOIN users as u ON q.user = u.uid");
|
||||||
while (cursor.next()) {
|
while (cursor.next()) {
|
||||||
String name = cursor.stringValue(1);
|
String name = cursor.stringValue(1);
|
||||||
String[] args = name.split(" ");
|
if (name.startsWith(q) || name.contains(" " + q)) {
|
||||||
for (String arg : args) {
|
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
||||||
if (arg.startsWith(q)) {
|
ByteBufferDesc data2 = buffersStorage.getFreeBuffer(cursor.byteArrayLength(6));
|
||||||
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0 && cursor.byteBufferValue(6, data2.buffer) != 0) {
|
||||||
ByteBufferDesc data2 = buffersStorage.getFreeBuffer(cursor.byteArrayLength(6));
|
TLRPC.EncryptedChat chat = (TLRPC.EncryptedChat) TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
||||||
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0 && cursor.byteBufferValue(6, data2.buffer) != 0) {
|
chat.user_id = cursor.intValue(2);
|
||||||
TLRPC.EncryptedChat chat = (TLRPC.EncryptedChat) TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
chat.a_or_b = cursor.byteArrayValue(3);
|
||||||
chat.user_id = cursor.intValue(2);
|
chat.auth_key = cursor.byteArrayValue(4);
|
||||||
chat.a_or_b = cursor.byteArrayValue(3);
|
chat.ttl = cursor.intValue(5);
|
||||||
chat.auth_key = cursor.byteArrayValue(4);
|
|
||||||
chat.ttl = cursor.intValue(5);
|
|
||||||
|
|
||||||
TLRPC.User user = (TLRPC.User)TLClassStore.Instance().TLdeserialize(data2, data2.readInt32());
|
TLRPC.User user = (TLRPC.User)TLClassStore.Instance().TLdeserialize(data2, data2.readInt32());
|
||||||
if (user.status != null) {
|
if (user.status != null) {
|
||||||
user.status.expires = cursor.intValue(7);
|
user.status.expires = cursor.intValue(7);
|
||||||
}
|
|
||||||
resultArrayNames.add(Html.fromHtml("<font color=\"#00a60e\">" + ContactsController.formatName(user.first_name, user.last_name) + "</font>"));
|
|
||||||
resultArray.add(chat);
|
|
||||||
encUsers.add(user);
|
|
||||||
}
|
}
|
||||||
buffersStorage.reuseFreeBuffer(data);
|
resultArrayNames.add(Html.fromHtml("<font color=\"#00a60e\">" + ContactsController.formatName(user.first_name, user.last_name) + "</font>"));
|
||||||
buffersStorage.reuseFreeBuffer(data2);
|
resultArray.add(chat);
|
||||||
break;
|
encUsers.add(user);
|
||||||
}
|
}
|
||||||
|
buffersStorage.reuseFreeBuffer(data);
|
||||||
|
buffersStorage.reuseFreeBuffer(data2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cursor.dispose();
|
cursor.dispose();
|
||||||
|
@ -1271,20 +1263,17 @@ public class MessagesStorage {
|
||||||
while (cursor.next()) {
|
while (cursor.next()) {
|
||||||
String name = cursor.stringValue(1);
|
String name = cursor.stringValue(1);
|
||||||
String[] args = name.split(" ");
|
String[] args = name.split(" ");
|
||||||
for (String arg : args) {
|
if (name.startsWith(q) || name.contains(" " + q)) {
|
||||||
if (arg.startsWith(q)) {
|
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
||||||
ByteBufferDesc data = buffersStorage.getFreeBuffer(cursor.byteArrayLength(0));
|
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0) {
|
||||||
if (data != null && cursor.byteBufferValue(0, data.buffer) != 0) {
|
TLRPC.Chat chat = (TLRPC.Chat) TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
||||||
TLRPC.Chat chat = (TLRPC.Chat) TLClassStore.Instance().TLdeserialize(data, data.readInt32());
|
if (!needEncrypted && chat.id < 0) {
|
||||||
if (!needEncrypted && chat.id < 0) {
|
continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
resultArrayNames.add(Utilities.generateSearchName(chat.title, null, q));
|
|
||||||
resultArray.add(chat);
|
|
||||||
}
|
}
|
||||||
buffersStorage.reuseFreeBuffer(data);
|
resultArrayNames.add(Utilities.generateSearchName(chat.title, null, q));
|
||||||
break;
|
resultArray.add(chat);
|
||||||
}
|
}
|
||||||
|
buffersStorage.reuseFreeBuffer(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cursor.dispose();
|
cursor.dispose();
|
||||||
|
|
|
@ -486,6 +486,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
||||||
newMsg.from_id = UserConfig.getClientUserId();
|
newMsg.from_id = UserConfig.getClientUserId();
|
||||||
|
newMsg.flags |= TLRPC.MESSAGE_FLAG_OUT;
|
||||||
newMsg.out = true;
|
newMsg.out = true;
|
||||||
UserConfig.saveConfig(false);
|
UserConfig.saveConfig(false);
|
||||||
}
|
}
|
||||||
|
@ -493,6 +494,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
newMsg.random_id = getNextRandomId();
|
newMsg.random_id = getNextRandomId();
|
||||||
}
|
}
|
||||||
newMsg.date = ConnectionsManager.getInstance().getCurrentTime();
|
newMsg.date = ConnectionsManager.getInstance().getCurrentTime();
|
||||||
|
newMsg.flags |= TLRPC.MESSAGE_FLAG_UNREAD;
|
||||||
newMsg.unread = true;
|
newMsg.unread = true;
|
||||||
newMsg.dialog_id = peer;
|
newMsg.dialog_id = peer;
|
||||||
int lower_id = (int) peer;
|
int lower_id = (int) peer;
|
||||||
|
@ -581,7 +583,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
performSendMessageRequest(reqSend, newMsgObj, null);
|
performSendMessageRequest(reqSend, newMsgObj, null);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TLRPC.TL_decryptedMessage reqSend = new TLRPC.TL_decryptedMessage();
|
TLRPC.TL_decryptedMessage_old reqSend = new TLRPC.TL_decryptedMessage_old();
|
||||||
reqSend.random_id = newMsg.random_id;
|
reqSend.random_id = newMsg.random_id;
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
@ -733,7 +735,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TLRPC.TL_decryptedMessage reqSend = new TLRPC.TL_decryptedMessage();
|
TLRPC.TL_decryptedMessage_old reqSend = new TLRPC.TL_decryptedMessage_old();
|
||||||
reqSend.random_id = newMsg.random_id;
|
reqSend.random_id = newMsg.random_id;
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
@ -1407,7 +1409,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
if (!(encryptedChat instanceof TLRPC.TL_encryptedChat)) {
|
if (!(encryptedChat instanceof TLRPC.TL_encryptedChat)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TLRPC.TL_decryptedMessageService reqSend = new TLRPC.TL_decryptedMessageService();
|
TLRPC.TL_decryptedMessageService_old reqSend = new TLRPC.TL_decryptedMessageService_old();
|
||||||
reqSend.random_id = getNextRandomId();
|
reqSend.random_id = getNextRandomId();
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
@ -1420,7 +1422,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
if (!(encryptedChat instanceof TLRPC.TL_encryptedChat)) {
|
if (!(encryptedChat instanceof TLRPC.TL_encryptedChat)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TLRPC.TL_decryptedMessageService reqSend = new TLRPC.TL_decryptedMessageService();
|
TLRPC.TL_decryptedMessageService_old reqSend = new TLRPC.TL_decryptedMessageService_old();
|
||||||
reqSend.random_id = getNextRandomId();
|
reqSend.random_id = getNextRandomId();
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
@ -1439,6 +1441,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
||||||
newMsg.from_id = UserConfig.getClientUserId();
|
newMsg.from_id = UserConfig.getClientUserId();
|
||||||
newMsg.unread = true;
|
newMsg.unread = true;
|
||||||
|
newMsg.flags = TLRPC.MESSAGE_FLAG_UNREAD | TLRPC.MESSAGE_FLAG_OUT;
|
||||||
newMsg.dialog_id = ((long)encryptedChat.id) << 32;
|
newMsg.dialog_id = ((long)encryptedChat.id) << 32;
|
||||||
newMsg.to_id = new TLRPC.TL_peerUser();
|
newMsg.to_id = new TLRPC.TL_peerUser();
|
||||||
if (encryptedChat.participant_id == UserConfig.getClientUserId()) {
|
if (encryptedChat.participant_id == UserConfig.getClientUserId()) {
|
||||||
|
@ -1461,7 +1464,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
MessagesController.getInstance().updateInterfaceWithMessages(newMsg.dialog_id, objArr);
|
MessagesController.getInstance().updateInterfaceWithMessages(newMsg.dialog_id, objArr);
|
||||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
|
||||||
|
|
||||||
TLRPC.TL_decryptedMessageService reqSend = new TLRPC.TL_decryptedMessageService();
|
TLRPC.TL_decryptedMessageService_old reqSend = new TLRPC.TL_decryptedMessageService_old();
|
||||||
reqSend.random_id = newMsg.random_id;
|
reqSend.random_id = newMsg.random_id;
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
@ -1486,6 +1489,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
newMsg.local_id = newMsg.id = UserConfig.getNewMessageId();
|
||||||
newMsg.from_id = UserConfig.getClientUserId();
|
newMsg.from_id = UserConfig.getClientUserId();
|
||||||
newMsg.unread = true;
|
newMsg.unread = true;
|
||||||
|
newMsg.flags = TLRPC.MESSAGE_FLAG_UNREAD | TLRPC.MESSAGE_FLAG_OUT;
|
||||||
newMsg.dialog_id = ((long)encryptedChat.id) << 32;
|
newMsg.dialog_id = ((long)encryptedChat.id) << 32;
|
||||||
newMsg.to_id = new TLRPC.TL_peerUser();
|
newMsg.to_id = new TLRPC.TL_peerUser();
|
||||||
if (encryptedChat.participant_id == UserConfig.getClientUserId()) {
|
if (encryptedChat.participant_id == UserConfig.getClientUserId()) {
|
||||||
|
@ -1508,7 +1512,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
MessagesController.getInstance().updateInterfaceWithMessages(newMsg.dialog_id, objArr);
|
MessagesController.getInstance().updateInterfaceWithMessages(newMsg.dialog_id, objArr);
|
||||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
|
||||||
|
|
||||||
TLRPC.TL_decryptedMessageService reqSend = new TLRPC.TL_decryptedMessageService();
|
TLRPC.TL_decryptedMessageService_old reqSend = new TLRPC.TL_decryptedMessageService_old();
|
||||||
reqSend.random_id = newMsg.random_id;
|
reqSend.random_id = newMsg.random_id;
|
||||||
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
reqSend.random_bytes = new byte[Math.max(1, (int)Math.ceil(Utilities.random.nextDouble() * 16))];
|
||||||
Utilities.random.nextBytes(reqSend.random_bytes);
|
Utilities.random.nextBytes(reqSend.random_bytes);
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
package org.telegram.messenger;
|
package org.telegram.messenger;
|
||||||
|
|
||||||
public class BuildVars {
|
public class BuildVars {
|
||||||
public static boolean DEBUG_VERSION = true;
|
public static boolean DEBUG_VERSION = false;
|
||||||
public static int APP_ID = 2458;
|
public static int APP_ID = 0; //obtaion your own APP_ID at https://core.telegram.org/api/obtaining_api_id
|
||||||
public static String APP_HASH = "5bce48dc7d331e62c955669eb7233217";
|
public static String APP_HASH = ""; //obtaion your own APP_HASH at https://core.telegram.org/api/obtaining_api_id
|
||||||
public static String HOCKEY_APP_HASH = "your-hockeyapp-api-key-here";
|
public static String HOCKEY_APP_HASH = "your-hockeyapp-api-key-here";
|
||||||
public static String GCM_SENDER_ID = "760348033672";
|
public static String GCM_SENDER_ID = "760348033672";
|
||||||
public static String SEND_LOGS_EMAIL = "email@gmail.com";
|
public static String SEND_LOGS_EMAIL = "email@gmail.com";
|
||||||
|
|
|
@ -833,7 +833,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
|
||||||
}
|
}
|
||||||
object = invoke;
|
object = invoke;
|
||||||
}
|
}
|
||||||
TLRPC.invokeWithLayer14 invoke = new TLRPC.invokeWithLayer14();
|
TLRPC.invokeWithLayer17 invoke = new TLRPC.invokeWithLayer17();
|
||||||
invoke.query = object;
|
invoke.query = object;
|
||||||
FileLog.d("wrap in layer", "" + object);
|
FileLog.d("wrap in layer", "" + object);
|
||||||
return invoke;
|
return invoke;
|
||||||
|
@ -1604,12 +1604,12 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
|
||||||
TLRPC.TL_protoMessage message = networkMessage.protoMessage;
|
TLRPC.TL_protoMessage message = networkMessage.protoMessage;
|
||||||
|
|
||||||
if (BuildVars.DEBUG_VERSION) {
|
if (BuildVars.DEBUG_VERSION) {
|
||||||
if (message.body instanceof TLRPC.invokeWithLayer14) {
|
if (message.body instanceof TLRPC.invokeWithLayer17) {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer14)message.body).query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer17)message.body).query);
|
||||||
} else if (message.body instanceof TLRPC.initConnection) {
|
} else if (message.body instanceof TLRPC.initConnection) {
|
||||||
TLRPC.initConnection r = (TLRPC.initConnection)message.body;
|
TLRPC.initConnection r = (TLRPC.initConnection)message.body;
|
||||||
if (r.query instanceof TLRPC.invokeWithLayer14) {
|
if (r.query instanceof TLRPC.invokeWithLayer17) {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer14)r.query).query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer17)r.query).query);
|
||||||
} else {
|
} else {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + r.query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + r.query);
|
||||||
}
|
}
|
||||||
|
@ -1644,12 +1644,12 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
|
||||||
TLRPC.TL_protoMessage message = networkMessage.protoMessage;
|
TLRPC.TL_protoMessage message = networkMessage.protoMessage;
|
||||||
containerMessages.add(message);
|
containerMessages.add(message);
|
||||||
if (BuildVars.DEBUG_VERSION) {
|
if (BuildVars.DEBUG_VERSION) {
|
||||||
if (message.body instanceof TLRPC.invokeWithLayer14) {
|
if (message.body instanceof TLRPC.invokeWithLayer17) {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer14)message.body).query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer17)message.body).query);
|
||||||
} else if (message.body instanceof TLRPC.initConnection) {
|
} else if (message.body instanceof TLRPC.initConnection) {
|
||||||
TLRPC.initConnection r = (TLRPC.initConnection)message.body;
|
TLRPC.initConnection r = (TLRPC.initConnection)message.body;
|
||||||
if (r.query instanceof TLRPC.invokeWithLayer14) {
|
if (r.query instanceof TLRPC.invokeWithLayer17) {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer14)r.query).query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + ((TLRPC.invokeWithLayer17)r.query).query);
|
||||||
} else {
|
} else {
|
||||||
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + r.query);
|
FileLog.d("tmessages", connection.getSissionId() + ":DC" + datacenter.datacenterId + "> Send message (" + message.seqno + ", " + message.msg_id + "): " + r.query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -593,38 +593,42 @@ public class FileLoader {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static File getPathToAttach(TLObject attach) {
|
public static File getPathToAttach(TLObject attach) {
|
||||||
|
return getPathToAttach(attach, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static File getPathToAttach(TLObject attach, boolean forceCache) {
|
||||||
File dir = null;
|
File dir = null;
|
||||||
if (attach instanceof TLRPC.Video) {
|
if (attach instanceof TLRPC.Video) {
|
||||||
TLRPC.Video video = (TLRPC.Video)attach;
|
TLRPC.Video video = (TLRPC.Video)attach;
|
||||||
if (video.key != null) {
|
if (forceCache || video.key != null) {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
||||||
} else {
|
} else {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_VIDEO);
|
dir = getInstance().getDirectory(MEDIA_DIR_VIDEO);
|
||||||
}
|
}
|
||||||
} else if (attach instanceof TLRPC.Document) {
|
} else if (attach instanceof TLRPC.Document) {
|
||||||
TLRPC.Document document = (TLRPC.Document)attach;
|
TLRPC.Document document = (TLRPC.Document)attach;
|
||||||
if (document.key != null) {
|
if (forceCache || document.key != null) {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
||||||
} else {
|
} else {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_DOCUMENT);
|
dir = getInstance().getDirectory(MEDIA_DIR_DOCUMENT);
|
||||||
}
|
}
|
||||||
} else if (attach instanceof TLRPC.PhotoSize) {
|
} else if (attach instanceof TLRPC.PhotoSize) {
|
||||||
TLRPC.PhotoSize photoSize = (TLRPC.PhotoSize)attach;
|
TLRPC.PhotoSize photoSize = (TLRPC.PhotoSize)attach;
|
||||||
if (photoSize.location == null || photoSize.location.key != null || photoSize.location.volume_id == Integer.MIN_VALUE && photoSize.location.local_id < 0) {
|
if (forceCache || photoSize.location == null || photoSize.location.key != null || photoSize.location.volume_id == Integer.MIN_VALUE && photoSize.location.local_id < 0) {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
||||||
} else {
|
} else {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_IMAGE);
|
dir = getInstance().getDirectory(MEDIA_DIR_IMAGE);
|
||||||
}
|
}
|
||||||
} else if (attach instanceof TLRPC.Audio) {
|
} else if (attach instanceof TLRPC.Audio) {
|
||||||
TLRPC.Audio audio = (TLRPC.Audio)attach;
|
TLRPC.Audio audio = (TLRPC.Audio)attach;
|
||||||
if (audio.key != null) {
|
if (forceCache || audio.key != null) {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
||||||
} else {
|
} else {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_AUDIO);
|
dir = getInstance().getDirectory(MEDIA_DIR_AUDIO);
|
||||||
}
|
}
|
||||||
} else if (attach instanceof TLRPC.FileLocation) {
|
} else if (attach instanceof TLRPC.FileLocation) {
|
||||||
TLRPC.FileLocation fileLocation = (TLRPC.FileLocation)attach;
|
TLRPC.FileLocation fileLocation = (TLRPC.FileLocation)attach;
|
||||||
if (fileLocation.key != null || fileLocation.volume_id == Integer.MIN_VALUE && fileLocation.local_id < 0) {
|
if (forceCache || fileLocation.key != null || fileLocation.volume_id == Integer.MIN_VALUE && fileLocation.local_id < 0) {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
dir = getInstance().getDirectory(MEDIA_DIR_CACHE);
|
||||||
} else {
|
} else {
|
||||||
dir = getInstance().getDirectory(MEDIA_DIR_IMAGE);
|
dir = getInstance().getDirectory(MEDIA_DIR_IMAGE);
|
||||||
|
|
|
@ -24,6 +24,10 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_error.constructor, TLRPC.TL_error.class);
|
classStore.put(TLRPC.TL_error.constructor, TLRPC.TL_error.class);
|
||||||
classStore.put(TLRPC.TL_messages_sentEncryptedMessage.constructor, TLRPC.TL_messages_sentEncryptedMessage.class);
|
classStore.put(TLRPC.TL_messages_sentEncryptedMessage.constructor, TLRPC.TL_messages_sentEncryptedMessage.class);
|
||||||
classStore.put(TLRPC.TL_messages_sentEncryptedFile.constructor, TLRPC.TL_messages_sentEncryptedFile.class);
|
classStore.put(TLRPC.TL_messages_sentEncryptedFile.constructor, TLRPC.TL_messages_sentEncryptedFile.class);
|
||||||
|
classStore.put(TLRPC.TL_notifyAll.constructor, TLRPC.TL_notifyAll.class);
|
||||||
|
classStore.put(TLRPC.TL_notifyChats.constructor, TLRPC.TL_notifyChats.class);
|
||||||
|
classStore.put(TLRPC.TL_notifyUsers.constructor, TLRPC.TL_notifyUsers.class);
|
||||||
|
classStore.put(TLRPC.TL_notifyPeer.constructor, TLRPC.TL_notifyPeer.class);
|
||||||
classStore.put(TLRPC.TL_auth_checkedPhone.constructor, TLRPC.TL_auth_checkedPhone.class);
|
classStore.put(TLRPC.TL_auth_checkedPhone.constructor, TLRPC.TL_auth_checkedPhone.class);
|
||||||
classStore.put(TLRPC.TL_msgs_ack.constructor, TLRPC.TL_msgs_ack.class);
|
classStore.put(TLRPC.TL_msgs_ack.constructor, TLRPC.TL_msgs_ack.class);
|
||||||
classStore.put(TLRPC.TL_messages_chatFull.constructor, TLRPC.TL_messages_chatFull.class);
|
classStore.put(TLRPC.TL_messages_chatFull.constructor, TLRPC.TL_messages_chatFull.class);
|
||||||
|
@ -54,6 +58,16 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_message.constructor, TLRPC.TL_message.class);
|
classStore.put(TLRPC.TL_message.constructor, TLRPC.TL_message.class);
|
||||||
classStore.put(TLRPC.TL_messageService.constructor, TLRPC.TL_messageService.class);
|
classStore.put(TLRPC.TL_messageService.constructor, TLRPC.TL_messageService.class);
|
||||||
classStore.put(TLRPC.TL_inputPhoneContact.constructor, TLRPC.TL_inputPhoneContact.class);
|
classStore.put(TLRPC.TL_inputPhoneContact.constructor, TLRPC.TL_inputPhoneContact.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageGeoLocationAction.constructor, TLRPC.TL_sendMessageGeoLocationAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageChooseContactAction.constructor, TLRPC.TL_sendMessageChooseContactAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageTypingAction.constructor, TLRPC.TL_sendMessageTypingAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageUploadDocumentAction.constructor, TLRPC.TL_sendMessageUploadDocumentAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageRecordVideoAction.constructor, TLRPC.TL_sendMessageRecordVideoAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageUploadPhotoAction.constructor, TLRPC.TL_sendMessageUploadPhotoAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageUploadVideoAction.constructor, TLRPC.TL_sendMessageUploadVideoAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageUploadAudioAction.constructor, TLRPC.TL_sendMessageUploadAudioAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageCancelAction.constructor, TLRPC.TL_sendMessageCancelAction.class);
|
||||||
|
classStore.put(TLRPC.TL_sendMessageRecordAudioAction.constructor, TLRPC.TL_sendMessageRecordAudioAction.class);
|
||||||
classStore.put(TLRPC.TL_invokeAfterMsg.constructor, TLRPC.TL_invokeAfterMsg.class);
|
classStore.put(TLRPC.TL_invokeAfterMsg.constructor, TLRPC.TL_invokeAfterMsg.class);
|
||||||
classStore.put(TLRPC.TL_messageMediaVideo.constructor, TLRPC.TL_messageMediaVideo.class);
|
classStore.put(TLRPC.TL_messageMediaVideo.constructor, TLRPC.TL_messageMediaVideo.class);
|
||||||
classStore.put(TLRPC.TL_messageMediaPhoto.constructor, TLRPC.TL_messageMediaPhoto.class);
|
classStore.put(TLRPC.TL_messageMediaPhoto.constructor, TLRPC.TL_messageMediaPhoto.class);
|
||||||
|
@ -63,6 +77,7 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_messageMediaAudio.constructor, TLRPC.TL_messageMediaAudio.class);
|
classStore.put(TLRPC.TL_messageMediaAudio.constructor, TLRPC.TL_messageMediaAudio.class);
|
||||||
classStore.put(TLRPC.TL_messageMediaContact.constructor, TLRPC.TL_messageMediaContact.class);
|
classStore.put(TLRPC.TL_messageMediaContact.constructor, TLRPC.TL_messageMediaContact.class);
|
||||||
classStore.put(TLRPC.TL_messageMediaUnsupported.constructor, TLRPC.TL_messageMediaUnsupported.class);
|
classStore.put(TLRPC.TL_messageMediaUnsupported.constructor, TLRPC.TL_messageMediaUnsupported.class);
|
||||||
|
classStore.put(TLRPC.TL_auth_sentAppCode.constructor, TLRPC.TL_auth_sentAppCode.class);
|
||||||
classStore.put(TLRPC.TL_auth_sentCode.constructor, TLRPC.TL_auth_sentCode.class);
|
classStore.put(TLRPC.TL_auth_sentCode.constructor, TLRPC.TL_auth_sentCode.class);
|
||||||
classStore.put(TLRPC.TL_peerNotifySettingsEmpty.constructor, TLRPC.TL_peerNotifySettingsEmpty.class);
|
classStore.put(TLRPC.TL_peerNotifySettingsEmpty.constructor, TLRPC.TL_peerNotifySettingsEmpty.class);
|
||||||
classStore.put(TLRPC.TL_peerNotifySettings.constructor, TLRPC.TL_peerNotifySettings.class);
|
classStore.put(TLRPC.TL_peerNotifySettings.constructor, TLRPC.TL_peerNotifySettings.class);
|
||||||
|
@ -183,6 +198,7 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_updateReadMessages.constructor, TLRPC.TL_updateReadMessages.class);
|
classStore.put(TLRPC.TL_updateReadMessages.constructor, TLRPC.TL_updateReadMessages.class);
|
||||||
classStore.put(TLRPC.TL_updateChatParticipantDelete.constructor, TLRPC.TL_updateChatParticipantDelete.class);
|
classStore.put(TLRPC.TL_updateChatParticipantDelete.constructor, TLRPC.TL_updateChatParticipantDelete.class);
|
||||||
classStore.put(TLRPC.TL_updateRestoreMessages.constructor, TLRPC.TL_updateRestoreMessages.class);
|
classStore.put(TLRPC.TL_updateRestoreMessages.constructor, TLRPC.TL_updateRestoreMessages.class);
|
||||||
|
classStore.put(TLRPC.TL_updateNotifySettings.constructor, TLRPC.TL_updateNotifySettings.class);
|
||||||
classStore.put(TLRPC.TL_updateUserTyping.constructor, TLRPC.TL_updateUserTyping.class);
|
classStore.put(TLRPC.TL_updateUserTyping.constructor, TLRPC.TL_updateUserTyping.class);
|
||||||
classStore.put(TLRPC.TL_updateChatUserTyping.constructor, TLRPC.TL_updateChatUserTyping.class);
|
classStore.put(TLRPC.TL_updateChatUserTyping.constructor, TLRPC.TL_updateChatUserTyping.class);
|
||||||
classStore.put(TLRPC.TL_updateUserName.constructor, TLRPC.TL_updateUserName.class);
|
classStore.put(TLRPC.TL_updateUserName.constructor, TLRPC.TL_updateUserName.class);
|
||||||
|
@ -194,6 +210,7 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_updateDcOptions.constructor, TLRPC.TL_updateDcOptions.class);
|
classStore.put(TLRPC.TL_updateDcOptions.constructor, TLRPC.TL_updateDcOptions.class);
|
||||||
classStore.put(TLRPC.TL_updateChatParticipants.constructor, TLRPC.TL_updateChatParticipants.class);
|
classStore.put(TLRPC.TL_updateChatParticipants.constructor, TLRPC.TL_updateChatParticipants.class);
|
||||||
classStore.put(TLRPC.TL_updateEncryption.constructor, TLRPC.TL_updateEncryption.class);
|
classStore.put(TLRPC.TL_updateEncryption.constructor, TLRPC.TL_updateEncryption.class);
|
||||||
|
classStore.put(TLRPC.TL_updateUserBlocked.constructor, TLRPC.TL_updateUserBlocked.class);
|
||||||
classStore.put(TLRPC.TL_updateActivation.constructor, TLRPC.TL_updateActivation.class);
|
classStore.put(TLRPC.TL_updateActivation.constructor, TLRPC.TL_updateActivation.class);
|
||||||
classStore.put(TLRPC.TL_updateNewAuthorization.constructor, TLRPC.TL_updateNewAuthorization.class);
|
classStore.put(TLRPC.TL_updateNewAuthorization.constructor, TLRPC.TL_updateNewAuthorization.class);
|
||||||
classStore.put(TLRPC.TL_updateNewGeoChatMessage.constructor, TLRPC.TL_updateNewGeoChatMessage.class);
|
classStore.put(TLRPC.TL_updateNewGeoChatMessage.constructor, TLRPC.TL_updateNewGeoChatMessage.class);
|
||||||
|
@ -208,7 +225,13 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_inputEncryptedFileBigUploaded.constructor, TLRPC.TL_inputEncryptedFileBigUploaded.class);
|
classStore.put(TLRPC.TL_inputEncryptedFileBigUploaded.constructor, TLRPC.TL_inputEncryptedFileBigUploaded.class);
|
||||||
classStore.put(TLRPC.TL_inputEncryptedFileEmpty.constructor, TLRPC.TL_inputEncryptedFileEmpty.class);
|
classStore.put(TLRPC.TL_inputEncryptedFileEmpty.constructor, TLRPC.TL_inputEncryptedFileEmpty.class);
|
||||||
classStore.put(TLRPC.TL_inputEncryptedFileUploaded.constructor, TLRPC.TL_inputEncryptedFileUploaded.class);
|
classStore.put(TLRPC.TL_inputEncryptedFileUploaded.constructor, TLRPC.TL_inputEncryptedFileUploaded.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionFlushHistory.constructor, TLRPC.TL_decryptedMessageActionFlushHistory.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionNotifyLayer.constructor, TLRPC.TL_decryptedMessageActionNotifyLayer.class);
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionSetMessageTTL.constructor, TLRPC.TL_decryptedMessageActionSetMessageTTL.class);
|
classStore.put(TLRPC.TL_decryptedMessageActionSetMessageTTL.constructor, TLRPC.TL_decryptedMessageActionSetMessageTTL.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionDeleteMessages.constructor, TLRPC.TL_decryptedMessageActionDeleteMessages.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionTyping.constructor, TLRPC.TL_decryptedMessageActionTyping.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionReadMessages.constructor, TLRPC.TL_decryptedMessageActionReadMessages.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageActionScreenshotMessages.constructor, TLRPC.TL_decryptedMessageActionScreenshotMessages.class);
|
||||||
classStore.put(TLRPC.TL_contacts_myLinkRequested.constructor, TLRPC.TL_contacts_myLinkRequested.class);
|
classStore.put(TLRPC.TL_contacts_myLinkRequested.constructor, TLRPC.TL_contacts_myLinkRequested.class);
|
||||||
classStore.put(TLRPC.TL_contacts_myLinkContact.constructor, TLRPC.TL_contacts_myLinkContact.class);
|
classStore.put(TLRPC.TL_contacts_myLinkContact.constructor, TLRPC.TL_contacts_myLinkContact.class);
|
||||||
classStore.put(TLRPC.TL_contacts_myLinkEmpty.constructor, TLRPC.TL_contacts_myLinkEmpty.class);
|
classStore.put(TLRPC.TL_contacts_myLinkEmpty.constructor, TLRPC.TL_contacts_myLinkEmpty.class);
|
||||||
|
@ -228,6 +251,7 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_config.constructor, TLRPC.TL_config.class);
|
classStore.put(TLRPC.TL_config.constructor, TLRPC.TL_config.class);
|
||||||
classStore.put(TLRPC.TL_inputAudio.constructor, TLRPC.TL_inputAudio.class);
|
classStore.put(TLRPC.TL_inputAudio.constructor, TLRPC.TL_inputAudio.class);
|
||||||
classStore.put(TLRPC.TL_inputAudioEmpty.constructor, TLRPC.TL_inputAudioEmpty.class);
|
classStore.put(TLRPC.TL_inputAudioEmpty.constructor, TLRPC.TL_inputAudioEmpty.class);
|
||||||
|
classStore.put(TLRPC.TL_help_support.constructor, TLRPC.TL_help_support.class);
|
||||||
classStore.put(TLRPC.TL_messages_chats.constructor, TLRPC.TL_messages_chats.class);
|
classStore.put(TLRPC.TL_messages_chats.constructor, TLRPC.TL_messages_chats.class);
|
||||||
classStore.put(TLRPC.TL_contacts_found.constructor, TLRPC.TL_contacts_found.class);
|
classStore.put(TLRPC.TL_contacts_found.constructor, TLRPC.TL_contacts_found.class);
|
||||||
classStore.put(TLRPC.TL_chatParticipants.constructor, TLRPC.TL_chatParticipants.class);
|
classStore.put(TLRPC.TL_chatParticipants.constructor, TLRPC.TL_chatParticipants.class);
|
||||||
|
@ -245,18 +269,21 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_chatEmpty.constructor, TLRPC.TL_chatEmpty.class);
|
classStore.put(TLRPC.TL_chatEmpty.constructor, TLRPC.TL_chatEmpty.class);
|
||||||
classStore.put(TLRPC.TL_chat.constructor, TLRPC.TL_chat.class);
|
classStore.put(TLRPC.TL_chat.constructor, TLRPC.TL_chat.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileUnknown.constructor, TLRPC.TL_storage_fileUnknown.class);
|
classStore.put(TLRPC.TL_storage_fileUnknown.constructor, TLRPC.TL_storage_fileUnknown.class);
|
||||||
|
classStore.put(TLRPC.TL_storage_fileMp4.constructor, TLRPC.TL_storage_fileMp4.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileWebp.constructor, TLRPC.TL_storage_fileWebp.class);
|
classStore.put(TLRPC.TL_storage_fileWebp.constructor, TLRPC.TL_storage_fileWebp.class);
|
||||||
classStore.put(TLRPC.TL_storage_filePng.constructor, TLRPC.TL_storage_filePng.class);
|
classStore.put(TLRPC.TL_storage_filePng.constructor, TLRPC.TL_storage_filePng.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileGif.constructor, TLRPC.TL_storage_fileGif.class);
|
classStore.put(TLRPC.TL_storage_fileGif.constructor, TLRPC.TL_storage_fileGif.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileMov.constructor, TLRPC.TL_storage_fileMov.class);
|
classStore.put(TLRPC.TL_storage_filePdf.constructor, TLRPC.TL_storage_filePdf.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileMp3.constructor, TLRPC.TL_storage_fileMp3.class);
|
classStore.put(TLRPC.TL_storage_fileMp3.constructor, TLRPC.TL_storage_fileMp3.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileJpeg.constructor, TLRPC.TL_storage_fileJpeg.class);
|
classStore.put(TLRPC.TL_storage_fileJpeg.constructor, TLRPC.TL_storage_fileJpeg.class);
|
||||||
|
classStore.put(TLRPC.TL_storage_fileMov.constructor, TLRPC.TL_storage_fileMov.class);
|
||||||
classStore.put(TLRPC.TL_storage_filePartial.constructor, TLRPC.TL_storage_filePartial.class);
|
classStore.put(TLRPC.TL_storage_filePartial.constructor, TLRPC.TL_storage_filePartial.class);
|
||||||
classStore.put(TLRPC.TL_storage_fileMp4.constructor, TLRPC.TL_storage_fileMp4.class);
|
|
||||||
classStore.put(TLRPC.TL_inputMessagesFilterVideo.constructor, TLRPC.TL_inputMessagesFilterVideo.class);
|
classStore.put(TLRPC.TL_inputMessagesFilterVideo.constructor, TLRPC.TL_inputMessagesFilterVideo.class);
|
||||||
classStore.put(TLRPC.TL_inputMessagesFilterEmpty.constructor, TLRPC.TL_inputMessagesFilterEmpty.class);
|
classStore.put(TLRPC.TL_inputMessagesFilterEmpty.constructor, TLRPC.TL_inputMessagesFilterEmpty.class);
|
||||||
classStore.put(TLRPC.TL_inputMessagesFilterPhotos.constructor, TLRPC.TL_inputMessagesFilterPhotos.class);
|
classStore.put(TLRPC.TL_inputMessagesFilterPhotos.constructor, TLRPC.TL_inputMessagesFilterPhotos.class);
|
||||||
classStore.put(TLRPC.TL_inputMessagesFilterPhotoVideo.constructor, TLRPC.TL_inputMessagesFilterPhotoVideo.class);
|
classStore.put(TLRPC.TL_inputMessagesFilterPhotoVideo.constructor, TLRPC.TL_inputMessagesFilterPhotoVideo.class);
|
||||||
|
classStore.put(TLRPC.TL_inputMessagesFilterDocument.constructor, TLRPC.TL_inputMessagesFilterDocument.class);
|
||||||
|
classStore.put(TLRPC.TL_inputMessagesFilterAudio.constructor, TLRPC.TL_inputMessagesFilterAudio.class);
|
||||||
classStore.put(TLRPC.TL_msgs_state_info.constructor, TLRPC.TL_msgs_state_info.class);
|
classStore.put(TLRPC.TL_msgs_state_info.constructor, TLRPC.TL_msgs_state_info.class);
|
||||||
classStore.put(TLRPC.TL_upload_file.constructor, TLRPC.TL_upload_file.class);
|
classStore.put(TLRPC.TL_upload_file.constructor, TLRPC.TL_upload_file.class);
|
||||||
classStore.put(TLRPC.TL_dialog.constructor, TLRPC.TL_dialog.class);
|
classStore.put(TLRPC.TL_dialog.constructor, TLRPC.TL_dialog.class);
|
||||||
|
@ -310,117 +337,6 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_inputPhotoCrop.constructor, TLRPC.TL_inputPhotoCrop.class);
|
classStore.put(TLRPC.TL_inputPhotoCrop.constructor, TLRPC.TL_inputPhotoCrop.class);
|
||||||
classStore.put(TLRPC.TL_messages_dialogs.constructor, TLRPC.TL_messages_dialogs.class);
|
classStore.put(TLRPC.TL_messages_dialogs.constructor, TLRPC.TL_messages_dialogs.class);
|
||||||
classStore.put(TLRPC.TL_messages_dialogsSlice.constructor, TLRPC.TL_messages_dialogsSlice.class);
|
classStore.put(TLRPC.TL_messages_dialogsSlice.constructor, TLRPC.TL_messages_dialogsSlice.class);
|
||||||
classStore.put(TLRPC.TL_req_pq.constructor, TLRPC.TL_req_pq.class);
|
|
||||||
classStore.put(TLRPC.TL_req_DH_params.constructor, TLRPC.TL_req_DH_params.class);
|
|
||||||
classStore.put(TLRPC.TL_set_client_DH_params.constructor, TLRPC.TL_set_client_DH_params.class);
|
|
||||||
classStore.put(TLRPC.TL_ping.constructor, TLRPC.TL_ping.class);
|
|
||||||
classStore.put(TLRPC.TL_ping_delay_disconnect.constructor, TLRPC.TL_ping_delay_disconnect.class);
|
|
||||||
classStore.put(TLRPC.TL_destroy_session.constructor, TLRPC.TL_destroy_session.class);
|
|
||||||
classStore.put(TLRPC.TL_destroy_sessions.constructor, TLRPC.TL_destroy_sessions.class);
|
|
||||||
classStore.put(TLRPC.TL_get_future_salts.constructor, TLRPC.TL_get_future_salts.class);
|
|
||||||
classStore.put(TLRPC.TL_rpc_drop_answer.constructor, TLRPC.TL_rpc_drop_answer.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_checkPhone.constructor, TLRPC.TL_auth_checkPhone.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_sendCode.constructor, TLRPC.TL_auth_sendCode.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_sendCall.constructor, TLRPC.TL_auth_sendCall.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_signUp.constructor, TLRPC.TL_auth_signUp.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_signIn.constructor, TLRPC.TL_auth_signIn.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_logOut.constructor, TLRPC.TL_auth_logOut.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_resetAuthorizations.constructor, TLRPC.TL_auth_resetAuthorizations.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_sendInvites.constructor, TLRPC.TL_auth_sendInvites.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_exportAuthorization.constructor, TLRPC.TL_auth_exportAuthorization.class);
|
|
||||||
classStore.put(TLRPC.TL_auth_importAuthorization.constructor, TLRPC.TL_auth_importAuthorization.class);
|
|
||||||
classStore.put(TLRPC.TL_account_registerDevice.constructor, TLRPC.TL_account_registerDevice.class);
|
|
||||||
classStore.put(TLRPC.TL_account_unregisterDevice.constructor, TLRPC.TL_account_unregisterDevice.class);
|
|
||||||
classStore.put(TLRPC.TL_account_updateNotifySettings.constructor, TLRPC.TL_account_updateNotifySettings.class);
|
|
||||||
classStore.put(TLRPC.TL_account_getNotifySettings.constructor, TLRPC.TL_account_getNotifySettings.class);
|
|
||||||
classStore.put(TLRPC.TL_account_resetNotifySettings.constructor, TLRPC.TL_account_resetNotifySettings.class);
|
|
||||||
classStore.put(TLRPC.TL_account_updateProfile.constructor, TLRPC.TL_account_updateProfile.class);
|
|
||||||
classStore.put(TLRPC.TL_account_updateStatus.constructor, TLRPC.TL_account_updateStatus.class);
|
|
||||||
classStore.put(TLRPC.TL_account_getWallPapers.constructor, TLRPC.TL_account_getWallPapers.class);
|
|
||||||
classStore.put(TLRPC.TL_users_getUsers.constructor, TLRPC.TL_users_getUsers.class);
|
|
||||||
classStore.put(TLRPC.TL_users_getFullUser.constructor, TLRPC.TL_users_getFullUser.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_getStatuses.constructor, TLRPC.TL_contacts_getStatuses.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_getContacts.constructor, TLRPC.TL_contacts_getContacts.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_importContacts.constructor, TLRPC.TL_contacts_importContacts.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_search.constructor, TLRPC.TL_contacts_search.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_getSuggested.constructor, TLRPC.TL_contacts_getSuggested.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_deleteContact.constructor, TLRPC.TL_contacts_deleteContact.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_deleteContacts.constructor, TLRPC.TL_contacts_deleteContacts.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_block.constructor, TLRPC.TL_contacts_block.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_unblock.constructor, TLRPC.TL_contacts_unblock.class);
|
|
||||||
classStore.put(TLRPC.TL_contacts_getBlocked.constructor, TLRPC.TL_contacts_getBlocked.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getMessages.constructor, TLRPC.TL_messages_getMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getDialogs.constructor, TLRPC.TL_messages_getDialogs.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getHistory.constructor, TLRPC.TL_messages_getHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_search.constructor, TLRPC.TL_messages_search.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_readHistory.constructor, TLRPC.TL_messages_readHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_deleteHistory.constructor, TLRPC.TL_messages_deleteHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_deleteMessages.constructor, TLRPC.TL_messages_deleteMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_restoreMessages.constructor, TLRPC.TL_messages_restoreMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_receivedMessages.constructor, TLRPC.TL_messages_receivedMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_setTyping.constructor, TLRPC.TL_messages_setTyping.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendMessage.constructor, TLRPC.TL_messages_sendMessage.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendMedia.constructor, TLRPC.TL_messages_sendMedia.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_forwardMessages.constructor, TLRPC.TL_messages_forwardMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getChats.constructor, TLRPC.TL_messages_getChats.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getFullChat.constructor, TLRPC.TL_messages_getFullChat.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_editChatTitle.constructor, TLRPC.TL_messages_editChatTitle.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_editChatPhoto.constructor, TLRPC.TL_messages_editChatPhoto.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_addChatUser.constructor, TLRPC.TL_messages_addChatUser.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_deleteChatUser.constructor, TLRPC.TL_messages_deleteChatUser.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_createChat.constructor, TLRPC.TL_messages_createChat.class);
|
|
||||||
classStore.put(TLRPC.TL_updates_getState.constructor, TLRPC.TL_updates_getState.class);
|
|
||||||
classStore.put(TLRPC.TL_updates_getDifference.constructor, TLRPC.TL_updates_getDifference.class);
|
|
||||||
classStore.put(TLRPC.TL_photos_updateProfilePhoto.constructor, TLRPC.TL_photos_updateProfilePhoto.class);
|
|
||||||
classStore.put(TLRPC.TL_photos_uploadProfilePhoto.constructor, TLRPC.TL_photos_uploadProfilePhoto.class);
|
|
||||||
classStore.put(TLRPC.TL_upload_saveFilePart.constructor, TLRPC.TL_upload_saveFilePart.class);
|
|
||||||
classStore.put(TLRPC.TL_upload_getFile.constructor, TLRPC.TL_upload_getFile.class);
|
|
||||||
classStore.put(TLRPC.TL_help_getConfig.constructor, TLRPC.TL_help_getConfig.class);
|
|
||||||
classStore.put(TLRPC.TL_help_getNearestDc.constructor, TLRPC.TL_help_getNearestDc.class);
|
|
||||||
classStore.put(TLRPC.TL_help_getAppUpdate.constructor, TLRPC.TL_help_getAppUpdate.class);
|
|
||||||
classStore.put(TLRPC.TL_help_saveAppLog.constructor, TLRPC.TL_help_saveAppLog.class);
|
|
||||||
classStore.put(TLRPC.TL_help_getInviteText.constructor, TLRPC.TL_help_getInviteText.class);
|
|
||||||
classStore.put(TLRPC.TL_photos_getUserPhotos.constructor, TLRPC.TL_photos_getUserPhotos.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_forwardMessage.constructor, TLRPC.TL_messages_forwardMessage.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendBroadcast.constructor, TLRPC.TL_messages_sendBroadcast.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_getLocated.constructor, TLRPC.TL_geochats_getLocated.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_getRecents.constructor, TLRPC.TL_geochats_getRecents.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_checkin.constructor, TLRPC.TL_geochats_checkin.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_getFullChat.constructor, TLRPC.TL_geochats_getFullChat.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_editChatTitle.constructor, TLRPC.TL_geochats_editChatTitle.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_editChatPhoto.constructor, TLRPC.TL_geochats_editChatPhoto.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_search.constructor, TLRPC.TL_geochats_search.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_getHistory.constructor, TLRPC.TL_geochats_getHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_setTyping.constructor, TLRPC.TL_geochats_setTyping.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_sendMessage.constructor, TLRPC.TL_geochats_sendMessage.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_sendMedia.constructor, TLRPC.TL_geochats_sendMedia.class);
|
|
||||||
classStore.put(TLRPC.TL_geochats_createGeoChat.constructor, TLRPC.TL_geochats_createGeoChat.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_getDhConfig.constructor, TLRPC.TL_messages_getDhConfig.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_requestEncryption.constructor, TLRPC.TL_messages_requestEncryption.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_acceptEncryption.constructor, TLRPC.TL_messages_acceptEncryption.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_discardEncryption.constructor, TLRPC.TL_messages_discardEncryption.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_setEncryptedTyping.constructor, TLRPC.TL_messages_setEncryptedTyping.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_readEncryptedHistory.constructor, TLRPC.TL_messages_readEncryptedHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendEncrypted.constructor, TLRPC.TL_messages_sendEncrypted.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendEncryptedFile.constructor, TLRPC.TL_messages_sendEncryptedFile.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_sendEncryptedService.constructor, TLRPC.TL_messages_sendEncryptedService.class);
|
|
||||||
classStore.put(TLRPC.TL_messages_receivedQueue.constructor, TLRPC.TL_messages_receivedQueue.class);
|
|
||||||
classStore.put(TLRPC.TL_upload_saveBigFilePart.constructor, TLRPC.TL_upload_saveBigFilePart.class);
|
|
||||||
classStore.put(TLRPC.TL_help_support.constructor, TLRPC.TL_help_support.class);
|
|
||||||
classStore.put(TLRPC.TL_help_getSupport.constructor, TLRPC.TL_help_getSupport.class);
|
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionDeleteMessages.constructor, TLRPC.TL_decryptedMessageActionDeleteMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionFlushHistory.constructor, TLRPC.TL_decryptedMessageActionFlushHistory.class);
|
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionScreenshotMessages.constructor, TLRPC.TL_decryptedMessageActionScreenshotMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_messageEcryptedAction.constructor, TLRPC.TL_messageEcryptedAction.class);
|
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionNotifyLayer.constructor, TLRPC.TL_decryptedMessageActionNotifyLayer.class);
|
|
||||||
classStore.put(TLRPC.TL_decryptedMessageActionReadMessages.constructor, TLRPC.TL_decryptedMessageActionReadMessages.class);
|
|
||||||
classStore.put(TLRPC.TL_updateNotifySettings.constructor, TLRPC.TL_updateNotifySettings.class);
|
|
||||||
classStore.put(TLRPC.TL_updateUserBlocked.constructor, TLRPC.TL_updateUserBlocked.class);
|
|
||||||
classStore.put(TLRPC.TL_notifyAll.constructor, TLRPC.TL_notifyAll.class);
|
|
||||||
classStore.put(TLRPC.TL_notifyChats.constructor, TLRPC.TL_notifyChats.class);
|
|
||||||
classStore.put(TLRPC.TL_notifyUsers.constructor, TLRPC.TL_notifyUsers.class);
|
|
||||||
classStore.put(TLRPC.TL_notifyPeer.constructor, TLRPC.TL_notifyPeer.class);
|
|
||||||
classStore.put(TLRPC.TL_photos_deletePhotos.constructor, TLRPC.TL_photos_deletePhotos.class);
|
|
||||||
|
|
||||||
classStore.put(TLRPC.TL_msg_container.constructor, TLRPC.TL_msg_container.class);
|
classStore.put(TLRPC.TL_msg_container.constructor, TLRPC.TL_msg_container.class);
|
||||||
classStore.put(TLRPC.TL_fileEncryptedLocation.constructor, TLRPC.TL_fileEncryptedLocation.class);
|
classStore.put(TLRPC.TL_fileEncryptedLocation.constructor, TLRPC.TL_fileEncryptedLocation.class);
|
||||||
|
@ -441,6 +357,11 @@ public class TLClassStore {
|
||||||
classStore.put(TLRPC.TL_audio_old.constructor, TLRPC.TL_audio_old.class);
|
classStore.put(TLRPC.TL_audio_old.constructor, TLRPC.TL_audio_old.class);
|
||||||
classStore.put(TLRPC.TL_video_old.constructor, TLRPC.TL_video_old.class);
|
classStore.put(TLRPC.TL_video_old.constructor, TLRPC.TL_video_old.class);
|
||||||
classStore.put(TLRPC.TL_messageActionCreatedBroadcastList.constructor, TLRPC.TL_messageActionCreatedBroadcastList.class);
|
classStore.put(TLRPC.TL_messageActionCreatedBroadcastList.constructor, TLRPC.TL_messageActionCreatedBroadcastList.class);
|
||||||
|
classStore.put(TLRPC.TL_messageForwarded_old.constructor, TLRPC.TL_messageForwarded_old.class);
|
||||||
|
classStore.put(TLRPC.TL_message_old.constructor, TLRPC.TL_message_old.class);
|
||||||
|
classStore.put(TLRPC.TL_messageService_old.constructor, TLRPC.TL_messageService_old.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessageService_old.constructor, TLRPC.TL_decryptedMessageService_old.class);
|
||||||
|
classStore.put(TLRPC.TL_decryptedMessage_old.constructor, TLRPC.TL_decryptedMessage_old.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
static TLClassStore store = null;
|
static TLClassStore store = null;
|
||||||
|
|
|
@ -13,6 +13,10 @@ import java.util.Locale;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class TLRPC {
|
public class TLRPC {
|
||||||
|
|
||||||
|
public static int MESSAGE_FLAG_UNREAD = 1;
|
||||||
|
public static int MESSAGE_FLAG_OUT = 2;
|
||||||
|
|
||||||
public static class ChatPhoto extends TLObject {
|
public static class ChatPhoto extends TLObject {
|
||||||
public FileLocation photo_small;
|
public FileLocation photo_small;
|
||||||
public FileLocation photo_big;
|
public FileLocation photo_big;
|
||||||
|
@ -815,32 +819,6 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_messageService extends Message {
|
|
||||||
public static int constructor = 0x9f8d60bb;
|
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
|
||||||
id = stream.readInt32();
|
|
||||||
from_id = stream.readInt32();
|
|
||||||
to_id = (Peer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
|
||||||
out = stream.readBool();
|
|
||||||
unread = stream.readBool();
|
|
||||||
date = stream.readInt32();
|
|
||||||
action = (MessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void serializeToStream(AbsSerializedData stream) {
|
|
||||||
stream.writeInt32(constructor);
|
|
||||||
stream.writeInt32(id);
|
|
||||||
stream.writeInt32(from_id);
|
|
||||||
to_id.serializeToStream(stream);
|
|
||||||
stream.writeBool(out);
|
|
||||||
stream.writeBool(unread);
|
|
||||||
stream.writeInt32(date);
|
|
||||||
action.serializeToStream(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TL_inputPhoneContact extends TLObject {
|
public static class TL_inputPhoneContact extends TLObject {
|
||||||
public static int constructor = 0xf392b7f4;
|
public static int constructor = 0xf392b7f4;
|
||||||
|
|
||||||
|
@ -865,6 +843,99 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class SendMessageAction extends TLObject {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageGeoLocationAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x176f8ba1;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageChooseContactAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x628cbc6f;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageTypingAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x16bf744e;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageUploadDocumentAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x8faee98e;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageRecordVideoAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0xa187d66f;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageUploadPhotoAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x990a3c1a;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageUploadVideoAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0x92042ff7;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageUploadAudioAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0xe6ac8a6f;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageCancelAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0xfd5ec8f5;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_sendMessageRecordAudioAction extends SendMessageAction {
|
||||||
|
public static int constructor = 0xd52f73f7;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class TL_invokeAfterMsg extends TLObject {
|
public static class TL_invokeAfterMsg extends TLObject {
|
||||||
public static int constructor = 0xcb9f372d;
|
public static int constructor = 0xcb9f372d;
|
||||||
|
|
||||||
|
@ -1009,13 +1080,36 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_auth_sentCode extends TLObject {
|
public static class auth_SentCode extends TLObject {
|
||||||
public static int constructor = 0xefed51d9;
|
|
||||||
|
|
||||||
public boolean phone_registered;
|
public boolean phone_registered;
|
||||||
public String phone_code_hash;
|
public String phone_code_hash;
|
||||||
public int send_call_timeout;
|
public int send_call_timeout;
|
||||||
public boolean is_password;
|
public boolean is_password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_auth_sentAppCode extends auth_SentCode {
|
||||||
|
public static int constructor = 0xe325edcf;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
phone_registered = stream.readBool();
|
||||||
|
phone_code_hash = stream.readString();
|
||||||
|
send_call_timeout = stream.readInt32();
|
||||||
|
is_password = stream.readBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeBool(phone_registered);
|
||||||
|
stream.writeString(phone_code_hash);
|
||||||
|
stream.writeInt32(send_call_timeout);
|
||||||
|
stream.writeBool(is_password);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_auth_sentCode extends auth_SentCode {
|
||||||
|
public static int constructor = 0xefed51d9;
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
phone_registered = stream.readBool();
|
phone_registered = stream.readBool();
|
||||||
|
@ -2463,18 +2557,23 @@ public class TLRPC {
|
||||||
public static class DecryptedMessage extends TLObject {
|
public static class DecryptedMessage extends TLObject {
|
||||||
public long random_id;
|
public long random_id;
|
||||||
public byte[] random_bytes;
|
public byte[] random_bytes;
|
||||||
|
public int in_seq_no;
|
||||||
|
public int out_seq_no;
|
||||||
public DecryptedMessageAction action;
|
public DecryptedMessageAction action;
|
||||||
|
public int ttl;
|
||||||
public String message;
|
public String message;
|
||||||
public DecryptedMessageMedia media;
|
public DecryptedMessageMedia media;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_decryptedMessageService extends DecryptedMessage {
|
public static class TL_decryptedMessageService extends DecryptedMessage {
|
||||||
public static int constructor = 0xaa48327d;
|
public static int constructor = 0xda431693;
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
random_id = stream.readInt64();
|
random_id = stream.readInt64();
|
||||||
random_bytes = stream.readByteArray();
|
random_bytes = stream.readByteArray();
|
||||||
|
in_seq_no = stream.readInt32();
|
||||||
|
out_seq_no = stream.readInt32();
|
||||||
action = (DecryptedMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
action = (DecryptedMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2482,17 +2581,22 @@ public class TLRPC {
|
||||||
stream.writeInt32(constructor);
|
stream.writeInt32(constructor);
|
||||||
stream.writeInt64(random_id);
|
stream.writeInt64(random_id);
|
||||||
stream.writeByteArray(random_bytes);
|
stream.writeByteArray(random_bytes);
|
||||||
|
stream.writeInt32(in_seq_no);
|
||||||
|
stream.writeInt32(out_seq_no);
|
||||||
action.serializeToStream(stream);
|
action.serializeToStream(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_decryptedMessage extends DecryptedMessage {
|
public static class TL_decryptedMessage extends DecryptedMessage {
|
||||||
public static int constructor = 0x1f814f1f;
|
public static int constructor = 0x4e748938;
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
random_id = stream.readInt64();
|
random_id = stream.readInt64();
|
||||||
random_bytes = stream.readByteArray();
|
random_bytes = stream.readByteArray();
|
||||||
|
in_seq_no = stream.readInt32();
|
||||||
|
out_seq_no = stream.readInt32();
|
||||||
|
ttl = stream.readInt32();
|
||||||
message = stream.readString();
|
message = stream.readString();
|
||||||
media = (DecryptedMessageMedia)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
media = (DecryptedMessageMedia)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
}
|
}
|
||||||
|
@ -2501,6 +2605,9 @@ public class TLRPC {
|
||||||
stream.writeInt32(constructor);
|
stream.writeInt32(constructor);
|
||||||
stream.writeInt64(random_id);
|
stream.writeInt64(random_id);
|
||||||
stream.writeByteArray(random_bytes);
|
stream.writeByteArray(random_bytes);
|
||||||
|
stream.writeInt32(in_seq_no);
|
||||||
|
stream.writeInt32(out_seq_no);
|
||||||
|
stream.writeInt32(ttl);
|
||||||
stream.writeString(message);
|
stream.writeString(message);
|
||||||
media.serializeToStream(stream);
|
media.serializeToStream(stream);
|
||||||
}
|
}
|
||||||
|
@ -3334,6 +3441,7 @@ public class TLRPC {
|
||||||
public int version;
|
public int version;
|
||||||
public NotifyPeer peer;
|
public NotifyPeer peer;
|
||||||
public PeerNotifySettings notify_settings;
|
public PeerNotifySettings notify_settings;
|
||||||
|
public SendMessageAction action;
|
||||||
public String first_name;
|
public String first_name;
|
||||||
public String last_name;
|
public String last_name;
|
||||||
public int qts;
|
public int qts;
|
||||||
|
@ -3473,32 +3581,36 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_updateUserTyping extends Update {
|
public static class TL_updateUserTyping extends Update {
|
||||||
public static int constructor = 0x6baa8508;
|
public static int constructor = 0x5c486927;
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
user_id = stream.readInt32();
|
user_id = stream.readInt32();
|
||||||
|
action = (SendMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serializeToStream(AbsSerializedData stream) {
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
stream.writeInt32(constructor);
|
stream.writeInt32(constructor);
|
||||||
stream.writeInt32(user_id);
|
stream.writeInt32(user_id);
|
||||||
|
action.serializeToStream(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_updateChatUserTyping extends Update {
|
public static class TL_updateChatUserTyping extends Update {
|
||||||
public static int constructor = 0x3c46cfe6;
|
public static int constructor = 0x9a65ea1f;
|
||||||
|
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
chat_id = stream.readInt32();
|
chat_id = stream.readInt32();
|
||||||
user_id = stream.readInt32();
|
user_id = stream.readInt32();
|
||||||
|
action = (SendMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serializeToStream(AbsSerializedData stream) {
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
stream.writeInt32(constructor);
|
stream.writeInt32(constructor);
|
||||||
stream.writeInt32(chat_id);
|
stream.writeInt32(chat_id);
|
||||||
stream.writeInt32(user_id);
|
stream.writeInt32(user_id);
|
||||||
|
action.serializeToStream(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3942,6 +4054,7 @@ public class TLRPC {
|
||||||
public int layer;
|
public int layer;
|
||||||
public int ttl_seconds;
|
public int ttl_seconds;
|
||||||
public ArrayList<Long> random_ids = new ArrayList<Long>();
|
public ArrayList<Long> random_ids = new ArrayList<Long>();
|
||||||
|
public SendMessageAction action;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_decryptedMessageActionSetMessageTTL extends DecryptedMessageAction {
|
public static class TL_decryptedMessageActionSetMessageTTL extends DecryptedMessageAction {
|
||||||
|
@ -4002,6 +4115,20 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TL_decryptedMessageActionTyping extends DecryptedMessageAction {
|
||||||
|
public static int constructor = 0xccb27641;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
action = (SendMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
action.serializeToStream(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class contacts_MyLink extends TLObject {
|
public static class contacts_MyLink extends TLObject {
|
||||||
public boolean contact;
|
public boolean contact;
|
||||||
}
|
}
|
||||||
|
@ -4413,6 +4540,52 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TL_auth_sendSms extends TLObject {
|
||||||
|
public static int constructor = 0xda9f3e8;
|
||||||
|
|
||||||
|
public String phone_number;
|
||||||
|
public String phone_code_hash;
|
||||||
|
|
||||||
|
public Class responseClass () {
|
||||||
|
return Bool.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
phone_number = stream.readString();
|
||||||
|
phone_code_hash = stream.readString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeString(phone_number);
|
||||||
|
stream.writeString(phone_code_hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_messages_readMessageContents extends TLObject {
|
||||||
|
public static int constructor = 0x354b5bc2;
|
||||||
|
|
||||||
|
public ArrayList<Integer> id = new ArrayList<Integer>();
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
stream.readInt32();
|
||||||
|
int count = stream.readInt32();
|
||||||
|
for (int a = 0; a < count; a++) {
|
||||||
|
id.add(stream.readInt32());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt32(0x1cb5c415);
|
||||||
|
int count = id.size();
|
||||||
|
stream.writeInt32(count);
|
||||||
|
for (Integer anId : id) {
|
||||||
|
stream.writeInt32(anId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class InputAudio extends TLObject {
|
public static class InputAudio extends TLObject {
|
||||||
public long id;
|
public long id;
|
||||||
public long access_hash;
|
public long access_hash;
|
||||||
|
@ -4892,6 +5065,15 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TL_storage_filePdf extends storage_FileType {
|
||||||
|
public static int constructor = 0xae1e508d;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class TL_storage_fileMov extends storage_FileType {
|
public static class TL_storage_fileMov extends storage_FileType {
|
||||||
public static int constructor = 0x4b09ebbc;
|
public static int constructor = 0x4b09ebbc;
|
||||||
|
|
||||||
|
@ -4976,6 +5158,24 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TL_inputMessagesFilterDocument extends MessagesFilter {
|
||||||
|
public static int constructor = 0x9eddf188;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_inputMessagesFilterAudio extends MessagesFilter {
|
||||||
|
public static int constructor = 0xcfc87522;
|
||||||
|
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class TL_msgs_state_info extends TLObject {
|
public static class TL_msgs_state_info extends TLObject {
|
||||||
public static int constructor = 0x04deb57d;
|
public static int constructor = 0x04deb57d;
|
||||||
|
|
||||||
|
@ -7058,11 +7258,12 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_messages_readHistory extends TLObject {
|
public static class TL_messages_readHistory extends TLObject {
|
||||||
public static int constructor = 0xb04f2510;
|
public static int constructor = 0xeed884c6;
|
||||||
|
|
||||||
public InputPeer peer;
|
public InputPeer peer;
|
||||||
public int max_id;
|
public int max_id;
|
||||||
public int offset;
|
public int offset;
|
||||||
|
public boolean read_contents;
|
||||||
|
|
||||||
public Class responseClass () {
|
public Class responseClass () {
|
||||||
return TL_messages_affectedHistory.class;
|
return TL_messages_affectedHistory.class;
|
||||||
|
@ -7072,6 +7273,7 @@ public class TLRPC {
|
||||||
peer = (InputPeer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
peer = (InputPeer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
max_id = stream.readInt32();
|
max_id = stream.readInt32();
|
||||||
offset = stream.readInt32();
|
offset = stream.readInt32();
|
||||||
|
read_contents = stream.readBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serializeToStream(AbsSerializedData stream) {
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
@ -7079,6 +7281,7 @@ public class TLRPC {
|
||||||
peer.serializeToStream(stream);
|
peer.serializeToStream(stream);
|
||||||
stream.writeInt32(max_id);
|
stream.writeInt32(max_id);
|
||||||
stream.writeInt32(offset);
|
stream.writeInt32(offset);
|
||||||
|
stream.writeBool(read_contents);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7105,10 +7308,10 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_messages_setTyping extends TLObject {
|
public static class TL_messages_setTyping extends TLObject {
|
||||||
public static int constructor = 0x719839e9;
|
public static int constructor = 0xa3825e50;
|
||||||
|
|
||||||
public InputPeer peer;
|
public InputPeer peer;
|
||||||
public boolean typing;
|
public SendMessageAction action;
|
||||||
|
|
||||||
public Class responseClass () {
|
public Class responseClass () {
|
||||||
return Bool.class;
|
return Bool.class;
|
||||||
|
@ -7116,13 +7319,13 @@ public class TLRPC {
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
peer = (InputPeer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
peer = (InputPeer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
typing = stream.readBool();
|
action = (SendMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serializeToStream(AbsSerializedData stream) {
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
stream.writeInt32(constructor);
|
stream.writeInt32(constructor);
|
||||||
peer.serializeToStream(stream);
|
peer.serializeToStream(stream);
|
||||||
stream.writeBool(typing);
|
action.serializeToStream(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8225,6 +8428,44 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TL_decryptedMessageService_old extends TL_decryptedMessageService {
|
||||||
|
public static int constructor = 0xaa48327d;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
random_id = stream.readInt64();
|
||||||
|
random_bytes = stream.readByteArray();
|
||||||
|
action = (DecryptedMessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt64(random_id);
|
||||||
|
stream.writeByteArray(random_bytes);
|
||||||
|
action.serializeToStream(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_decryptedMessage_old extends TL_decryptedMessage {
|
||||||
|
public static int constructor = 0x1f814f1f;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
random_id = stream.readInt64();
|
||||||
|
random_bytes = stream.readByteArray();
|
||||||
|
message = stream.readString();
|
||||||
|
media = (DecryptedMessageMedia)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt64(random_id);
|
||||||
|
stream.writeByteArray(random_bytes);
|
||||||
|
stream.writeString(message);
|
||||||
|
media.serializeToStream(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class TL_messages_sendEncryptedFile extends TLObject {
|
public static class TL_messages_sendEncryptedFile extends TLObject {
|
||||||
public static int constructor = 0x9a901b66;
|
public static int constructor = 0x9a901b66;
|
||||||
|
|
||||||
|
@ -8522,6 +8763,7 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Message extends TLObject {
|
public static class Message extends TLObject {
|
||||||
|
public int flags;
|
||||||
public int id;
|
public int id;
|
||||||
public int fwd_from_id;
|
public int fwd_from_id;
|
||||||
public int fwd_date;
|
public int fwd_date;
|
||||||
|
@ -8544,6 +8786,140 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_messageForwarded extends Message {
|
public static class TL_messageForwarded extends Message {
|
||||||
|
public static int constructor = 0xa367e716;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
flags = stream.readInt32();
|
||||||
|
id = stream.readInt32();
|
||||||
|
fwd_from_id = stream.readInt32();
|
||||||
|
fwd_date = stream.readInt32();
|
||||||
|
from_id = stream.readInt32();
|
||||||
|
to_id = (Peer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
date = stream.readInt32();
|
||||||
|
message = stream.readString();
|
||||||
|
media = (MessageMedia)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
out = (flags & MESSAGE_FLAG_OUT) != 0;
|
||||||
|
unread = (flags & MESSAGE_FLAG_UNREAD) != 0;
|
||||||
|
if (id < 0) {
|
||||||
|
fwd_msg_id = stream.readInt32();
|
||||||
|
}
|
||||||
|
if (id < 0 || (media != null && !(media instanceof TL_messageMediaEmpty) && message != null && message.length() != 0 && message.startsWith("-1"))) {
|
||||||
|
attachPath = stream.readString();
|
||||||
|
}
|
||||||
|
if (id < 0 && message.length() > 6 && media instanceof TL_messageMediaVideo) {
|
||||||
|
videoEditedInfo = new VideoEditedInfo();
|
||||||
|
videoEditedInfo.parseString(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt32(flags);
|
||||||
|
stream.writeInt32(id);
|
||||||
|
stream.writeInt32(fwd_from_id);
|
||||||
|
stream.writeInt32(fwd_date);
|
||||||
|
stream.writeInt32(from_id);
|
||||||
|
to_id.serializeToStream(stream);
|
||||||
|
stream.writeInt32(date);
|
||||||
|
stream.writeString(message);
|
||||||
|
media.serializeToStream(stream);
|
||||||
|
if (id < 0) {
|
||||||
|
stream.writeInt32(fwd_msg_id);
|
||||||
|
}
|
||||||
|
stream.writeString(attachPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_message extends Message {
|
||||||
|
public static int constructor = 0x567699b3;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
flags = stream.readInt32();
|
||||||
|
id = stream.readInt32();
|
||||||
|
from_id = stream.readInt32();
|
||||||
|
to_id = (Peer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
date = stream.readInt32();
|
||||||
|
message = stream.readString();
|
||||||
|
media = (MessageMedia)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
out = (flags & 2) != 0;
|
||||||
|
unread = (flags & 1) != 0;
|
||||||
|
if (id < 0 || (media != null && !(media instanceof TL_messageMediaEmpty) && message != null && message.length() != 0 && message.startsWith("-1"))) {
|
||||||
|
attachPath = stream.readString();
|
||||||
|
}
|
||||||
|
if (id < 0 && message.length() > 6 && media instanceof TL_messageMediaVideo) {
|
||||||
|
videoEditedInfo = new VideoEditedInfo();
|
||||||
|
videoEditedInfo.parseString(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt32(flags);
|
||||||
|
stream.writeInt32(id);
|
||||||
|
stream.writeInt32(from_id);
|
||||||
|
to_id.serializeToStream(stream);
|
||||||
|
stream.writeInt32(date);
|
||||||
|
stream.writeString(message);
|
||||||
|
media.serializeToStream(stream);
|
||||||
|
stream.writeString(attachPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_messageService extends Message {
|
||||||
|
public static int constructor = 0x1d86f70e;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
flags = stream.readInt32();
|
||||||
|
id = stream.readInt32();
|
||||||
|
from_id = stream.readInt32();
|
||||||
|
to_id = (Peer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
date = stream.readInt32();
|
||||||
|
action = (MessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
out = (flags & 2) != 0;
|
||||||
|
unread = (flags & 1) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt32(flags);
|
||||||
|
stream.writeInt32(id);
|
||||||
|
stream.writeInt32(from_id);
|
||||||
|
to_id.serializeToStream(stream);
|
||||||
|
stream.writeInt32(date);
|
||||||
|
action.serializeToStream(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_messageService_old extends TL_messageService {
|
||||||
|
public static int constructor = 0x9f8d60bb;
|
||||||
|
|
||||||
|
|
||||||
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
id = stream.readInt32();
|
||||||
|
from_id = stream.readInt32();
|
||||||
|
to_id = (Peer)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
out = stream.readBool();
|
||||||
|
unread = stream.readBool();
|
||||||
|
date = stream.readInt32();
|
||||||
|
action = (MessageAction)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void serializeToStream(AbsSerializedData stream) {
|
||||||
|
stream.writeInt32(constructor);
|
||||||
|
stream.writeInt32(id);
|
||||||
|
stream.writeInt32(from_id);
|
||||||
|
to_id.serializeToStream(stream);
|
||||||
|
stream.writeBool(out);
|
||||||
|
stream.writeBool(unread);
|
||||||
|
stream.writeInt32(date);
|
||||||
|
action.serializeToStream(stream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TL_messageForwarded_old extends TL_messageForwarded {
|
||||||
public static int constructor = 0x5f46804;
|
public static int constructor = 0x5f46804;
|
||||||
|
|
||||||
|
|
||||||
|
@ -8589,7 +8965,7 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TL_message extends Message {
|
public static class TL_message_old extends TL_message {
|
||||||
public static int constructor = 0x22eb6aba;
|
public static int constructor = 0x22eb6aba;
|
||||||
|
|
||||||
public void readParams(AbsSerializedData stream) {
|
public void readParams(AbsSerializedData stream) {
|
||||||
|
@ -9226,8 +9602,8 @@ public class TLRPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class invokeWithLayer14 extends TLObject {
|
public static class invokeWithLayer17 extends TLObject {
|
||||||
public static int constructor = 0x2b9b08fa;
|
public static int constructor = 0x50858a19;
|
||||||
|
|
||||||
public TLObject query;
|
public TLObject query;
|
||||||
|
|
||||||
|
|
|
@ -530,7 +530,7 @@ public class Utilities {
|
||||||
private static File getAlbumDir() {
|
private static File getAlbumDir() {
|
||||||
File storageDir = null;
|
File storageDir = null;
|
||||||
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
|
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
|
||||||
storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), LocaleController.getString("AppName", R.string.AppName));
|
storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Telegram");
|
||||||
if (storageDir != null) {
|
if (storageDir != null) {
|
||||||
if (!storageDir.mkdirs()) {
|
if (!storageDir.mkdirs()) {
|
||||||
if (!storageDir.exists()){
|
if (!storageDir.exists()){
|
||||||
|
@ -644,7 +644,6 @@ public class Utilities {
|
||||||
if (name == null && name2 == null) {
|
if (name == null && name2 == null) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
int index;
|
|
||||||
SpannableStringBuilder builder = new SpannableStringBuilder();
|
SpannableStringBuilder builder = new SpannableStringBuilder();
|
||||||
String wholeString = name;
|
String wholeString = name;
|
||||||
if (wholeString == null || wholeString.length() == 0) {
|
if (wholeString == null || wholeString.length() == 0) {
|
||||||
|
@ -653,28 +652,34 @@ public class Utilities {
|
||||||
wholeString += " " + name2;
|
wholeString += " " + name2;
|
||||||
}
|
}
|
||||||
wholeString = wholeString.trim();
|
wholeString = wholeString.trim();
|
||||||
String[] args = wholeString.split(" ");
|
String lower = " " + wholeString.toLowerCase();
|
||||||
|
|
||||||
for (String arg : args) {
|
int index = -1;
|
||||||
String str = arg;
|
int lastIndex = 0;
|
||||||
if (str != null) {
|
while ((index = lower.indexOf(" " + q, lastIndex)) != -1) {
|
||||||
String lower = str.toLowerCase();
|
int idx = index - (index == 0 ? 0 : 1);
|
||||||
if (lower.startsWith(q)) {
|
int end = q.length() + (index == 0 ? 0 : 1) + idx;
|
||||||
if (builder.length() != 0) {
|
|
||||||
builder.append(" ");
|
if (lastIndex != 0 && lastIndex != idx + 1) {
|
||||||
}
|
builder.append(wholeString.substring(lastIndex, idx));
|
||||||
String query = str.substring(0, q.length());
|
} else if (lastIndex == 0 && idx != 0) {
|
||||||
builder.append(Html.fromHtml("<font color=\"#357aa8\">" + query + "</font>"));
|
builder.append(wholeString.substring(0, idx));
|
||||||
str = str.substring(q.length());
|
|
||||||
builder.append(str);
|
|
||||||
} else {
|
|
||||||
if (builder.length() != 0) {
|
|
||||||
builder.append(" ");
|
|
||||||
}
|
|
||||||
builder.append(str);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String query = wholeString.substring(idx, end);
|
||||||
|
if (query.startsWith(" ")) {
|
||||||
|
builder.append(" ");
|
||||||
|
}
|
||||||
|
query.trim();
|
||||||
|
builder.append(Html.fromHtml("<font color=\"#357aa8\">" + query + "</font>"));
|
||||||
|
|
||||||
|
lastIndex = end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lastIndex != -1 && lastIndex != wholeString.length()) {
|
||||||
|
builder.append(wholeString.substring(lastIndex, wholeString.length()));
|
||||||
|
}
|
||||||
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,8 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter {
|
||||||
|
|
||||||
for (TLRPC.TL_contact contact : contactsCopy) {
|
for (TLRPC.TL_contact contact : contactsCopy) {
|
||||||
TLRPC.User user = MessagesController.getInstance().getUser(contact.user_id);
|
TLRPC.User user = MessagesController.getInstance().getUser(contact.user_id);
|
||||||
if (user.first_name != null && user.first_name.toLowerCase().startsWith(q) || user.last_name != null && user.last_name.toLowerCase().startsWith(q)) {
|
String name = ContactsController.formatName(user.first_name, user.last_name).toLowerCase();
|
||||||
|
if (name.startsWith(q) || name.contains(" " + q)) {
|
||||||
if (user.id == UserConfig.getClientUserId()) {
|
if (user.id == UserConfig.getClientUserId()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -354,9 +354,9 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
|
||||||
if (audioUser.photo != null) {
|
if (audioUser.photo != null) {
|
||||||
currentPhoto = audioUser.photo.photo_small;
|
currentPhoto = audioUser.photo.photo_small;
|
||||||
}
|
}
|
||||||
avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)));
|
avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false);
|
||||||
} else {
|
} else {
|
||||||
avatarImage.setImage((TLRPC.FileLocation)null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)));
|
avatarImage.setImage((TLRPC.FileLocation)null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (messageObject.isOut()) {
|
if (messageObject.isOut()) {
|
||||||
|
|
|
@ -265,9 +265,9 @@ public class ChatBaseCell extends BaseCell {
|
||||||
} else {
|
} else {
|
||||||
currentPhoto = null;
|
currentPhoto = null;
|
||||||
}
|
}
|
||||||
avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(currentUser.id)));
|
avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(currentUser.id)), false);
|
||||||
} else {
|
} else {
|
||||||
avatarImage.setImage((TLRPC.FileLocation)null, "50_50", null);
|
avatarImage.setImage(null, "50_50", null, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -310,9 +310,9 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
|
||||||
cancelLoading = false;
|
cancelLoading = false;
|
||||||
if (currentMessageObject.type == 1) {
|
if (currentMessageObject.type == 1) {
|
||||||
if (currentMessageObject.imagePreview != null) {
|
if (currentMessageObject.imagePreview != null) {
|
||||||
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, new BitmapDrawable(currentMessageObject.imagePreview), currentPhotoObject.photoOwner.size);
|
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, new BitmapDrawable(currentMessageObject.imagePreview), currentPhotoObject.photoOwner.size, false);
|
||||||
} else {
|
} else {
|
||||||
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, currentMessageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable, currentPhotoObject.photoOwner.size);
|
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, currentMessageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable, currentPhotoObject.photoOwner.size, false);
|
||||||
}
|
}
|
||||||
} else if (currentMessageObject.type == 8 || currentMessageObject.type == 9) {
|
} else if (currentMessageObject.type == 8 || currentMessageObject.type == 9) {
|
||||||
FileLoader.getInstance().loadFile(currentMessageObject.messageOwner.media.document, true);
|
FileLoader.getInstance().loadFile(currentMessageObject.messageOwner.media.document, true);
|
||||||
|
@ -479,7 +479,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
|
||||||
photoImage.setImageBitmap(currentPhotoObject.image);
|
photoImage.setImageBitmap(currentPhotoObject.image);
|
||||||
} else {
|
} else {
|
||||||
currentPhotoFilter = String.format(Locale.US, "%d_%d_b", photoWidth, photoHeight);
|
currentPhotoFilter = String.format(Locale.US, "%d_%d_b", photoWidth, photoHeight);
|
||||||
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, null, 0);
|
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, null, 0, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
photoImage.setImageBitmap((BitmapDrawable)null);
|
photoImage.setImageBitmap((BitmapDrawable)null);
|
||||||
|
@ -572,9 +572,9 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
|
||||||
}
|
}
|
||||||
if (photoExist || MediaController.getInstance().canDownloadMedia(MediaController.AUTODOWNLOAD_MASK_PHOTO)) {
|
if (photoExist || MediaController.getInstance().canDownloadMedia(MediaController.AUTODOWNLOAD_MASK_PHOTO)) {
|
||||||
if (messageObject.imagePreview != null) {
|
if (messageObject.imagePreview != null) {
|
||||||
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, new BitmapDrawable(messageObject.imagePreview), noSize ? 0 : currentPhotoObject.photoOwner.size);
|
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, new BitmapDrawable(messageObject.imagePreview), noSize ? 0 : currentPhotoObject.photoOwner.size, false);
|
||||||
} else {
|
} else {
|
||||||
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, messageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable, noSize ? 0 : currentPhotoObject.photoOwner.size);
|
photoImage.setImage(currentPhotoObject.photoOwner.location, currentPhotoFilter, messageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable, noSize ? 0 : currentPhotoObject.photoOwner.size, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
photoNotSet = true;
|
photoNotSet = true;
|
||||||
|
|
|
@ -215,7 +215,7 @@ public class ChatOrUserCell extends BaseCell {
|
||||||
|
|
||||||
|
|
||||||
lastAvatar = photo;
|
lastAvatar = photo;
|
||||||
avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId));
|
avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId), false);
|
||||||
|
|
||||||
if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) {
|
if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) {
|
||||||
buildLayout();
|
buildLayout();
|
||||||
|
|
|
@ -263,7 +263,7 @@ public class DialogCell extends BaseCell {
|
||||||
placeHolderId = AndroidUtilities.getBroadcastAvatarForId(chat.id);
|
placeHolderId = AndroidUtilities.getBroadcastAvatarForId(chat.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId));
|
avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId), false);
|
||||||
|
|
||||||
if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) {
|
if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) {
|
||||||
buildLayout();
|
buildLayout();
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
package org.telegram.ui;
|
package org.telegram.ui;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.AnimatorSet;
|
||||||
|
import android.animation.ObjectAnimator;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -114,6 +116,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
private View bottomOverlayChat;
|
private View bottomOverlayChat;
|
||||||
private TypingDotsDrawable typingDotsDrawable;
|
private TypingDotsDrawable typingDotsDrawable;
|
||||||
private View emptyViewContainer;
|
private View emptyViewContainer;
|
||||||
|
private ArrayList<View> actionModeViews = new ArrayList<View>();
|
||||||
|
|
||||||
private TextView bottomOverlayText;
|
private TextView bottomOverlayText;
|
||||||
|
|
||||||
|
@ -574,8 +577,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
item.addSubItem(attach_location, LocaleController.getString("ChatLocation", R.string.ChatLocation), R.drawable.ic_attach_location);
|
item.addSubItem(attach_location, LocaleController.getString("ChatLocation", R.string.ChatLocation), R.drawable.ic_attach_location);
|
||||||
menuItem = item;
|
menuItem = item;
|
||||||
|
|
||||||
|
actionModeViews.clear();
|
||||||
|
|
||||||
ActionBarMenu actionMode = actionBarLayer.createActionMode();
|
ActionBarMenu actionMode = actionBarLayer.createActionMode();
|
||||||
actionMode.addItem(-2, R.drawable.ic_ab_done_gray, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(-2, R.drawable.ic_ab_done_gray, R.drawable.bar_selector_mode));
|
||||||
|
|
||||||
FrameLayout layout = new FrameLayout(actionMode.getContext());
|
FrameLayout layout = new FrameLayout(actionMode.getContext());
|
||||||
layout.setBackgroundColor(0xffe5e5e5);
|
layout.setBackgroundColor(0xffe5e5e5);
|
||||||
|
@ -587,6 +592,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
layoutParams.bottomMargin = AndroidUtilities.dp(12);
|
layoutParams.bottomMargin = AndroidUtilities.dp(12);
|
||||||
layoutParams.gravity = Gravity.CENTER_VERTICAL;
|
layoutParams.gravity = Gravity.CENTER_VERTICAL;
|
||||||
layout.setLayoutParams(layoutParams);
|
layout.setLayoutParams(layoutParams);
|
||||||
|
actionModeViews.add(layout);
|
||||||
|
|
||||||
selectedMessagesCountTextView = new TextView(actionMode.getContext());
|
selectedMessagesCountTextView = new TextView(actionMode.getContext());
|
||||||
selectedMessagesCountTextView.setTextSize(18);
|
selectedMessagesCountTextView.setTextSize(18);
|
||||||
|
@ -610,12 +616,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
selectedMessagesCountTextView.setLayoutParams(layoutParams);
|
selectedMessagesCountTextView.setLayoutParams(layoutParams);
|
||||||
|
|
||||||
if (currentEncryptedChat == null) {
|
if (currentEncryptedChat == null) {
|
||||||
actionMode.addItem(copy, R.drawable.ic_ab_fwd_copy, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(copy, R.drawable.ic_ab_fwd_copy, R.drawable.bar_selector_mode));
|
||||||
actionMode.addItem(forward, R.drawable.ic_ab_fwd_forward, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(forward, R.drawable.ic_ab_fwd_forward, R.drawable.bar_selector_mode));
|
||||||
actionMode.addItem(delete, R.drawable.ic_ab_fwd_delete, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(delete, R.drawable.ic_ab_fwd_delete, R.drawable.bar_selector_mode));
|
||||||
} else {
|
} else {
|
||||||
actionMode.addItem(copy, R.drawable.ic_ab_fwd_copy, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(copy, R.drawable.ic_ab_fwd_copy, R.drawable.bar_selector_mode));
|
||||||
actionMode.addItem(delete, R.drawable.ic_ab_fwd_delete, R.drawable.bar_selector_mode);
|
actionModeViews.add(actionMode.addItem(delete, R.drawable.ic_ab_fwd_delete, R.drawable.bar_selector_mode));
|
||||||
}
|
}
|
||||||
actionMode.getItem(copy).setVisibility(selectedMessagesCanCopyIds.size() != 0 ? View.VISIBLE : View.GONE);
|
actionMode.getItem(copy).setVisibility(selectedMessagesCanCopyIds.size() != 0 ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
|
@ -2886,6 +2892,21 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
actionBarLayer.showActionMode();
|
actionBarLayer.showActionMode();
|
||||||
|
if (Build.VERSION.SDK_INT >= 11) {
|
||||||
|
AnimatorSet animatorSet = new AnimatorSet();
|
||||||
|
ArrayList<Animator> animators = new ArrayList<Animator>();
|
||||||
|
for (int a = 0; a < actionModeViews.size(); a++) {
|
||||||
|
View view = actionModeViews.get(a);
|
||||||
|
if (a < 2) {
|
||||||
|
animators.add(ObjectAnimator.ofFloat(view, "translationX", -AndroidUtilities.dp(56), 0));
|
||||||
|
} else {
|
||||||
|
animators.add(ObjectAnimator.ofFloat(view, "scaleY", 0.1f, 1.0f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
animatorSet.playTogether(animators);
|
||||||
|
animatorSet.setDuration(250);
|
||||||
|
animatorSet.start();
|
||||||
|
}
|
||||||
addToSelectedMessages(message);
|
addToSelectedMessages(message);
|
||||||
updateActionModeTitle();
|
updateActionModeTitle();
|
||||||
updateVisibleRows();
|
updateVisibleRows();
|
||||||
|
|
|
@ -18,6 +18,7 @@ import android.os.Bundle;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
@ -202,6 +203,12 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||||
|
|
||||||
listView = (PinnedHeaderListView)fragmentView.findViewById(R.id.listView);
|
listView = (PinnedHeaderListView)fragmentView.findViewById(R.id.listView);
|
||||||
listView.setEmptyView(emptyTextView);
|
listView.setEmptyView(emptyTextView);
|
||||||
|
emptyTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
listView.setVerticalScrollBarEnabled(false);
|
listView.setVerticalScrollBarEnabled(false);
|
||||||
|
|
||||||
listViewAdapter = new ContactsActivityAdapter(getParentActivity(), onlyUsers, usersAsSections, ignoreUsers);
|
listViewAdapter = new ContactsActivityAdapter(getParentActivity(), onlyUsers, usersAsSections, ignoreUsers);
|
||||||
|
|
|
@ -10,6 +10,7 @@ package org.telegram.ui;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
|
@ -193,6 +194,12 @@ public class CountrySelectActivity extends BaseFragment {
|
||||||
|
|
||||||
listView = (PinnedHeaderListView)fragmentView.findViewById(R.id.listView);
|
listView = (PinnedHeaderListView)fragmentView.findViewById(R.id.listView);
|
||||||
listView.setEmptyView(emptyTextView);
|
listView.setEmptyView(emptyTextView);
|
||||||
|
emptyTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
listView.setVerticalScrollBarEnabled(false);
|
listView.setVerticalScrollBarEnabled(false);
|
||||||
|
|
||||||
listView.setAdapter(listViewAdapter = new ListAdapter(getParentActivity()));
|
listView.setAdapter(listViewAdapter = new ListAdapter(getParentActivity()));
|
||||||
|
|
|
@ -17,6 +17,7 @@ import android.os.Build;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.StatFs;
|
import android.os.StatFs;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
@ -151,6 +152,12 @@ public class DocumentSelectActivity extends BaseFragment {
|
||||||
fragmentView = inflater.inflate(R.layout.document_select_layout, container, false);
|
fragmentView = inflater.inflate(R.layout.document_select_layout, container, false);
|
||||||
listAdapter = new ListAdapter(getParentActivity());
|
listAdapter = new ListAdapter(getParentActivity());
|
||||||
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
|
emptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
listView = (ListView)fragmentView.findViewById(R.id.listView);
|
listView = (ListView)fragmentView.findViewById(R.id.listView);
|
||||||
listView.setEmptyView(emptyView);
|
listView.setEmptyView(emptyView);
|
||||||
listView.setAdapter(listAdapter);
|
listView.setAdapter(listAdapter);
|
||||||
|
@ -400,10 +407,10 @@ public class DocumentSelectActivity extends BaseFragment {
|
||||||
items.add(fs);
|
items.add(fs);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
File telegramPath = new File(Environment.getExternalStorageDirectory(), LocaleController.getString("AppName", R.string.AppName));
|
File telegramPath = new File(Environment.getExternalStorageDirectory(), "Telegram");
|
||||||
if (telegramPath.exists()) {
|
if (telegramPath.exists()) {
|
||||||
fs = new ListItem();
|
fs = new ListItem();
|
||||||
fs.title = LocaleController.getString("AppName", R.string.AppName);
|
fs.title = "Telegram";
|
||||||
fs.subtitle = telegramPath.toString();
|
fs.subtitle = telegramPath.toString();
|
||||||
fs.icon = R.drawable.ic_directory;
|
fs.icon = R.drawable.ic_directory;
|
||||||
fs.file = telegramPath;
|
fs.file = telegramPath;
|
||||||
|
|
|
@ -24,6 +24,7 @@ import android.text.SpannableStringBuilder;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.text.style.ImageSpan;
|
import android.text.style.ImageSpan;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
|
@ -175,6 +176,12 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen
|
||||||
|
|
||||||
emptyTextView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyTextView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
emptyTextView.setText(LocaleController.getString("NoContacts", R.string.NoContacts));
|
emptyTextView.setText(LocaleController.getString("NoContacts", R.string.NoContacts));
|
||||||
|
emptyTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
userSelectEditText = (EditText)fragmentView.findViewById(R.id.bubble_input_text);
|
userSelectEditText = (EditText)fragmentView.findViewById(R.id.bubble_input_text);
|
||||||
userSelectEditText.setHint(LocaleController.getString("SendMessageTo", R.string.SendMessageTo));
|
userSelectEditText.setHint(LocaleController.getString("SendMessageTo", R.string.SendMessageTo));
|
||||||
if (Build.VERSION.SDK_INT >= 11) {
|
if (Build.VERSION.SDK_INT >= 11) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
|
@ -108,6 +109,12 @@ public class LanguageSelectActivity extends BaseFragment {
|
||||||
listView.setAdapter(listAdapter);
|
listView.setAdapter(listAdapter);
|
||||||
emptyTextView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyTextView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
listView.setEmptyView(emptyTextView);
|
listView.setEmptyView(emptyTextView);
|
||||||
|
emptyTextView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
searchListViewAdapter = new SearchAdapter(getParentActivity());
|
searchListViewAdapter = new SearchAdapter(getParentActivity());
|
||||||
|
|
||||||
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
|
|
|
@ -583,6 +583,11 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
if (PhotoViewer.getInstance().isVisible()) {
|
if (PhotoViewer.getInstance().isVisible()) {
|
||||||
PhotoViewer.getInstance().closePhoto(false);
|
PhotoViewer.getInstance().closePhoto(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AndroidUtilities.isTablet()) {
|
||||||
|
actionBarLayout.showLastFragment();
|
||||||
|
rightActionBarLayout.showLastFragment();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (open_settings != 0) {
|
if (open_settings != 0) {
|
||||||
actionBarLayout.presentFragment(new SettingsActivity(), false, true, true);
|
actionBarLayout.presentFragment(new SettingsActivity(), false, true, true);
|
||||||
|
@ -745,6 +750,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
|
|
||||||
if (AndroidUtilities.isSmallTablet() && actionBarLayout.fragmentsStack.size() == 2) {
|
if (AndroidUtilities.isSmallTablet() && actionBarLayout.fragmentsStack.size() == 2) {
|
||||||
BaseFragment chatFragment = actionBarLayout.fragmentsStack.get(1);
|
BaseFragment chatFragment = actionBarLayout.fragmentsStack.get(1);
|
||||||
|
chatFragment.onPause();
|
||||||
actionBarLayout.fragmentsStack.remove(1);
|
actionBarLayout.fragmentsStack.remove(1);
|
||||||
actionBarLayout.showLastFragment();
|
actionBarLayout.showLastFragment();
|
||||||
rightActionBarLayout.fragmentsStack.add(chatFragment);
|
rightActionBarLayout.fragmentsStack.add(chatFragment);
|
||||||
|
@ -770,6 +776,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
|
|
||||||
if (rightActionBarLayout.fragmentsStack.size() == 1) {
|
if (rightActionBarLayout.fragmentsStack.size() == 1) {
|
||||||
BaseFragment chatFragment = rightActionBarLayout.fragmentsStack.get(0);
|
BaseFragment chatFragment = rightActionBarLayout.fragmentsStack.get(0);
|
||||||
|
chatFragment.onPause();
|
||||||
rightActionBarLayout.fragmentsStack.remove(0);
|
rightActionBarLayout.fragmentsStack.remove(0);
|
||||||
actionBarLayout.presentFragment(chatFragment, false, true, false);
|
actionBarLayout.presentFragment(chatFragment, false, true, false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -107,6 +108,12 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
|
||||||
|
|
||||||
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
emptyView.setText(LocaleController.getString("NoMedia", R.string.NoMedia));
|
emptyView.setText(LocaleController.getString("NoMedia", R.string.NoMedia));
|
||||||
|
emptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
listView = (GridView)fragmentView.findViewById(R.id.media_grid);
|
listView = (GridView)fragmentView.findViewById(R.id.media_grid);
|
||||||
progressView = fragmentView.findViewById(R.id.progressLayout);
|
progressView = fragmentView.findViewById(R.id.progressLayout);
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
|
@ -51,7 +52,7 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
private MessagesAdapter messagesListViewAdapter;
|
private MessagesAdapter messagesListViewAdapter;
|
||||||
private TextView searchEmptyView;
|
private TextView searchEmptyView;
|
||||||
private View progressView;
|
private View progressView;
|
||||||
private View empryView;
|
private View emptyView;
|
||||||
private String selectAlertString;
|
private String selectAlertString;
|
||||||
private String selectAlertStringGroup;
|
private String selectAlertStringGroup;
|
||||||
private boolean serverOnly = false;
|
private boolean serverOnly = false;
|
||||||
|
@ -136,8 +137,8 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
if (messagesListView != null) {
|
if (messagesListView != null) {
|
||||||
messagesListView.setEmptyView(searchEmptyView);
|
messagesListView.setEmptyView(searchEmptyView);
|
||||||
}
|
}
|
||||||
if (empryView != null) {
|
if (emptyView != null) {
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +148,7 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
searching = false;
|
searching = false;
|
||||||
searchWas = false;
|
searchWas = false;
|
||||||
if (messagesListView != null) {
|
if (messagesListView != null) {
|
||||||
messagesListView.setEmptyView(empryView);
|
messagesListView.setEmptyView(emptyView);
|
||||||
searchEmptyView.setVisibility(View.GONE);
|
searchEmptyView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
if (messagesListViewAdapter != null) {
|
if (messagesListViewAdapter != null) {
|
||||||
|
@ -166,7 +167,7 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
}
|
}
|
||||||
if (searchEmptyView != null) {
|
if (searchEmptyView != null) {
|
||||||
messagesListView.setEmptyView(searchEmptyView);
|
messagesListView.setEmptyView(searchEmptyView);
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,8 +239,20 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
progressView = fragmentView.findViewById(R.id.progressLayout);
|
progressView = fragmentView.findViewById(R.id.progressLayout);
|
||||||
messagesListViewAdapter.notifyDataSetChanged();
|
messagesListViewAdapter.notifyDataSetChanged();
|
||||||
searchEmptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
searchEmptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
|
searchEmptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
searchEmptyView.setText(LocaleController.getString("NoResult", R.string.NoResult));
|
searchEmptyView.setText(LocaleController.getString("NoResult", R.string.NoResult));
|
||||||
empryView = fragmentView.findViewById(R.id.list_empty_view);
|
emptyView = fragmentView.findViewById(R.id.list_empty_view);
|
||||||
|
emptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
TextView textView = (TextView)fragmentView.findViewById(R.id.list_empty_view_text1);
|
TextView textView = (TextView)fragmentView.findViewById(R.id.list_empty_view_text1);
|
||||||
textView.setText(LocaleController.getString("NoChats", R.string.NoChats));
|
textView.setText(LocaleController.getString("NoChats", R.string.NoChats));
|
||||||
textView = (TextView)fragmentView.findViewById(R.id.list_empty_view_text2);
|
textView = (TextView)fragmentView.findViewById(R.id.list_empty_view_text2);
|
||||||
|
@ -248,14 +261,14 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
if (MessagesController.getInstance().loadingDialogs && MessagesController.getInstance().dialogs.isEmpty()) {
|
if (MessagesController.getInstance().loadingDialogs && MessagesController.getInstance().dialogs.isEmpty()) {
|
||||||
messagesListView.setEmptyView(null);
|
messagesListView.setEmptyView(null);
|
||||||
searchEmptyView.setVisibility(View.GONE);
|
searchEmptyView.setVisibility(View.GONE);
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
progressView.setVisibility(View.VISIBLE);
|
progressView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
if (searching && searchWas) {
|
if (searching && searchWas) {
|
||||||
messagesListView.setEmptyView(searchEmptyView);
|
messagesListView.setEmptyView(searchEmptyView);
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
messagesListView.setEmptyView(empryView);
|
messagesListView.setEmptyView(emptyView);
|
||||||
searchEmptyView.setVisibility(View.GONE);
|
searchEmptyView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
progressView.setVisibility(View.GONE);
|
progressView.setVisibility(View.GONE);
|
||||||
|
@ -460,15 +473,15 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
|
||||||
messagesListView.setEmptyView(null);
|
messagesListView.setEmptyView(null);
|
||||||
}
|
}
|
||||||
searchEmptyView.setVisibility(View.GONE);
|
searchEmptyView.setVisibility(View.GONE);
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
progressView.setVisibility(View.VISIBLE);
|
progressView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
if (messagesListView.getEmptyView() == null) {
|
if (messagesListView.getEmptyView() == null) {
|
||||||
if (searching && searchWas) {
|
if (searching && searchWas) {
|
||||||
messagesListView.setEmptyView(searchEmptyView);
|
messagesListView.setEmptyView(searchEmptyView);
|
||||||
empryView.setVisibility(View.GONE);
|
emptyView.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
messagesListView.setEmptyView(empryView);
|
messagesListView.setEmptyView(emptyView);
|
||||||
searchEmptyView.setVisibility(View.GONE);
|
searchEmptyView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -119,6 +120,12 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen
|
||||||
fragmentView = inflater.inflate(R.layout.photo_picker_layout, container, false);
|
fragmentView = inflater.inflate(R.layout.photo_picker_layout, container, false);
|
||||||
|
|
||||||
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
|
emptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
emptyView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos));
|
emptyView.setText(LocaleController.getString("NoPhotos", R.string.NoPhotos));
|
||||||
listView = (GridView)fragmentView.findViewById(R.id.media_grid);
|
listView = (GridView)fragmentView.findViewById(R.id.media_grid);
|
||||||
progressView = fragmentView.findViewById(R.id.progressLayout);
|
progressView = fragmentView.findViewById(R.id.progressLayout);
|
||||||
|
|
|
@ -513,7 +513,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
if (currentMessageObject != null) {
|
if (currentMessageObject != null) {
|
||||||
f = FileLoader.getPathToMessage(currentMessageObject.messageOwner);
|
f = FileLoader.getPathToMessage(currentMessageObject.messageOwner);
|
||||||
} else if (currentFileLocation != null) {
|
} else if (currentFileLocation != null) {
|
||||||
f = FileLoader.getPathToAttach(currentFileLocation);
|
f = FileLoader.getPathToAttach(currentFileLocation, avatarsUserId != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f != null && f.exists()) {
|
if (f != null && f.exists()) {
|
||||||
|
@ -572,7 +572,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (currentFileLocation != null) {
|
} else if (currentFileLocation != null) {
|
||||||
File f = FileLoader.getPathToAttach(currentFileLocation);
|
File f = FileLoader.getPathToAttach(currentFileLocation, avatarsUserId != 0);
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -616,7 +616,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
if (fileLocation == null) {
|
if (fileLocation == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
File f = FileLoader.getPathToAttach(fileLocation);
|
File f = FileLoader.getPathToAttach(fileLocation, avatarsUserId != 0);
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||||
if (f.toString().endsWith("mp4")) {
|
if (f.toString().endsWith("mp4")) {
|
||||||
|
@ -1341,7 +1341,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
if (currentMessageObject != null) {
|
if (currentMessageObject != null) {
|
||||||
f = FileLoader.getPathToMessage(currentMessageObject.messageOwner);
|
f = FileLoader.getPathToMessage(currentMessageObject.messageOwner);
|
||||||
} else if (currentFileLocation != null) {
|
} else if (currentFileLocation != null) {
|
||||||
f = FileLoader.getPathToAttach(currentFileLocation);
|
f = FileLoader.getPathToAttach(currentFileLocation, avatarsUserId != 0);
|
||||||
}
|
}
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
progressBar.setVisibility(View.GONE);
|
progressBar.setVisibility(View.GONE);
|
||||||
|
@ -1399,7 +1399,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
if (currentThumb != null && imageReceiver == centerImage) {
|
if (currentThumb != null && imageReceiver == centerImage) {
|
||||||
placeHolder = currentThumb;
|
placeHolder = currentThumb;
|
||||||
}
|
}
|
||||||
imageReceiver.setImage(fileLocation, null, placeHolder != null ? new BitmapDrawable(null, placeHolder) : null, 0);
|
imageReceiver.setImage(fileLocation, null, placeHolder != null ? new BitmapDrawable(null, placeHolder) : null, 0, true);
|
||||||
} else {
|
} else {
|
||||||
imageReceiver.setImageBitmap(parentActivity.getResources().getDrawable(R.drawable.photoview_placeholder));
|
imageReceiver.setImageBitmap(parentActivity.getResources().getDrawable(R.drawable.photoview_placeholder));
|
||||||
}
|
}
|
||||||
|
@ -1414,7 +1414,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||||
if (size[0] == 0) {
|
if (size[0] == 0) {
|
||||||
size[0] = -1;
|
size[0] = -1;
|
||||||
}
|
}
|
||||||
imageReceiver.setImage(fileLocation, null, placeHolder != null ? new BitmapDrawable(null, placeHolder) : null, size[0]);
|
imageReceiver.setImage(fileLocation, null, placeHolder != null ? new BitmapDrawable(null, placeHolder) : null, size[0], avatarsUserId != 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (size[0] == 0) {
|
if (size[0] == 0) {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
@ -88,6 +89,12 @@ public class SettingsBlockedUsersActivity extends BaseFragment implements Notifi
|
||||||
listView = (ListView)fragmentView.findViewById(R.id.listView);
|
listView = (ListView)fragmentView.findViewById(R.id.listView);
|
||||||
progressView = fragmentView.findViewById(R.id.progressLayout);
|
progressView = fragmentView.findViewById(R.id.progressLayout);
|
||||||
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
|
||||||
|
emptyView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
emptyView.setText(LocaleController.getString("NoBlocked", R.string.NoBlocked));
|
emptyView.setText(LocaleController.getString("NoBlocked", R.string.NoBlocked));
|
||||||
if (MessagesController.getInstance().loadingBlockedUsers) {
|
if (MessagesController.getInstance().loadingBlockedUsers) {
|
||||||
progressView.setVisibility(View.VISIBLE);
|
progressView.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -13,6 +13,7 @@ import android.app.Activity;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.graphics.SurfaceTexture;
|
import android.graphics.SurfaceTexture;
|
||||||
|
import android.media.MediaCodecInfo;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -41,6 +42,7 @@ import com.googlecode.mp4parser.util.Path;
|
||||||
|
|
||||||
import org.telegram.android.AndroidUtilities;
|
import org.telegram.android.AndroidUtilities;
|
||||||
import org.telegram.android.LocaleController;
|
import org.telegram.android.LocaleController;
|
||||||
|
import org.telegram.android.MediaController;
|
||||||
import org.telegram.messenger.FileLog;
|
import org.telegram.messenger.FileLog;
|
||||||
import org.telegram.messenger.R;
|
import org.telegram.messenger.R;
|
||||||
import org.telegram.messenger.Utilities;
|
import org.telegram.messenger.Utilities;
|
||||||
|
@ -234,7 +236,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (delegate != null) {
|
if (delegate != null) {
|
||||||
if (compressVideo.getVisibility() == View.VISIBLE && !compressVideo.isChecked()) {
|
if (compressVideo.getVisibility() == View.GONE || compressVideo.getVisibility() == View.VISIBLE && !compressVideo.isChecked()) {
|
||||||
delegate.didFinishEditVideo(videoPath, startTime, endTime, originalWidth, originalHeight, rotationValue, originalWidth, originalHeight, bitrate, estimatedSize, esimatedDuration);
|
delegate.didFinishEditVideo(videoPath, startTime, endTime, originalWidth, originalHeight, rotationValue, originalWidth, originalHeight, bitrate, estimatedSize, esimatedDuration);
|
||||||
} else {
|
} else {
|
||||||
delegate.didFinishEditVideo(videoPath, startTime, endTime, resultWidth, resultHeight, rotationValue, originalWidth, originalHeight, bitrate, estimatedSize, esimatedDuration);
|
delegate.didFinishEditVideo(videoPath, startTime, endTime, resultWidth, resultHeight, rotationValue, originalWidth, originalHeight, bitrate, estimatedSize, esimatedDuration);
|
||||||
|
@ -272,6 +274,27 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
|
||||||
updateVideoEditedInfo();
|
updateVideoEditedInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT < 18) {
|
||||||
|
MediaCodecInfo codecInfo = MediaController.selectCodec(MediaController.MIME_TYPE);
|
||||||
|
if (codecInfo == null) {
|
||||||
|
compressVideo.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
String name = codecInfo.getName();
|
||||||
|
if (name.equals("OMX.google.h264.encoder") ||
|
||||||
|
name.equals("OMX.ST.VFM.H264Enc") ||
|
||||||
|
name.equals("OMX.Exynos.avc.enc") ||
|
||||||
|
name.equals("OMX.MARVELL.VIDEO.HW.CODA7542ENCODER") ||
|
||||||
|
name.equals("OMX.MARVELL.VIDEO.H264ENCODER")) {
|
||||||
|
compressVideo.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
if (MediaController.selectColorFormat(codecInfo, MediaController.MIME_TYPE) == 0) {
|
||||||
|
compressVideo.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TextView titleTextView = (TextView) fragmentView.findViewById(R.id.original_title);
|
TextView titleTextView = (TextView) fragmentView.findViewById(R.id.original_title);
|
||||||
titleTextView.setText(LocaleController.getString("OriginalVideo", R.string.OriginalVideo));
|
titleTextView.setText(LocaleController.getString("OriginalVideo", R.string.OriginalVideo));
|
||||||
titleTextView = (TextView) fragmentView.findViewById(R.id.edited_title);
|
titleTextView = (TextView) fragmentView.findViewById(R.id.edited_title);
|
||||||
|
@ -457,7 +480,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
|
||||||
int width = 0;
|
int width = 0;
|
||||||
int height = 0;
|
int height = 0;
|
||||||
|
|
||||||
if (compressVideo.getVisibility() == View.VISIBLE && !compressVideo.isChecked()) {
|
if (compressVideo.getVisibility() == View.GONE || compressVideo.getVisibility() == View.VISIBLE && !compressVideo.isChecked()) {
|
||||||
width = rotationValue == 90 || rotationValue == 270 ? originalHeight : originalWidth;
|
width = rotationValue == 90 || rotationValue == 270 ? originalHeight : originalWidth;
|
||||||
height = rotationValue == 90 || rotationValue == 270 ? originalWidth : originalHeight;
|
height = rotationValue == 90 || rotationValue == 270 ? originalWidth : originalHeight;
|
||||||
estimatedSize = (int)(originalSize * ((float)esimatedDuration / videoDuration));
|
estimatedSize = (int)(originalSize * ((float)esimatedDuration / videoDuration));
|
||||||
|
|
|
@ -69,7 +69,7 @@ public class BackupImageView extends View {
|
||||||
} else if (placeholder != 0) {
|
} else if (placeholder != 0) {
|
||||||
placeholderDrawable = getResources().getDrawable(placeholder);
|
placeholderDrawable = getResources().getDrawable(placeholder);
|
||||||
}
|
}
|
||||||
imageReceiver.setImage(path, httpUrl, filter, placeholderDrawable, size);
|
imageReceiver.setImage(path, httpUrl, filter, placeholderDrawable, size, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageBitmap(Bitmap bitmap) {
|
public void setImageBitmap(Bitmap bitmap) {
|
||||||
|
|
|
@ -9,10 +9,14 @@
|
||||||
package org.telegram.ui.Views;
|
package org.telegram.ui.Views;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.AnimatorListenerAdapter;
|
||||||
|
import android.animation.AnimatorSet;
|
||||||
|
import android.animation.ObjectAnimator;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -63,6 +67,8 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
private View slideText;
|
private View slideText;
|
||||||
private PowerManager.WakeLock mWakeLock = null;
|
private PowerManager.WakeLock mWakeLock = null;
|
||||||
private SizeNotifierRelativeLayout sizeNotifierRelativeLayout;
|
private SizeNotifierRelativeLayout sizeNotifierRelativeLayout;
|
||||||
|
private Object runningAnimation = null;
|
||||||
|
private int runningAnimationType = 0;
|
||||||
|
|
||||||
private int keyboardHeight = 0;
|
private int keyboardHeight = 0;
|
||||||
private int keyboardHeightLand = 0;
|
private int keyboardHeightLand = 0;
|
||||||
|
@ -124,7 +130,6 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
messsageEditText.setHint(LocaleController.getString("TypeMessage", R.string.TypeMessage));
|
messsageEditText.setHint(LocaleController.getString("TypeMessage", R.string.TypeMessage));
|
||||||
|
|
||||||
sendButton = (ImageButton)containerView.findViewById(R.id.chat_send_button);
|
sendButton = (ImageButton)containerView.findViewById(R.id.chat_send_button);
|
||||||
sendButton.setEnabled(false);
|
|
||||||
sendButton.setVisibility(View.INVISIBLE);
|
sendButton.setVisibility(View.INVISIBLE);
|
||||||
emojiButton = (ImageView)containerView.findViewById(R.id.chat_smile_button);
|
emojiButton = (ImageView)containerView.findViewById(R.id.chat_smile_button);
|
||||||
audioSendButton = (ImageButton)containerView.findViewById(R.id.chat_audio_send_button);
|
audioSendButton = (ImageButton)containerView.findViewById(R.id.chat_audio_send_button);
|
||||||
|
@ -261,8 +266,7 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
||||||
String message = getTrimmedString(charSequence.toString());
|
String message = getTrimmedString(charSequence.toString());
|
||||||
sendButton.setEnabled(message.length() != 0);
|
checkSendButton(true);
|
||||||
checkSendButton();
|
|
||||||
|
|
||||||
if (message.length() != 0 && lastTypingTimeSend < System.currentTimeMillis() - 5000 && !ignoreTextChange) {
|
if (message.length() != 0 && lastTypingTimeSend < System.currentTimeMillis() - 5000 && !ignoreTextChange) {
|
||||||
int currentTime = ConnectionsManager.getInstance().getCurrentTime();
|
int currentTime = ConnectionsManager.getInstance().getCurrentTime();
|
||||||
|
@ -299,7 +303,7 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
checkSendButton();
|
checkSendButton(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage() {
|
private void sendMessage() {
|
||||||
|
@ -339,14 +343,107 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
return src;
|
return src;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkSendButton() {
|
private void checkSendButton(boolean animated) {
|
||||||
String message = getTrimmedString(messsageEditText.getText().toString());
|
String message = getTrimmedString(messsageEditText.getText().toString());
|
||||||
if (message.length() > 0) {
|
if (message.length() > 0) {
|
||||||
sendButton.setVisibility(View.VISIBLE);
|
if (audioSendButton.getVisibility() == View.VISIBLE) {
|
||||||
audioSendButton.setVisibility(View.INVISIBLE);
|
if (Build.VERSION.SDK_INT >= 11 && animated) {
|
||||||
} else {
|
if (runningAnimationType == 1) {
|
||||||
sendButton.setVisibility(View.INVISIBLE);
|
return;
|
||||||
audioSendButton.setVisibility(View.VISIBLE);
|
}
|
||||||
|
if (runningAnimation != null) {
|
||||||
|
((AnimatorSet)runningAnimation).cancel();
|
||||||
|
runningAnimation = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
sendButton.setVisibility(View.VISIBLE);
|
||||||
|
AnimatorSet animatorSet = new AnimatorSet();
|
||||||
|
runningAnimation = animatorSet;
|
||||||
|
runningAnimationType = 1;
|
||||||
|
animatorSet.playTogether(
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "scaleX", 0.1f),
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "scaleY", 0.1f),
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "alpha", 0.0f),
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "scaleX", 1.0f),
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "scaleY", 1.0f),
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "alpha", 1.0f)
|
||||||
|
);
|
||||||
|
|
||||||
|
animatorSet.setDuration(200);
|
||||||
|
animatorSet.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
if (animation == runningAnimation) {
|
||||||
|
sendButton.setVisibility(View.VISIBLE);
|
||||||
|
audioSendButton.setVisibility(View.INVISIBLE);
|
||||||
|
runningAnimation = null;
|
||||||
|
runningAnimationType = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
animatorSet.start();
|
||||||
|
} else {
|
||||||
|
if (Build.VERSION.SDK_INT >= 11) {
|
||||||
|
audioSendButton.setScaleX(0.1f);
|
||||||
|
audioSendButton.setScaleY(0.1f);
|
||||||
|
audioSendButton.setAlpha(0.0f);
|
||||||
|
sendButton.setScaleX(1.0f);
|
||||||
|
sendButton.setScaleY(1.0f);
|
||||||
|
sendButton.setAlpha(1.0f);
|
||||||
|
}
|
||||||
|
sendButton.setVisibility(View.VISIBLE);
|
||||||
|
audioSendButton.setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (sendButton.getVisibility() == View.VISIBLE) {
|
||||||
|
if (Build.VERSION.SDK_INT >= 11 && animated) {
|
||||||
|
if (runningAnimationType == 2) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runningAnimation != null) {
|
||||||
|
((AnimatorSet)runningAnimation).cancel();
|
||||||
|
runningAnimation = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
audioSendButton.setVisibility(View.VISIBLE);
|
||||||
|
AnimatorSet animatorSet = new AnimatorSet();
|
||||||
|
runningAnimation = animatorSet;
|
||||||
|
runningAnimationType = 2;
|
||||||
|
animatorSet.playTogether(
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "scaleX", 0.1f),
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "scaleY", 0.1f),
|
||||||
|
ObjectAnimator.ofFloat(sendButton, "alpha", 0.0f),
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "scaleX", 1.0f),
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "scaleY", 1.0f),
|
||||||
|
ObjectAnimator.ofFloat(audioSendButton, "alpha", 1.0f)
|
||||||
|
);
|
||||||
|
|
||||||
|
animatorSet.setDuration(200);
|
||||||
|
animatorSet.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationEnd(Animator animation) {
|
||||||
|
if (animation == runningAnimation) {
|
||||||
|
sendButton.setVisibility(View.INVISIBLE);
|
||||||
|
audioSendButton.setVisibility(View.VISIBLE);
|
||||||
|
runningAnimation = null;
|
||||||
|
runningAnimationType = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
animatorSet.start();
|
||||||
|
} else {
|
||||||
|
if (Build.VERSION.SDK_INT >= 11) {
|
||||||
|
sendButton.setScaleX(0.1f);
|
||||||
|
sendButton.setScaleY(0.1f);
|
||||||
|
sendButton.setAlpha(0.0f);
|
||||||
|
audioSendButton.setScaleX(1.0f);
|
||||||
|
audioSendButton.setScaleY(1.0f);
|
||||||
|
audioSendButton.setAlpha(1.0f);
|
||||||
|
}
|
||||||
|
sendButton.setVisibility(View.INVISIBLE);
|
||||||
|
audioSendButton.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:drawable="@drawable/ic_send_disabled" android:state_enabled="false" />
|
|
||||||
<item android:drawable="@drawable/ic_send" />
|
|
||||||
</selector>
|
|
|
@ -133,7 +133,7 @@
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignBottom="@+id/chat_text_edit"
|
android:layout_alignBottom="@+id/chat_text_edit"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:src="@drawable/send_button_states"
|
android:src="@drawable/ic_send"
|
||||||
android:background="@android:color/transparent"/>
|
android:background="@android:color/transparent"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_alignBottom="@+id/chat_text_edit"
|
android:layout_alignBottom="@+id/chat_text_edit"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:src="@drawable/send_button_states"
|
android:src="@drawable/ic_send"
|
||||||
android:background="@android:color/transparent"/>
|
android:background="@android:color/transparent"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
|
|
|
@ -250,7 +250,7 @@
|
||||||
<string name="AskAQuestionInfo">텔레그램에 관한 질문은 자원봉사자들이 답변해 드립니다. 신속한 답변을 위해 노력하지만 답변이 다소 늦을 수 있습니다.<![CDATA[<br><br>]]>일반적인 문제와 <![CDATA[<a href=\"http://telegram.org/faq/ko#g\">해결방법</a>]]>에 대해서는 \'<![CDATA[<a href=\"http://telegram.org/faq/ko#a\">자주 묻는 질문</a>]]>\'을 확인해 보세요.</string>
|
<string name="AskAQuestionInfo">텔레그램에 관한 질문은 자원봉사자들이 답변해 드립니다. 신속한 답변을 위해 노력하지만 답변이 다소 늦을 수 있습니다.<![CDATA[<br><br>]]>일반적인 문제와 <![CDATA[<a href=\"http://telegram.org/faq/ko#g\">해결방법</a>]]>에 대해서는 \'<![CDATA[<a href=\"http://telegram.org/faq/ko#a\">자주 묻는 질문</a>]]>\'을 확인해 보세요.</string>
|
||||||
<string name="AskButton">질문하기</string>
|
<string name="AskButton">질문하기</string>
|
||||||
<string name="TelegramFaq">자주 묻는 질문</string>
|
<string name="TelegramFaq">자주 묻는 질문</string>
|
||||||
<string name="TelegramFaqUrl">https://telegram.org/faq</string>
|
<string name="TelegramFaqUrl">https://telegram.org/faq/ko</string>
|
||||||
<string name="DeleteLocalization">언어를 삭제할까요?</string>
|
<string name="DeleteLocalization">언어를 삭제할까요?</string>
|
||||||
<string name="IncorrectLocalization">언어 파일이 올바르지 않습니다.</string>
|
<string name="IncorrectLocalization">언어 파일이 올바르지 않습니다.</string>
|
||||||
<string name="Enabled">켜기</string>
|
<string name="Enabled">켜기</string>
|
||||||
|
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
||||||
#Mon Jun 09 01:00:32 MSK 2014
|
#Mon Oct 06 17:04:43 MSK 2014
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
|
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip
|
||||||
|
|
Loading…
Reference in a new issue