Commit ad863779 authored by DrKLO's avatar DrKLO

Different improvements

parent 22a0c2ac
......@@ -80,7 +80,7 @@ android {
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 355
versionName "1.9.4"
versionCode 357
versionName "1.9.5"
}
}
......@@ -831,6 +831,10 @@ public class ImageLoader {
});
}
public void putImageToCache(BitmapDrawable bitmap, String key) {
memCache.put(key, bitmap);
}
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))) {
return;
......
......@@ -616,7 +616,7 @@ public class MessageObject {
}
public boolean isSecretMedia() {
return messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && messageOwner.ttl != 0;
return messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && messageOwner.ttl != 0 && messageOwner.ttl <= 60;
}
public static void setIsUnread(TLRPC.Message message, boolean unread) {
......@@ -672,12 +672,8 @@ public class MessageObject {
String str;
if (secondsLeft < 60) {
str = secondsLeft + "s";
} else if (secondsLeft < 60 * 60) {
str = secondsLeft / 60 + "m";
} else if (secondsLeft < 60 * 60 * 24) {
str = secondsLeft / 60 / 60 + "h";
} else {
str = secondsLeft / 60 / 60 / 24 + "d";
str = secondsLeft / 60 + "m";
}
return str;
}
......
......@@ -17,6 +17,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.os.Build;
import android.text.Html;
import android.util.SparseArray;
import org.telegram.messenger.BuffersStorage;
import org.telegram.messenger.ByteBufferDesc;
......@@ -502,7 +503,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
}
}
public void didAddedNewTask(final int minDate) {
public void didAddedNewTask(final int minDate, final SparseArray<ArrayList<Integer>> mids) {
Utilities.stageQueue.postRunnable(new Runnable() {
@Override
public void run() {
......@@ -511,6 +512,12 @@ public class MessagesController implements NotificationCenter.NotificationCenter
}
}
});
AndroidUtilities.RunOnUIThread(new Runnable() {
@Override
public void run() {
NotificationCenter.getInstance().postNotificationName(NotificationCenter.didCreatedNewDeleteTask, mids);
}
});
}
public void getNewDeleteTask(final ArrayList<Integer> oldTask) {
......@@ -3552,7 +3559,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
newMessage.media.photo.date = newMessage.date;
newMessage.media.photo.caption = "";
newMessage.media.photo.geo = new TLRPC.TL_geoPointEmpty();
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 5000 && decryptedMessage.media.thumb_w < 100 && decryptedMessage.media.thumb_h < 100) {
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 6000 && decryptedMessage.media.thumb_w <= 100 && decryptedMessage.media.thumb_h <= 100) {
TLRPC.TL_photoCachedSize small = new TLRPC.TL_photoCachedSize();
small.w = decryptedMessage.media.thumb_w;
small.h = decryptedMessage.media.thumb_h;
......@@ -3581,7 +3588,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
}
newMessage.media = new TLRPC.TL_messageMediaVideo();
newMessage.media.video = new TLRPC.TL_videoEncrypted();
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 5000 && decryptedMessage.media.thumb_w < 100 && decryptedMessage.media.thumb_h < 100) {
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 6000 && decryptedMessage.media.thumb_w <= 100 && decryptedMessage.media.thumb_h <= 100) {
newMessage.media.video.thumb = new TLRPC.TL_photoCachedSize();
newMessage.media.video.thumb.bytes = decryptedMessage.media.thumb;
newMessage.media.video.thumb.w = decryptedMessage.media.thumb_w;
......@@ -3623,7 +3630,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
newMessage.media.document.size = message.file.size;
newMessage.media.document.key = decryptedMessage.media.key;
newMessage.media.document.iv = decryptedMessage.media.iv;
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 5000 && decryptedMessage.media.thumb_w < 100 && decryptedMessage.media.thumb_h < 100) {
if (decryptedMessage.media.thumb.length != 0 && decryptedMessage.media.thumb.length <= 6000 && decryptedMessage.media.thumb_w <= 100 && decryptedMessage.media.thumb_h <= 100) {
newMessage.media.document.thumb = new TLRPC.TL_photoCachedSize();
newMessage.media.document.thumb.bytes = decryptedMessage.media.thumb;
newMessage.media.document.thumb.w = decryptedMessage.media.thumb_w;
......
......@@ -882,7 +882,7 @@ public class MessagesStorage {
state.dispose();
database.commitTransaction();
database.executeFast(String.format(Locale.US, "UPDATE messages SET ttl = 0 WHERE mid IN(%s)", mids.toString())).stepThis().dispose();
MessagesController.getInstance().didAddedNewTask(minDate);
MessagesController.getInstance().didAddedNewTask(minDate, messages);
}
} catch (Exception e) {
FileLog.e("tmessages", e);
......@@ -2432,15 +2432,10 @@ public class MessagesStorage {
}
private int getMessageMediaType(TLRPC.Message message) {
if (message.media == null) {
return 0;
} else if (message.media instanceof TLRPC.TL_messageMediaPhoto) {
if (message.media instanceof TLRPC.TL_messageMediaPhoto && message.ttl != 0 && message.ttl <= 60) {
return 1;
} else if (message.media instanceof TLRPC.TL_messageMediaVideo) {
return 2;
} else {
return 0;
}
return 0;
}
private void putMessagesInternal(final ArrayList<TLRPC.Message> messages, final boolean withTransaction, final boolean isBroadcast, final int downloadMask) {
......@@ -2478,7 +2473,7 @@ public class MessagesStorage {
messagesIdsMap.put(message.id, dialog_id);
}
if (message.ttl == 0 && (message.media instanceof TLRPC.TL_messageMediaVideo || message.media instanceof TLRPC.TL_messageMediaPhoto)) {
if (message.media instanceof TLRPC.TL_messageMediaVideo || message.media instanceof TLRPC.TL_messageMediaPhoto && (message.ttl == 0 || message.ttl > 60)) {
if (messageMediaIds.length() > 0) {
messageMediaIds.append(",");
}
......@@ -2562,7 +2557,7 @@ public class MessagesStorage {
state3.step();
}
if (message.ttl == 0 && (message.media instanceof TLRPC.TL_messageMediaVideo || message.media instanceof TLRPC.TL_messageMediaPhoto)) {
if (message.media instanceof TLRPC.TL_messageMediaVideo || message.media instanceof TLRPC.TL_messageMediaPhoto && (message.ttl == 0 || message.ttl > 60)) {
state2.requery();
state2.bindInteger(1, messageId);
state2.bindLong(2, dialog_id);
......
......@@ -41,6 +41,7 @@ public class NotificationCenter {
public static final int openedChatChanged = 29;
public static final int hideEmojiKeyboard = 30;
public static final int stopEncodingService = 31;
public static final int didCreatedNewDeleteTask = 32;
public static final int wallpapersDidLoaded = 171;
public static final int closeOtherAppActivities = 702;
......
......@@ -9333,6 +9333,7 @@ public class TLRPC {
public byte[] auth_key;
public int user_id;
public int ttl;
public int layer;
}
public static class FileLocation extends TLObject {
......
......@@ -118,6 +118,7 @@ public class ChatBaseCell extends BaseCell {
private CheckForTap pendingCheckForTap = null;
private int last_send_state = 0;
private int last_delete_date = 0;
private final class CheckForTap implements Runnable {
public void run() {
......@@ -219,6 +220,9 @@ public class ChatBaseCell extends BaseCell {
if (last_send_state != currentMessageObject.messageOwner.send_state) {
return true;
}
if (last_delete_date != currentMessageObject.messageOwner.destroyTime) {
return true;
}
TLRPC.User newUser = MessagesController.getInstance().getUser(currentMessageObject.messageOwner.from_id);
TLRPC.FileLocation newPhoto = null;
......@@ -251,6 +255,7 @@ public class ChatBaseCell extends BaseCell {
public void setMessageObject(MessageObject messageObject) {
currentMessageObject = messageObject;
last_send_state = messageObject.messageOwner.send_state;
last_delete_date = messageObject.messageOwner.destroyTime;
isPressed = false;
isCheckPressed = true;
isAvatarVisible = false;
......
......@@ -42,8 +42,6 @@ import java.util.Locale;
public class ChatMediaCell extends ChatBaseCell implements MediaController.FileDownloadProgressListener {
public static interface ChatMediaCellDelegate {
public abstract boolean didPressedImage(ChatMediaCell cell);
public abstract void didUnpressedImage(ChatMediaCell cell);
public abstract void didClickedImage(ChatMediaCell cell);
public abstract void didPressedOther(ChatMediaCell cell);
}
......@@ -85,7 +83,6 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
private boolean otherPressed = false;
private int buttonX;
private int buttonY;
private boolean listenForUnpressed = false;
private StaticLayout infoLayout;
private int infoWidth;
......@@ -212,10 +209,8 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
}
}
}
listenForUnpressed = false;
if (imagePressed && mediaDelegate != null && mediaDelegate.didPressedImage(this)) {
if (imagePressed && currentMessageObject.isSecretMedia()) {
imagePressed = false;
listenForUnpressed = true;
} else if (result) {
startCheckLongPress();
}
......@@ -242,8 +237,10 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
} else if (imagePressed) {
if (event.getAction() == MotionEvent.ACTION_UP) {
imagePressed = false;
playSoundEffect(SoundEffectConstants.CLICK);
didClickedImage();
if (buttonState == -1 || buttonState == 2 || buttonState == 3) {
playSoundEffect(SoundEffectConstants.CLICK);
didClickedImage();
}
invalidate();
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
imagePressed = false;
......@@ -277,14 +274,6 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
}
}
}
} else if (listenForUnpressed) {
if (event.getAction() == MotionEvent.ACTION_POINTER_UP || event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
if (listenForUnpressed && mediaDelegate != null) {
mediaDelegate.didUnpressedImage(this);
}
listenForUnpressed = false;
}
result = true;
}
}
if (!result) {
......@@ -575,6 +564,10 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
w = timeWidthTotal;
}
if (currentMessageObject.isSecretMedia()) {
w = h = (int) (Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) * 0.5f);
}
photoWidth = w;
photoHeight = h;
backgroundWidth = w + AndroidUtilities.dp(12);
......@@ -785,7 +778,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
}
private void updateSecretTimeText() {
if (currentMessageObject == null) {
if (currentMessageObject == null || currentMessageObject.isOut()) {
return;
}
String str = currentMessageObject.getSecretTimeString();
......
......@@ -234,7 +234,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
public int getSelectedCount();
}
private static class FrameLayoutTouchListener extends FrameLayout {
private class FrameLayoutTouchListener extends FrameLayout {
public FrameLayoutTouchListener(Context context) {
super(context);
}
......@@ -251,7 +251,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
}
}
private static class FrameLayoutDrawer extends FrameLayout {
private class FrameLayoutDrawer extends FrameLayout {
public FrameLayoutDrawer(Context context) {
super(context);
setWillNotDraw(false);
......
......@@ -10,11 +10,17 @@ package org.telegram.ui.Views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ListView;
public class LayoutListView extends ListView {
public static interface OnInterceptTouchEventListener {
public abstract boolean onInterceptTouchEvent(MotionEvent event);
}
private OnInterceptTouchEventListener onInterceptTouchEventListener;
private int height = -1;
public LayoutListView(Context context) {
......@@ -29,6 +35,18 @@ public class LayoutListView extends ListView {
super(context, attrs, defStyle);
}
public void setOnInterceptTouchEventListener(OnInterceptTouchEventListener listener) {
onInterceptTouchEventListener = listener;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (onInterceptTouchEventListener != null) {
return onInterceptTouchEventListener.onInterceptTouchEvent(ev);
}
return super.onInterceptTouchEvent(ev);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
View v = getChildAt(getChildCount() - 1);
......
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