diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 91f5f5b6e..c6f885fbc 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -81,7 +81,7 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 19 - versionCode 264 + versionCode 265 versionName "1.5.7" } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java b/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java index 00674640e..ddc2a9b76 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java @@ -527,12 +527,34 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. Utilities.stageQueue.postRunnable(new Runnable() { @Override public void run() { - Datacenter datacenter = datacenterWithId(currentDatacenterId); - datacenter.recreateSessions(); + while (requestQueue.size() != 0) { + RPCRequest request = requestQueue.get(0); + requestQueue.remove(0); + if (request.completionBlock != null) { + TLRPC.TL_error implicitError = new TLRPC.TL_error(); + implicitError.code = -1000; + request.completionBlock.run(null, implicitError); + } + } + while (runningRequests.size() != 0) { + RPCRequest request = runningRequests.get(0); + runningRequests.remove(0); + if (request.completionBlock != null) { + TLRPC.TL_error implicitError = new TLRPC.TL_error(); + implicitError.code = -1000; + request.completionBlock.run(null, implicitError); + } + } + pingIdToDate.clear(); + quickAckIdToRequestIds.clear(); - clearRequestsForRequestClass(RPCRequest.RPCRequestClassGeneric, datacenter); - clearRequestsForRequestClass(RPCRequest.RPCRequestClassDownloadMedia, datacenter); - clearRequestsForRequestClass(RPCRequest.RPCRequestClassUploadMedia, datacenter); + for (Datacenter datacenter : datacenters.values()) { + datacenter.recreateSessions(); + datacenter.authorized = false; + } + + sessionsToDestroy.clear(); + saveSession(); } }); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java index 9f53d4c01..cd577fbae 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java @@ -383,6 +383,11 @@ public class FileLoadOperation { if (httpUrl != null) { startDownloadHTTPRequest(); } else { + if (totalBytesCount >= 1024 * 1024) { + downloadChunkSize = 1024 * 256; + } else { + downloadChunkSize = 1024 * 32; + } startDownloadRequest(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index 51cef4151..3b40409d7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -3068,7 +3068,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(TLObject response, TLRPC.TL_error error) { - + ConnectionsManager.getInstance().cleanUp(); } }, null, true, RPCRequest.RPCRequestClassGeneric); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java index 221db4cc0..7515aa74d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java @@ -152,7 +152,6 @@ public class LoginActivityRegisterView extends SlideView { UserConfig.clearConfig(); MessagesStorage.getInstance().cleanUp(); MessagesController.getInstance().cleanUp(); - ConnectionsManager.getInstance().cleanUp(); UserConfig.setCurrentUser(user); UserConfig.saveConfig(true); ArrayList users = new ArrayList(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java index 79789af97..7c80b277b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java @@ -221,7 +221,6 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente UserConfig.clearConfig(); MessagesStorage.getInstance().cleanUp(); MessagesController.getInstance().cleanUp(); - ConnectionsManager.getInstance().cleanUp(); UserConfig.setCurrentUser(res.user); UserConfig.saveConfig(true); ArrayList users = new ArrayList(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 871537b89..a4168a8c8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -42,6 +42,7 @@ import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ProgressBar; +import android.widget.Scroller; import android.widget.TextView; import org.telegram.messenger.ConnectionsManager; @@ -160,6 +161,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat private boolean zoomAnimation = false; private int switchImageAfterAnimation = 0; private VelocityTracker velocityTracker = null; + private Scroller scroller = null; private ArrayList imagesArrTemp = new ArrayList(); private HashMap imagesByIdsTemp = new HashMap(); @@ -432,6 +434,8 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat public void setParentActivity(Activity activity) { parentActivity = activity; + scroller = new Scroller(activity); + windowView = new FrameLayoutTouchListener(activity); windowView.setBackgroundDrawable(backgroundDrawable); windowView.setFocusable(false); @@ -1688,6 +1692,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (ev.getActionMasked() == MotionEvent.ACTION_DOWN || ev.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN) { + if (!scroller.isFinished()) { + scroller.abortAnimation(); + } if (!draggingDown && !changingPage) { if (canZoom && ev.getPointerCount() == 2) { pinchStartDistance = (float) Math.hypot(ev.getX(1) - ev.getX(0), ev.getY(1) - ev.getY(0)); @@ -1756,8 +1763,18 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat if (translationX < minX && !rightImage.hasImage() || translationX > maxX && !leftImage.hasImage()) { moveDx /= 3.0f; } - if (translationY < minY || translationY > maxY) { - moveDy /= 3.0f; + if (maxY == 0 && minY == 0) { + if (translationY - moveDy < minY) { + translationY = minY; + moveDy = 0; + } else if (translationY - moveDy > maxY) { + translationY = maxY; + moveDy = 0; + } + } else { + if (translationY < minY || translationY > maxY) { + moveDy /= 3.0f; + } } translationX -= moveDx; @@ -1922,6 +1939,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } if (ai != -1) { + if (!scroller.isFinished()) { + scroller.abortAnimation(); + } + float ts = scale + (animateToScale - scale) * ai; float tx = translationX + (animateToX - translationX) * ai; float ty = translationY + (animateToY - translationY) * ai; @@ -1944,6 +1965,17 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat Utilities.unlockOrientation(parentActivity); zoomAnimation = false; } + if (!scroller.isFinished()) { + if (scroller.computeScrollOffset()) { + if (scroller.getStartX() < maxX && scroller.getStartX() > minX) { + translationX = scroller.getCurrX(); + } + if (scroller.getStartY() < maxY && scroller.getStartY() > minY) { + translationY = scroller.getCurrY(); + } + containerView.invalidate(); + } + } if (switchImageAfterAnimation != 0) { if (switchImageAfterAnimation == 1) { setImageIndex(currentIndex + 1, false); @@ -2119,6 +2151,11 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { + if (scale != 1) { + scroller.abortAnimation(); + scroller.fling(Math.round(translationX), Math.round(translationY), Math.round(velocityX), Math.round(velocityY), (int) minX, (int) maxX, (int) minY, (int) maxY); + containerView.postInvalidate(); + } return false; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ColorPickerView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ColorPickerView.java index 50e3850cd..7386dea6a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ColorPickerView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ColorPickerView.java @@ -38,7 +38,7 @@ public class ColorPickerView extends View { private static final String STATE_OLD_COLOR = "color"; private static final String STATE_SHOW_OLD_COLOR = "showColor"; - private static final int[] COLORS = new int[] { 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, 0xFFFFFF00, 0xFFFF0000 }; + private static final int[] COLORS = new int[] { 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, 0xFFFFFFFF, 0xFFFFFF00, 0xFFFF0000 }; private Paint mColorWheelPaint; private Paint mPointerHaloPaint;