Skip to content

Commit 77f2395

Browse files
author
DrKLO
committed
Bug fixes
1 parent a137f7a commit 77f2395

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+463
-183
lines changed

TMessagesProj/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ android {
8080
defaultConfig {
8181
minSdkVersion 8
8282
targetSdkVersion 21
83-
versionCode 383
83+
versionCode 384
8484
versionName "2.0.0"
8585
}
8686
}

TMessagesProj/jni/Android.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir)
22

33
include $(CLEAR_VARS)
44
LOCAL_PRELINK_MODULE := false
5-
LOCAL_MODULE := tmessages.2
5+
LOCAL_MODULE := tmessages.3
66
LOCAL_CFLAGS := -w -std=gnu99 -O2 -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
77
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno
88
LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -DHAVE_STRCHRNUL=0

TMessagesProj/jni/image.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jcl
229229
AndroidBitmap_unlockPixels(env, bitmap);
230230
}
231231

232-
JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jobject bitmap, int scale) {
232+
JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jobject bitmap, int scale, int width, int height, int stride) {
233233

234234
AndroidBitmapInfo info;
235235
int i;
@@ -260,13 +260,13 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
260260

261261
unsigned char *pixels;
262262
if ((i = AndroidBitmap_lockPixels(env, bitmap, &pixels)) >= 0) {
263-
int rowCount = min(cinfo.output_height, info.height);
264-
int colCount = min(cinfo.output_width, info.width);
263+
int rowCount = min(cinfo.output_height, height);
264+
int colCount = min(cinfo.output_width, width);
265265

266266
while (cinfo.output_scanline < rowCount) {
267267
jpeg_read_scanlines(&cinfo, buffer, 1);
268268

269-
if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) {
269+
//if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) {
270270
if (cinfo.out_color_space == JCS_GRAYSCALE) {
271271
for (i = 0; i < colCount; i++) {
272272
float alpha = buffer[0][i] / 255.0f;
@@ -285,11 +285,11 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
285285
c += 4;
286286
}
287287
}
288-
} else if (info.format == ANDROID_BITMAP_FORMAT_RGB_565) {
288+
//} else if (info.format == ANDROID_BITMAP_FORMAT_RGB_565) {
289289

290-
}
290+
//}
291291

292-
pixels += info.stride;
292+
pixels += stride;
293293
}
294294

295295
AndroidBitmap_unlockPixels(env, bitmap);

TMessagesProj/src/main/java/org/telegram/android/ContactsController.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,6 +1604,15 @@ public void run() {
16041604
for (Object object : vector.objects) {
16051605
TLRPC.User toDbUser = new TLRPC.User();
16061606
TLRPC.TL_contactStatus status = (TLRPC.TL_contactStatus) object;
1607+
1608+
if (status.status instanceof TLRPC.TL_userStatusRecently) {
1609+
status.status.expires = -100;
1610+
} else if (status.status instanceof TLRPC.TL_userStatusLastWeek) {
1611+
status.status.expires = -101;
1612+
} else if (status.status instanceof TLRPC.TL_userStatusLastMonth) {
1613+
status.status.expires = -102;
1614+
}
1615+
16071616
TLRPC.User user = MessagesController.getInstance().getUser(status.user_id);
16081617
if (user != null) {
16091618
user.status = status.status;

TMessagesProj/src/main/java/org/telegram/android/Emoji.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,12 @@ private static void loadEmoji(final int page) {
246246
opts.inJustDecodeBounds = true;
247247
BitmapFactory.decodeFile(imageFile.getAbsolutePath(), opts);
248248

249-
final Bitmap bitmap = Bitmap.createBitmap(opts.outWidth / imageResize, opts.outHeight / imageResize, Bitmap.Config.ARGB_8888);
250-
Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize);
249+
int width = opts.outWidth / imageResize;
250+
int height = opts.outHeight / imageResize;
251+
int stride = width * 4;
252+
253+
final Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
254+
Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize, width, height, stride);
251255

252256
imageName = String.format(Locale.US, "emoji%.01fx_a_%d.jpg", scale, page);
253257
imageFile = ApplicationLoader.applicationContext.getFileStreamPath(imageName);
@@ -257,7 +261,7 @@ private static void loadEmoji(final int page) {
257261
is.close();
258262
}
259263

260-
Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize);
264+
Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize, width, height, stride);
261265

262266
AndroidUtilities.runOnUIThread(new Runnable() {
263267
@Override

TMessagesProj/src/main/java/org/telegram/android/LocaleController.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,15 @@ public static String stringForMessageListDate(long date) {
782782
}
783783

784784
public static String formatUserStatus(TLRPC.User user) {
785+
if (user != null && user.status != null && user.status.expires == 0) {
786+
if (user.status instanceof TLRPC.TL_userStatusRecently) {
787+
user.status.expires = -100;
788+
} else if (user.status instanceof TLRPC.TL_userStatusLastWeek) {
789+
user.status.expires = -101;
790+
} else if (user.status instanceof TLRPC.TL_userStatusLastMonth) {
791+
user.status.expires = -102;
792+
}
793+
}
785794
if (user == null || user.status == null || user.status.expires == 0 || user instanceof TLRPC.TL_userDeleted || user instanceof TLRPC.TL_userEmpty) {
786795
return getString("ALongTimeAgo", R.string.ALongTimeAgo);
787796
} else {

TMessagesProj/src/main/java/org/telegram/android/MessagesController.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,7 +1334,7 @@ public void run(TLObject response, TLRPC.TL_error error) {
13341334
}
13351335
}
13361336

1337-
public void loadMessages(final long dialog_id, final int count, final int max_id, boolean fromCache, int midDate, final int classGuid, final int load_type) {
1337+
public void loadMessages(final long dialog_id, final int count, final int max_id, boolean fromCache, int midDate, final int classGuid, final int load_type, final int last_message_id, final int first_message_id, final boolean allowCache) {
13381338
int lower_part = (int)dialog_id;
13391339
if (fromCache || lower_part == 0) {
13401340
MessagesStorage.getInstance().getMessages(dialog_id, count, max_id, midDate, classGuid, load_type);
@@ -1356,6 +1356,8 @@ public void loadMessages(final long dialog_id, final int count, final int max_id
13561356
}
13571357
if (load_type == 3) {
13581358
req.offset = -count / 2;
1359+
} else if (load_type == 1) {
1360+
req.offset = -count - 1;
13591361
} else {
13601362
req.offset = 0;
13611363
}
@@ -1366,28 +1368,29 @@ public void loadMessages(final long dialog_id, final int count, final int max_id
13661368
public void run(TLObject response, TLRPC.TL_error error) {
13671369
if (error == null) {
13681370
final TLRPC.messages_Messages res = (TLRPC.messages_Messages) response;
1369-
processLoadedMessages(res, dialog_id, count, max_id, false, classGuid, 0, 0, 0, 0, load_type);
1371+
processLoadedMessages(res, dialog_id, count, max_id, false, classGuid, 0, last_message_id, first_message_id, 0, 0, load_type, allowCache);
13701372
}
13711373
}
13721374
});
13731375
ConnectionsManager.getInstance().bindRequestToGuid(reqId, classGuid);
13741376
}
13751377
}
13761378

1377-
public void processLoadedMessages(final TLRPC.messages_Messages messagesRes, final long dialog_id, final int count, final int max_id, final boolean isCache, final int classGuid, final int first_unread, final int last_message_id, final int unread_count, final int last_date, final int load_type) {
1379+
public void processLoadedMessages(final TLRPC.messages_Messages messagesRes, final long dialog_id, final int count, final int max_id, final boolean isCache, final int classGuid,
1380+
final int first_unread, final int last_message_id, final int first_message_id, final int unread_count, final int last_date, final int load_type, final boolean allowCache) {
13781381
Utilities.stageQueue.postRunnable(new Runnable() {
13791382
@Override
13801383
public void run() {
13811384
int lower_id = (int)dialog_id;
13821385
int high_id = (int)(dialog_id >> 32);
1383-
if (!isCache) {
1386+
if (!isCache && allowCache) {
13841387
MessagesStorage.getInstance().putMessages(messagesRes, dialog_id);
13851388
}
13861389
if (high_id != 1 && lower_id != 0 && isCache && messagesRes.messages.size() == 0 && (load_type == 0 || load_type == 2 || load_type == 3)) {
13871390
AndroidUtilities.runOnUIThread(new Runnable() {
13881391
@Override
13891392
public void run() {
1390-
loadMessages(dialog_id, count, max_id, false, 0, classGuid, load_type);
1393+
loadMessages(dialog_id, count, max_id, false, 0, classGuid, load_type, last_message_id, first_message_id, allowCache);
13911394
}
13921395
});
13931396
return;
@@ -1406,7 +1409,7 @@ public void run() {
14061409
public void run() {
14071410
putUsers(messagesRes.users, isCache);
14081411
putChats(messagesRes.chats, isCache);
1409-
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesDidLoaded, dialog_id, count, objects, isCache, first_unread, last_message_id, unread_count, last_date, load_type);
1412+
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesDidLoaded, dialog_id, count, objects, isCache, first_unread, last_message_id, first_message_id, unread_count, last_date, load_type);
14101413
}
14111414
});
14121415
}

0 commit comments

Comments
 (0)