cursor=database.queryFinalized("SELECT q.data, u.name, q.user, q.g, q.authkey, q.ttl, u.data, u.status, q.layer, q.seq_in, q.seq_out 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");
@@ -1739,7 +1625,16 @@ public class MessagesStorage {
intlower_id=(int)dialog_id;
if(lower_id!=0){
if(forward){
if(load_type==3){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0",dialog_id));
if(cursor.next()){
last_message_id=cursor.intValue(0);
}
cursor.dispose();
cursor=database.queryFinalized(String.format(Locale.US,"SELECT * FROM (SELECT read_state, data, send_state, mid, date FROM messages WHERE uid = %d AND mid <= %d ORDER BY date DESC, mid DESC LIMIT %d) UNION "+
"SELECT * FROM (SELECT read_state, data, send_state, mid, date FROM messages WHERE uid = %d AND mid > %d ORDER BY date ASC, mid ASC LIMIT %d)",dialog_id,max_id,count_query/2,dialog_id,max_id,count_query/2));
}elseif(load_type==1){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT read_state, data, send_state, mid, date FROM messages WHERE uid = %d AND date >= %d AND mid > %d ORDER BY date ASC, mid ASC LIMIT %d",dialog_id,minDate,max_id,count_query));
}elseif(minDate!=0){
if(max_id!=0){
...
...
@@ -1748,12 +1643,17 @@ public class MessagesStorage {
cursor=database.queryFinalized(String.format(Locale.US,"SELECT read_state, data, send_state, mid, date FROM messages WHERE uid = %d AND date <= %d ORDER BY date DESC, mid DESC LIMIT %d,%d",dialog_id,minDate,offset_query,count_query));
}
}else{
if(from_unread){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT min(mid), max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state = 0 AND mid > 0",dialog_id));
if(load_type==2){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT max(mid) FROM messages WHERE uid = %d AND mid > 0",dialog_id));
if(cursor.next()){
last_message_id=cursor.intValue(0);
}
cursor.dispose();
cursor=database.queryFinalized(String.format(Locale.US,"SELECT min(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state = 0 AND mid > 0",dialog_id));
if(cursor.next()){
min_unread_id=cursor.intValue(0);
max_unread_id=cursor.intValue(1);
max_unread_date=cursor.intValue(2);
max_unread_date=cursor.intValue(1);
}
cursor.dispose();
if(min_unread_id!=0){
...
...
@@ -1770,7 +1670,7 @@ public class MessagesStorage {
if(count_unread<4){
count_unread=0;
min_unread_id=0;
max_unread_id=0;
last_message_id=0;
}
}else{
offset_query=count_unread-count_query;
...
...
@@ -1779,7 +1679,7 @@ public class MessagesStorage {
cursor=database.queryFinalized(String.format(Locale.US,"SELECT read_state, data, send_state, mid, date FROM messages WHERE uid = %d ORDER BY date DESC, mid DESC LIMIT %d,%d",dialog_id,offset_query,count_query));
}
}else{
if(forward){
if(load_type==1){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.mid < %d ORDER BY m.mid DESC LIMIT %d",dialog_id,max_id,count_query));
}elseif(minDate!=0){
if(max_id!=0){
...
...
@@ -1788,12 +1688,17 @@ public class MessagesStorage {
cursor=database.queryFinalized(String.format(Locale.US,"SELECT m.read_state, m.data, m.send_state, m.mid, m.date, r.random_id FROM messages as m LEFT JOIN randoms as r ON r.mid = m.mid WHERE m.uid = %d AND m.date <= %d ORDER BY m.mid ASC LIMIT %d,%d",dialog_id,minDate,offset_query,count_query));
}
}else{
if(from_unread){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT max(mid), min(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state = 0 AND mid < 0",dialog_id));
if(load_type==2){
cursor=database.queryFinalized(String.format(Locale.US,"SELECT min(mid) FROM messages WHERE uid = %d AND mid < 0",dialog_id));
if(cursor.next()){
last_message_id=cursor.intValue(0);
}
cursor.dispose();
cursor=database.queryFinalized(String.format(Locale.US,"SELECT max(mid), max(date) FROM messages WHERE uid = %d AND out = 0 AND read_state = 0 AND mid < 0",dialog_id));
if(cursor.next()){
min_unread_id=cursor.intValue(0);
max_unread_id=cursor.intValue(1);
max_unread_date=cursor.intValue(2);
max_unread_date=cursor.intValue(1);
}
cursor.dispose();
if(min_unread_id!=0){
...
...
@@ -1810,7 +1715,7 @@ public class MessagesStorage {
if(count_unread<4){
count_unread=0;
min_unread_id=0;
max_unread_id=0;
last_message_id=0;
}
}else{
offset_query=count_unread-count_query;
...
...
@@ -1822,6 +1727,12 @@ public class MessagesStorage {
SQLiteCursorcursor=MessagesStorage.getInstance().getDatabase().queryFinalized("SELECT u.data, u.status, u.name FROM users as u INNER JOIN contacts as c ON u.uid = c.uid");
cursor=MessagesStorage.getInstance().getDatabase().queryFinalized("SELECT q.data, u.name, q.user, q.g, q.authkey, q.ttl, u.data, u.status, q.layer, q.seq_in, q.seq_out 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");
<stringname="PhotoTip">إضغط بإستمرار على المستخدم العرض</string>
<stringname="CompatibilityChat">%1$s يستخدم إصدار قديم من تيليجرام، لذلك، الصور السرية ستظهر في وضع الموافقة.\n\nعندما يقوم %2$s بتحديث تيليجرام، الصور التي بها عداد دقيقة أو أقل ستعمل بطريقة \"الاستمرار بالضغط للإستعراض\"، وسيتم إخبارك عندما يلتقط المستقبل صورة من شاشته.</string>
<stringname="CompatibilityChat">%1$s benutzt eine ältere Version von Telegram, sodass Fotos in Geheimen Chats im Kompatibilitätsmodus angezeigt werden.\n\nSobald %2$s Telegram aktualisiert, werden Fotos mit Timern von 1 Minute und kürzer per \"Tippen und Halten\" angezeigt. Du wirst benachrichtigt, sobald dein Chatpartner ein Bildschirmfoto macht.</string>
<stringname="PhotoTip">Mantén pulsado para ver</string>
<stringname="CompatibilityChat">%1$s usa una versión antigua de Telegram, así que las fotos secretas serán mostradas en un modo de compatibilidad.\n\nCuando %2$s actualice Telegram, las fotos con autodestrucción de 1 minuto o menos funcionarán con el modo \'Mantén pulsado para ver\', y te notificaremos siempre que la otra parte haga una captura de pantalla.</string>
<stringname="PhotoTip">Tieni premuto per vedere</string>
<stringname="CompatibilityChat">%1$s sta usando una versione vecchia di Telegram, quindi le foto segrete verranno visualizzate in modalità di compatibilità.\n\nUna volta che %2$s avrà aggiornato Telegram, le foto con il timer minore di 1 minuto funzioneranno in modalità \'Tieni premuto per vedere\' , e verrai notificato ogni volta che l\'altro esegue uno screenshot.</string>
<stringname="CompatibilityChat">%1$s님의 텔레그램 버전이 낮아 비밀 사진을 호환성 모드로 표시합니다.\n\n%2$s님이 텔레그램을 업데이트하고 나면, 자동삭제 시간이 1분 이하인 사진은 \"탭하고 누르고 있어야 보임\" 상태가 되며, 상대방이 화면을 캡처할 때 마다 알림을 받습니다.</string>
<stringname="SelectChat">Kies een gesprek</string>
<stringname="PhotoTip">Druk en houd ingedrukt</string>
<stringname="CompatibilityChat">%1$s gebruikt een oudere versie van Telegram, dus worden geheime foto\'s weergegeven in de compatibiliteitsmodus.\n\nZodra %2$s Telegram updatet werken foto\'s met timers voor 1 minuut of minder in de \'Druk en houd ingedrukt\'-modus en krijg je een bericht wanneer de andere partij een schermafbeelding maakt.</string>
<stringname="SelectChat">Selecione uma Conversa</string>
<stringname="PhotoTip">Toque e segure para ver</string>
<stringname="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<stringname="SelectChat">Selecione uma Conversa</string>
<stringname="PhotoTip">Toque e segure para ver</string>
<stringname="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<stringname="PhotoTip">Tap and hold to view</string>
<stringname="CompatibilityChat">%1$s is using an older version of Telegram, so secret photos will be shown in compatibility mode.\n\nOnce %2$s updates Telegram, photos with timers for 1 minute or less will start working in \'Tap and hold to view\' mode, and you will be notified whenever the other party takes a screenshot.</string>