Commit 6c4c5cf3 authored by DrKLO's avatar DrKLO

Bug fixes

parent 4ddfda63
...@@ -80,7 +80,7 @@ android { ...@@ -80,7 +80,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 377 versionCode 379
versionName "1.9.7" versionName "1.9.7"
} }
} }
...@@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) ...@@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := tmessages.1 LOCAL_MODULE := tmessages.2
LOCAL_CFLAGS := -w -std=gnu99 -O2 -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 LOCAL_CFLAGS := -w -std=gnu99 -O2 -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno
LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -DHAVE_STRCHRNUL=0 LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -DHAVE_STRCHRNUL=0
......
...@@ -229,10 +229,12 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jcl ...@@ -229,10 +229,12 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jcl
AndroidBitmap_unlockPixels(env, bitmap); AndroidBitmap_unlockPixels(env, bitmap);
} }
JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jintArray bitmap, int scale, int format, int width, int height) { JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jobject bitmap, int scale) {
AndroidBitmapInfo info;
int i; int i;
if ((i = AndroidBitmap_getInfo(env, bitmap, &info)) >= 0) {
char *fileName = (*env)->GetStringUTFChars(env, path, NULL); char *fileName = (*env)->GetStringUTFChars(env, path, NULL);
FILE *infile; FILE *infile;
...@@ -244,8 +246,6 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl ...@@ -244,8 +246,6 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
jerr.pub.error_exit = my_error_exit; jerr.pub.error_exit = my_error_exit;
if (!setjmp(jerr.setjmp_buffer)) { if (!setjmp(jerr.setjmp_buffer)) {
unsigned char *bitmapBuf = (*env)->GetPrimitiveArrayCritical(env, bitmap, 0);
if (bitmapBuf) {
jpeg_create_decompress(&cinfo); jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo, infile); jpeg_stdio_src(&cinfo, infile);
...@@ -257,22 +257,16 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl ...@@ -257,22 +257,16 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
jpeg_start_decompress(&cinfo); jpeg_start_decompress(&cinfo);
int row_stride = cinfo.output_width * cinfo.output_components; int row_stride = cinfo.output_width * cinfo.output_components;
JSAMPARRAY buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); JSAMPARRAY buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
int stride = width;
if (format == 0) {
stride *= 4;
} else if (format == 1) {
stride *= 2;
}
unsigned char *pixels = bitmapBuf;
int rowCount = min(cinfo.output_height, height); unsigned char *pixels;
int colCount = min(cinfo.output_width, width); if ((i = AndroidBitmap_lockPixels(env, bitmap, &pixels)) >= 0) {
int rowCount = min(cinfo.output_height, info.height);
int colCount = min(cinfo.output_width, info.width);
while (cinfo.output_scanline < rowCount) { while (cinfo.output_scanline < rowCount) {
jpeg_read_scanlines(&cinfo, buffer, 1); jpeg_read_scanlines(&cinfo, buffer, 1);
if (format == 0) { if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) {
if (cinfo.out_color_space == JCS_GRAYSCALE) { if (cinfo.out_color_space == JCS_GRAYSCALE) {
for (i = 0; i < colCount; i++) { for (i = 0; i < colCount; i++) {
float alpha = buffer[0][i] / 255.0f; float alpha = buffer[0][i] / 255.0f;
...@@ -284,24 +278,26 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl ...@@ -284,24 +278,26 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
} else { } else {
int c = 0; int c = 0;
for (i = 0; i < colCount; i++) { for (i = 0; i < colCount; i++) {
pixels[i * 4] = buffer[0][i * 3 + 2]; pixels[i * 4] = buffer[0][i * 3];
pixels[i * 4 + 1] = buffer[0][i * 3 + 1]; pixels[i * 4 + 1] = buffer[0][i * 3 + 1];
pixels[i * 4 + 2] = buffer[0][i * 3]; pixels[i * 4 + 2] = buffer[0][i * 3 + 2];
pixels[i * 4 + 3] = 255; pixels[i * 4 + 3] = 255;
c += 4; c += 4;
} }
} }
} else if (format == 1) { } else if (info.format == ANDROID_BITMAP_FORMAT_RGB_565) {
} }
pixels += stride; pixels += info.stride;
} }
(*env)->ReleasePrimitiveArrayCritical(env, bitmap, bitmapBuf, 0);
jpeg_finish_decompress(&cinfo); AndroidBitmap_unlockPixels(env, bitmap);
} else { } else {
throwException(env, "can't get bitmap buff"); throwException(env, "AndroidBitmap_lockPixels() failed ! error=%d", i);
} }
jpeg_finish_decompress(&cinfo);
} else { } else {
throwException(env, "the JPEG code has signaled an error"); throwException(env, "the JPEG code has signaled an error");
} }
...@@ -313,4 +309,7 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl ...@@ -313,4 +309,7 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
} }
(*env)->ReleaseStringUTFChars(env, path, fileName); (*env)->ReleaseStringUTFChars(env, path, fileName);
} else {
throwException(env, "AndroidBitmap_getInfo() failed ! error=%d", i);
}
} }
...@@ -23,7 +23,7 @@ import java.util.zip.ZipFile; ...@@ -23,7 +23,7 @@ import java.util.zip.ZipFile;
public class NativeLoader { public class NativeLoader {
private final static int LIB_VERSION = 1; private final static int LIB_VERSION = 2;
private final static String LIB_NAME = "tmessages." + LIB_VERSION; private final static String LIB_NAME = "tmessages." + LIB_VERSION;
private final static String LIB_SO_NAME = "lib" + LIB_NAME + ".so"; private final static String LIB_SO_NAME = "lib" + LIB_NAME + ".so";
private final static String LOCALE_LIB_SO_NAME = "lib" + LIB_NAME + "loc.so"; private final static String LOCALE_LIB_SO_NAME = "lib" + LIB_NAME + "loc.so";
......
...@@ -25,6 +25,7 @@ import java.text.ParsePosition; ...@@ -25,6 +25,7 @@ import java.text.ParsePosition;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
...@@ -371,6 +372,38 @@ public class FastDateParser implements DateParser, Serializable { ...@@ -371,6 +372,38 @@ public class FastDateParser implements DateParser, Serializable {
return regex; return regex;
} }
private static String[] getDisplayNameArray(int field, boolean isLong, Locale locale) {
DateFormatSymbols dfs = new DateFormatSymbols(locale);
switch (field) {
case Calendar.AM_PM:
return dfs.getAmPmStrings();
case Calendar.DAY_OF_WEEK:
return isLong ? dfs.getWeekdays() : dfs.getShortWeekdays();
case Calendar.ERA:
return dfs.getEras();
case Calendar.MONTH:
return isLong ? dfs.getMonths() : dfs.getShortMonths();
}
return null;
}
private static void insertValuesInMap(Map<String, Integer> map, String[] values) {
if (values == null) {
return;
}
for (int i = 0; i < values.length; ++i) {
if (values[i] != null && values[i].length() > 0) {
map.put(values[i], i);
}
}
}
private static Map<String, Integer> getDisplayNames(int field, Locale locale) {
Map<String, Integer> result = new HashMap<String, Integer>();
insertValuesInMap(result, getDisplayNameArray(field, false, locale));
insertValuesInMap(result, getDisplayNameArray(field, true, locale));
return result.isEmpty() ? null : result;
}
/** /**
* Get the short and long values displayed for a field * Get the short and long values displayed for a field
...@@ -381,7 +414,7 @@ public class FastDateParser implements DateParser, Serializable { ...@@ -381,7 +414,7 @@ public class FastDateParser implements DateParser, Serializable {
* @return A Map of the field key / value pairs * @return A Map of the field key / value pairs
*/ */
private static Map<String, Integer> getDisplayNames(final int field, final Calendar definingCalendar, final Locale locale) { private static Map<String, Integer> getDisplayNames(final int field, final Calendar definingCalendar, final Locale locale) {
return definingCalendar.getDisplayNames(field, Calendar.ALL_STYLES, locale); return getDisplayNames(field, locale);
} }
/** /**
......
...@@ -14,6 +14,7 @@ import android.content.Context; ...@@ -14,6 +14,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
...@@ -107,7 +108,7 @@ public class Utilities { ...@@ -107,7 +108,7 @@ public class Utilities {
} }
public native static long doPQNative(long _what); public native static long doPQNative(long _what);
public native static void loadBitmap(String path, int[] bitmap, int scale, int format, int width, int height); public native static void loadBitmap(String path, Bitmap bitmap, int scale);
public native static void blurBitmap(Object bitmap, int radius); public native static void blurBitmap(Object bitmap, int radius);
public native static int convertVideoFrame(ByteBuffer src, ByteBuffer dest, int destFormat, int width, int height, int padding, int swap); public native static int convertVideoFrame(ByteBuffer src, ByteBuffer dest, int destFormat, int width, int height, int padding, int swap);
private native static void aesIgeEncryption(ByteBuffer buffer, byte[] key, byte[] iv, boolean encrypt, int offset, int length); private native static void aesIgeEncryption(ByteBuffer buffer, byte[] key, byte[] iv, boolean encrypt, int offset, int length);
......
...@@ -21,6 +21,7 @@ import android.content.pm.PackageManager; ...@@ -21,6 +21,7 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.PowerManager; import android.os.PowerManager;
...@@ -112,14 +113,17 @@ public class ApplicationLoader extends Application { ...@@ -112,14 +113,17 @@ public class ApplicationLoader extends Application {
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
if (Build.VERSION.SDK_INT < 11) {
java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
}
applicationContext = getApplicationContext(); applicationContext = getApplicationContext();
NativeLoader.initNativeLibs(ApplicationLoader.applicationContext); NativeLoader.initNativeLibs(ApplicationLoader.applicationContext);
applicationHandler = new Handler(applicationContext.getMainLooper()); applicationHandler = new Handler(applicationContext.getMainLooper());
java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
startPushService(); startPushService();
} }
......
...@@ -1321,7 +1321,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ...@@ -1321,7 +1321,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
return 5; return 5;
} }
} }
//return 4; if (messageObject.messageOwner.ttl <= 0) {
return 4;
}
} }
} }
return 2; return 2;
...@@ -2667,7 +2669,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ...@@ -2667,7 +2669,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
} }
} else { } else {
if (i == 0) { if (i == 0) {
processSelectedOption(4);
} else if (i == 1) { } else if (i == 1) {
processSelectedOption(1); processSelectedOption(1);
} }
...@@ -2768,6 +2770,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not ...@@ -2768,6 +2770,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
} else if (option == 4) { } else if (option == 4) {
String fileName = selectedObject.getFileName(); String fileName = selectedObject.getFileName();
String path = selectedObject.messageOwner.attachPath; String path = selectedObject.messageOwner.attachPath;
if (path != null && path.length() > 0) {
File temp = new File(path);
if (!temp.exists()) {
path = null;
}
}
if (path == null || path.length() == 0) { if (path == null || path.length() == 0) {
path = FileLoader.getPathToMessage(selectedObject.messageOwner).toString(); path = FileLoader.getPathToMessage(selectedObject.messageOwner).toString();
} }
......
...@@ -199,6 +199,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -199,6 +199,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
private int backgroundState = -1; private int backgroundState = -1;
private View parent = null; private View parent = null;
private int size = AndroidUtilities.dp(64); private int size = AndroidUtilities.dp(64);
private int previousBackgroundState = -2;
private float animatedAlphaValue = 1.0f;
private static DecelerateInterpolator decelerateInterpolator = null; private static DecelerateInterpolator decelerateInterpolator = null;
private static Paint progressPaint = null; private static Paint progressPaint = null;
...@@ -220,6 +222,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -220,6 +222,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
long dt = newTime - lastUpdateTime; long dt = newTime - lastUpdateTime;
lastUpdateTime = newTime; lastUpdateTime = newTime;
if (animatedProgressValue != 1) {
radOffset += 360 * dt / 3000.0f; radOffset += 360 * dt / 3000.0f;
float progressDiff = currentProgress - animationProgressStart; float progressDiff = currentProgress - animationProgressStart;
if (progressDiff > 0) { if (progressDiff > 0) {
...@@ -232,9 +235,17 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -232,9 +235,17 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
animatedProgressValue = animationProgressStart + progressDiff * decelerateInterpolator.getInterpolation(currentProgressTime / 300.0f); animatedProgressValue = animationProgressStart + progressDiff * decelerateInterpolator.getInterpolation(currentProgressTime / 300.0f);
} }
} }
parent.invalidate(); parent.invalidate();
} }
if (animatedProgressValue >= 1 && previousBackgroundState != -2) {
animatedAlphaValue -= dt / 200.0f;
if (animatedAlphaValue <= 0) {
animatedAlphaValue = 0.0f;
previousBackgroundState = -2;
}
parent.invalidate();
}
}
public float getRadOffset() { public float getRadOffset() {
return radOffset; return radOffset;
...@@ -255,28 +266,51 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -255,28 +266,51 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
currentProgressTime = 0; currentProgressTime = 0;
} }
public void setBackgroundState(int state) { public void setBackgroundState(int state, boolean animated) {
lastUpdateTime = System.currentTimeMillis(); lastUpdateTime = System.currentTimeMillis();
if (animated && backgroundState != state) {
previousBackgroundState = backgroundState;
animatedAlphaValue = 1.0f;
} else {
previousBackgroundState = -2;
}
backgroundState = state; backgroundState = state;
parent.invalidate(); parent.invalidate();
} }
public void onDraw(Canvas canvas) { public void onDraw(Canvas canvas) {
if (backgroundState < 0 || backgroundState > 3) {
return;
}
int x = (canvas.getWidth() - size) / 2; int x = (canvas.getWidth() - size) / 2;
int y = (canvas.getHeight() - size) / 2; int y = (canvas.getHeight() - size) / 2;
if (previousBackgroundState >= 0 && previousBackgroundState < 4) {
Drawable drawable = progressDrawables[previousBackgroundState];
if (drawable != null) {
drawable.setAlpha((int)(255 * animatedAlphaValue));
drawable.setBounds(x, y, x + size, y + size);
drawable.draw(canvas);
}
}
if (backgroundState >= 0 && backgroundState < 4) {
Drawable drawable = progressDrawables[backgroundState]; Drawable drawable = progressDrawables[backgroundState];
if (drawable != null) { if (drawable != null) {
if (previousBackgroundState != -2) {
drawable.setAlpha((int)(255 * (1.0f - animatedAlphaValue)));
} else {
drawable.setAlpha(255);
}
drawable.setBounds(x, y, x + size, y + size); drawable.setBounds(x, y, x + size, y + size);
drawable.draw(canvas); drawable.draw(canvas);
} }
}
if (backgroundState == 0 || backgroundState == 1) { if (backgroundState == 0 || backgroundState == 1 || previousBackgroundState == 0 || previousBackgroundState == 1) {
int diff = AndroidUtilities.dp(1); int diff = AndroidUtilities.dp(1);
if (previousBackgroundState != -2) {
progressPaint.setAlpha((int)(255 * animatedAlphaValue));
} else {
progressPaint.setAlpha(255);
}
progressRect.set(x + diff, y + diff, x + size - diff, y + size - diff); progressRect.set(x + diff, y + diff, x + size - diff, y + size - diff);
canvas.drawArc(progressRect, -90 + radOffset, Math.max(4, 360 * animatedProgressValue), false, progressPaint); canvas.drawArc(progressRect, -90 + radOffset, Math.max(4, 360 * animatedProgressValue), false, progressPaint);
updateAnimation(); updateAnimation();
...@@ -364,7 +398,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -364,7 +398,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
String location = (String)args[0]; String location = (String)args[0];
for (int a = 0; a < 3; a++) { for (int a = 0; a < 3; a++) {
if (currentFileNames[a] != null && currentFileNames[a].equals(location)) { if (currentFileNames[a] != null && currentFileNames[a].equals(location)) {
checkProgress(a); radialProgressViews[a].setProgress(1.0f, true);
checkProgress(a, true);
break; break;
} }
} }
...@@ -372,7 +407,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -372,7 +407,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
String location = (String)args[0]; String location = (String)args[0];
for (int a = 0; a < 3; a++) { for (int a = 0; a < 3; a++) {
if (currentFileNames[a] != null && currentFileNames[a].equals(location)) { if (currentFileNames[a] != null && currentFileNames[a].equals(location)) {
checkProgress(a); radialProgressViews[a].setProgress(1.0f, true);
checkProgress(a, true);
break; break;
} }
} }
...@@ -671,11 +707,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -671,11 +707,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
bottomLayout.setBackgroundColor(0x7F000000); bottomLayout.setBackgroundColor(0x7F000000);
radialProgressViews[0] = new RadialProgressView(containerView.getContext(), containerView); radialProgressViews[0] = new RadialProgressView(containerView.getContext(), containerView);
radialProgressViews[0].setBackgroundState(0); radialProgressViews[0].setBackgroundState(0, false);
radialProgressViews[1] = new RadialProgressView(containerView.getContext(), containerView); radialProgressViews[1] = new RadialProgressView(containerView.getContext(), containerView);
radialProgressViews[1].setBackgroundState(0); radialProgressViews[1].setBackgroundState(0, false);
radialProgressViews[2] = new RadialProgressView(containerView.getContext(), containerView); radialProgressViews[2] = new RadialProgressView(containerView.getContext(), containerView);
radialProgressViews[2].setBackgroundState(0); radialProgressViews[2].setBackgroundState(0, false);
shareButton = new ImageView(containerView.getContext()); shareButton = new ImageView(containerView.getContext());
shareButton.setImageResource(R.drawable.ic_ab_share_white); shareButton.setImageResource(R.drawable.ic_ab_share_white);
...@@ -1148,7 +1184,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1148,7 +1184,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
pickerView.setVisibility(View.GONE); pickerView.setVisibility(View.GONE);
for (int a = 0; a < 3; a++) { for (int a = 0; a < 3; a++) {
if (radialProgressViews[a] != null) { if (radialProgressViews[a] != null) {
radialProgressViews[a].setBackgroundState(-1); radialProgressViews[a].setBackgroundState(-1, false);
} }
} }
...@@ -1373,11 +1409,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1373,11 +1409,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
} }
for (int a = 0; a < 3; a++) { for (int a = 0; a < 3; a++) {
checkProgress(a); checkProgress(a, false);
} }
} }
private void checkProgress(int a) { private void checkProgress(int a, boolean animated) {
if (currentFileNames[a] != null) { if (currentFileNames[a] != null) {
int index = currentIndex; int index = currentIndex;
if (a == 1) { if (a == 1) {
...@@ -1395,19 +1431,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1395,19 +1431,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
} }
if (f != null && f.exists()) { if (f != null && f.exists()) {
if (currentFileNames[a].endsWith("mp4")) { if (currentFileNames[a].endsWith("mp4")) {
radialProgressViews[a].setBackgroundState(3); radialProgressViews[a].setBackgroundState(3, animated);
} else { } else {
radialProgressViews[a].setBackgroundState(-1); radialProgressViews[a].setBackgroundState(-1, animated);
} }
} else { } else {
if (currentFileNames[a].endsWith("mp4")) { if (currentFileNames[a].endsWith("mp4")) {
if (!FileLoader.getInstance().isLoadingFile(currentFileNames[a])) { if (!FileLoader.getInstance().isLoadingFile(currentFileNames[a])) {
radialProgressViews[a].setBackgroundState(2); radialProgressViews[a].setBackgroundState(2, false);
} else { } else {
radialProgressViews[a].setBackgroundState(1); radialProgressViews[a].setBackgroundState(1, false);
} }
} else { } else {
radialProgressViews[a].setBackgroundState(0); radialProgressViews[a].setBackgroundState(0, animated);
} }
Float progress = FileLoader.getInstance().getFileProgress(currentFileNames[a]); Float progress = FileLoader.getInstance().getFileProgress(currentFileNames[a]);
if (progress == null) { if (progress == null) {
...@@ -1419,7 +1455,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1419,7 +1455,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
canZoom = currentFileNames[0] != null && !currentFileNames[0].endsWith("mp4") && radialProgressViews[0].backgroundState != 0; canZoom = currentFileNames[0] != null && !currentFileNames[0].endsWith("mp4") && radialProgressViews[0].backgroundState != 0;
} }
} else { } else {
radialProgressViews[a].setBackgroundState(-1); radialProgressViews[a].setBackgroundState(-1, animated);
} }
} }
...@@ -1887,7 +1923,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1887,7 +1923,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
currentThumb = null; currentThumb = null;
for (int a = 0; a < 3; a++) { for (int a = 0; a < 3; a++) {
if (radialProgressViews[a] != null) { if (radialProgressViews[a] != null) {
radialProgressViews[a].setBackgroundState(-1); radialProgressViews[a].setBackgroundState(-1, false);
} }
} }
centerImage.setImageBitmap((Bitmap)null); centerImage.setImageBitmap((Bitmap)null);
...@@ -2434,7 +2470,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -2434,7 +2470,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
if (x >= (containerView.getWidth() - AndroidUtilities.dp(64)) / 2.0f && x <= (containerView.getWidth() + AndroidUtilities.dp(64)) / 2.0f && if (x >= (containerView.getWidth() - AndroidUtilities.dp(64)) / 2.0f && x <= (containerView.getWidth() + AndroidUtilities.dp(64)) / 2.0f &&
y >= (containerView.getHeight() - AndroidUtilities.dp(64)) / 2.0f && y <= (containerView.getHeight() + AndroidUtilities.dp(64)) / 2.0f) { y >= (containerView.getHeight() - AndroidUtilities.dp(64)) / 2.0f && y <= (containerView.getHeight() + AndroidUtilities.dp(64)) / 2.0f) {
onActionClick(); onActionClick();
checkProgress(0); checkProgress(0, true);
return true; return true;
} }
} }
......
...@@ -319,9 +319,9 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen ...@@ -319,9 +319,9 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
public boolean processSendingText(String text) { public boolean processSendingText(String text) {
text = getTrimmedString(text); text = getTrimmedString(text);
if (text.length() != 0) { if (text.length() != 0) {
int count = (int)Math.ceil(text.length() / 2048.0f); int count = (int)Math.ceil(text.length() / 4096.0f);
for (int a = 0; a < count; a++) { for (int a = 0; a < count; a++) {
String mess = text.substring(a * 2048, Math.min((a + 1) * 2048, text.length())); String mess = text.substring(a * 4096, Math.min((a + 1) * 4096, text.length()));
SendMessagesHelper.getInstance().sendMessage(mess, dialog_id); SendMessagesHelper.getInstance().sendMessage(mess, dialog_id);
} }
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment