mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-22 14:35:03 +01:00
Bug fixes
This commit is contained in:
parent
a38e46cd8b
commit
baed4120bc
26 changed files with 444 additions and 85 deletions
|
@ -80,7 +80,7 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 8
|
minSdkVersion 8
|
||||||
targetSdkVersion 21
|
targetSdkVersion 21
|
||||||
versionCode 392
|
versionCode 393
|
||||||
versionName "2.0.3"
|
versionName "2.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -791,6 +791,11 @@ public class LocaleController {
|
||||||
user.status.expires = -102;
|
user.status.expires = -102;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (user != null && user.status != null && user.status.expires <= 0) {
|
||||||
|
if (MessagesController.getInstance().onlinePrivacy.containsKey(user.id)) {
|
||||||
|
return getString("Online", R.string.Online);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (user == null || user.status == null || user.status.expires == 0 || user instanceof TLRPC.TL_userDeleted || user instanceof TLRPC.TL_userEmpty) {
|
if (user == null || user.status == null || user.status.expires == 0 || user instanceof TLRPC.TL_userDeleted || user instanceof TLRPC.TL_userEmpty) {
|
||||||
return getString("ALongTimeAgo", R.string.ALongTimeAgo);
|
return getString("ALongTimeAgo", R.string.ALongTimeAgo);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -52,9 +52,10 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
public ArrayList<TLRPC.TL_dialog> dialogsServerOnly = new ArrayList<TLRPC.TL_dialog>();
|
public ArrayList<TLRPC.TL_dialog> dialogsServerOnly = new ArrayList<TLRPC.TL_dialog>();
|
||||||
public ConcurrentHashMap<Long, TLRPC.TL_dialog> dialogs_dict = new ConcurrentHashMap<Long, TLRPC.TL_dialog>(100, 1.0f, 2);
|
public ConcurrentHashMap<Long, TLRPC.TL_dialog> dialogs_dict = new ConcurrentHashMap<Long, TLRPC.TL_dialog>(100, 1.0f, 2);
|
||||||
public HashMap<Integer, MessageObject> dialogMessage = new HashMap<Integer, MessageObject>();
|
public HashMap<Integer, MessageObject> dialogMessage = new HashMap<Integer, MessageObject>();
|
||||||
public ConcurrentHashMap<Long, ArrayList<PrintingUser>> printingUsers = new ConcurrentHashMap<Long, ArrayList<PrintingUser>>(100, 1.0f, 2);
|
public ConcurrentHashMap<Long, ArrayList<PrintingUser>> printingUsers = new ConcurrentHashMap<Long, ArrayList<PrintingUser>>(20, 1.0f, 2);
|
||||||
public HashMap<Long, CharSequence> printingStrings = new HashMap<Long, CharSequence>();
|
public HashMap<Long, CharSequence> printingStrings = new HashMap<Long, CharSequence>();
|
||||||
public HashMap<Long, Boolean> sendingTypings = new HashMap<Long, Boolean>();
|
public HashMap<Long, Boolean> sendingTypings = new HashMap<Long, Boolean>();
|
||||||
|
public ConcurrentHashMap<Integer, Integer> onlinePrivacy = new ConcurrentHashMap<Integer, Integer>(20, 1.0f, 2);
|
||||||
private int lastPrintingStringCount = 0;
|
private int lastPrintingStringCount = 0;
|
||||||
|
|
||||||
public boolean loadingBlockedUsers = false;
|
public boolean loadingBlockedUsers = false;
|
||||||
|
@ -316,6 +317,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
dialogMessage.clear();
|
dialogMessage.clear();
|
||||||
printingUsers.clear();
|
printingUsers.clear();
|
||||||
printingStrings.clear();
|
printingStrings.clear();
|
||||||
|
onlinePrivacy.clear();
|
||||||
totalDialogsCount = 0;
|
totalDialogsCount = 0;
|
||||||
lastPrintingStringCount = 0;
|
lastPrintingStringCount = 0;
|
||||||
updatesQueue.clear();
|
updatesQueue.clear();
|
||||||
|
@ -1068,15 +1070,17 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
|
|
||||||
if (offset == 0) {
|
if (offset == 0) {
|
||||||
TLRPC.TL_dialog dialog = dialogs_dict.get(did);
|
TLRPC.TL_dialog dialog = dialogs_dict.get(did);
|
||||||
if (!onlyHistory) {
|
if (dialog != null) {
|
||||||
dialogs.remove(dialog);
|
if (!onlyHistory) {
|
||||||
dialogsServerOnly.remove(dialog);
|
dialogs.remove(dialog);
|
||||||
dialogs_dict.remove(did);
|
dialogsServerOnly.remove(dialog);
|
||||||
totalDialogsCount--;
|
dialogs_dict.remove(did);
|
||||||
} else {
|
totalDialogsCount--;
|
||||||
dialog.unread_count = 0;
|
} else {
|
||||||
|
dialog.unread_count = 0;
|
||||||
|
}
|
||||||
|
dialogMessage.remove(dialog.top_message);
|
||||||
}
|
}
|
||||||
dialogMessage.remove(dialog.top_message);
|
|
||||||
MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() {
|
MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -1214,6 +1218,29 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
processUpdatesQueue(0);
|
processUpdatesQueue(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!onlinePrivacy.isEmpty()) {
|
||||||
|
ArrayList<Integer> toRemove = null;
|
||||||
|
int currentServerTime = ConnectionsManager.getInstance().getCurrentTime();
|
||||||
|
for (ConcurrentHashMap.Entry<Integer, Integer> entry : onlinePrivacy.entrySet()) {
|
||||||
|
if (entry.getValue() < currentServerTime - 30) {
|
||||||
|
if (toRemove == null) {
|
||||||
|
toRemove = new ArrayList<Integer>();
|
||||||
|
}
|
||||||
|
toRemove.add(entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toRemove != null) {
|
||||||
|
for (Integer uid : toRemove) {
|
||||||
|
onlinePrivacy.remove(uid);
|
||||||
|
}
|
||||||
|
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, UPDATE_MASK_STATUS);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!printingUsers.isEmpty() || lastPrintingStringCount != printingUsers.size()) {
|
if (!printingUsers.isEmpty() || lastPrintingStringCount != printingUsers.size()) {
|
||||||
boolean updated = false;
|
boolean updated = false;
|
||||||
ArrayList<Long> keys = new ArrayList<Long>(printingUsers.keySet());
|
ArrayList<Long> keys = new ArrayList<Long>(printingUsers.keySet());
|
||||||
|
@ -2678,12 +2705,18 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
boolean needGetDiff = false;
|
boolean needGetDiff = false;
|
||||||
boolean needReceivedQueue = false;
|
boolean needReceivedQueue = false;
|
||||||
boolean addedToQueue = false;
|
boolean addedToQueue = false;
|
||||||
|
boolean updateStatus = false;
|
||||||
if (updates instanceof TLRPC.TL_updateShort) {
|
if (updates instanceof TLRPC.TL_updateShort) {
|
||||||
ArrayList<TLRPC.Update> arr = new ArrayList<TLRPC.Update>();
|
ArrayList<TLRPC.Update> arr = new ArrayList<TLRPC.Update>();
|
||||||
arr.add(updates.update);
|
arr.add(updates.update);
|
||||||
processUpdateArray(arr, null, null);
|
processUpdateArray(arr, null, null);
|
||||||
} else if (updates instanceof TLRPC.TL_updateShortChatMessage) {
|
} else if (updates instanceof TLRPC.TL_updateShortChatMessage) {
|
||||||
boolean missingData = getChat(updates.chat_id) == null || getUser(updates.from_id) == null;
|
TLRPC.User user = getUser(updates.from_id);
|
||||||
|
if (user != null && user.status != null && user.status.expires <= 0) {
|
||||||
|
onlinePrivacy.put(user.id, ConnectionsManager.getInstance().getCurrentTime());
|
||||||
|
updateStatus = true;
|
||||||
|
}
|
||||||
|
boolean missingData = getChat(updates.chat_id) == null || user == null;
|
||||||
if (missingData) {
|
if (missingData) {
|
||||||
needGetDiff = true;
|
needGetDiff = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2748,7 +2781,12 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (updates instanceof TLRPC.TL_updateShortMessage) {
|
} else if (updates instanceof TLRPC.TL_updateShortMessage) {
|
||||||
boolean missingData = getUser(updates.from_id) == null;
|
TLRPC.User user = getUser(updates.from_id);
|
||||||
|
if (user != null && user.status != null && user.status.expires <= 0) {
|
||||||
|
onlinePrivacy.put(user.id, ConnectionsManager.getInstance().getCurrentTime());
|
||||||
|
updateStatus = true;
|
||||||
|
}
|
||||||
|
boolean missingData = user == null;
|
||||||
if (missingData) {
|
if (missingData) {
|
||||||
needGetDiff = true;
|
needGetDiff = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2895,6 +2933,14 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (updateStatus) {
|
||||||
|
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, UPDATE_MASK_STATUS);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
MessagesStorage.getInstance().saveDiffParams(MessagesStorage.lastSeqValue, MessagesStorage.lastPtsValue, MessagesStorage.lastDateValue, MessagesStorage.lastQtsValue);
|
MessagesStorage.getInstance().saveDiffParams(MessagesStorage.lastSeqValue, MessagesStorage.lastPtsValue, MessagesStorage.lastDateValue, MessagesStorage.lastQtsValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2954,9 +3000,15 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
if (update instanceof TLRPC.TL_updateNewMessage) {
|
if (update instanceof TLRPC.TL_updateNewMessage) {
|
||||||
TLRPC.TL_updateNewMessage upd = (TLRPC.TL_updateNewMessage)update;
|
TLRPC.TL_updateNewMessage upd = (TLRPC.TL_updateNewMessage)update;
|
||||||
if (checkForUsers) {
|
if (checkForUsers) {
|
||||||
if (usersDict.get(upd.message.from_id) == null && getUser(upd.message.from_id) == null || upd.message.to_id.chat_id != 0 && chatsDict.get(upd.message.to_id.chat_id) == null && getChat(upd.message.to_id.chat_id) == null) {
|
TLRPC.User user = getUser(upd.message.from_id);
|
||||||
|
if (usersDict.get(upd.message.from_id) == null && user == null || upd.message.to_id.chat_id != 0 && chatsDict.get(upd.message.to_id.chat_id) == null && getChat(upd.message.to_id.chat_id) == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (user != null && user.status != null && user.status.expires <= 0) {
|
||||||
|
onlinePrivacy.put(upd.message.from_id, ConnectionsManager.getInstance().getCurrentTime());
|
||||||
|
interfaceUpdateMask |= UPDATE_MASK_STATUS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
messagesArr.add(upd.message);
|
messagesArr.add(upd.message);
|
||||||
MessageObject obj = new MessageObject(upd.message, usersDict, 2);
|
MessageObject obj = new MessageObject(upd.message, usersDict, 2);
|
||||||
|
@ -3018,6 +3070,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
arr.add(newUser);
|
arr.add(newUser);
|
||||||
printChanged = true;
|
printChanged = true;
|
||||||
}
|
}
|
||||||
|
onlinePrivacy.put(update.user_id, ConnectionsManager.getInstance().getCurrentTime());
|
||||||
}
|
}
|
||||||
} else if (update instanceof TLRPC.TL_updateChatParticipants) {
|
} else if (update instanceof TLRPC.TL_updateChatParticipants) {
|
||||||
interfaceUpdateMask |= UPDATE_MASK_CHAT_MEMBERS;
|
interfaceUpdateMask |= UPDATE_MASK_CHAT_MEMBERS;
|
||||||
|
@ -3143,6 +3196,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
arr.add(newUser);
|
arr.add(newUser);
|
||||||
printChanged = true;
|
printChanged = true;
|
||||||
}
|
}
|
||||||
|
onlinePrivacy.put(update.user_id, ConnectionsManager.getInstance().getCurrentTime());
|
||||||
}
|
}
|
||||||
} else if (update instanceof TLRPC.TL_updateEncryptedMessagesRead) {
|
} else if (update instanceof TLRPC.TL_updateEncryptedMessagesRead) {
|
||||||
markAsReadEncrypted.put(update.chat_id, Math.max(update.max_date, update.date));
|
markAsReadEncrypted.put(update.chat_id, Math.max(update.max_date, update.date));
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
package org.telegram.android;
|
package org.telegram.android;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -235,8 +236,10 @@ public class NotificationsController {
|
||||||
try {
|
try {
|
||||||
AlarmManager alarm = (AlarmManager) ApplicationLoader.applicationContext.getSystemService(Context.ALARM_SERVICE);
|
AlarmManager alarm = (AlarmManager) ApplicationLoader.applicationContext.getSystemService(Context.ALARM_SERVICE);
|
||||||
PendingIntent pintent = PendingIntent.getService(ApplicationLoader.applicationContext, 0, new Intent(ApplicationLoader.applicationContext, NotificationRepeat.class), 0);
|
PendingIntent pintent = PendingIntent.getService(ApplicationLoader.applicationContext, 0, new Intent(ApplicationLoader.applicationContext, NotificationRepeat.class), 0);
|
||||||
if (personal_count > 0) {
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
alarm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60 * 60 * 1000, pintent);
|
int minutes = preferences.getInt("repeat_messages", 60);
|
||||||
|
if (minutes > 0 || personal_count > 0) {
|
||||||
|
alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + minutes * 60 * 1000, pintent);
|
||||||
} else {
|
} else {
|
||||||
alarm.cancel(pintent);
|
alarm.cancel(pintent);
|
||||||
}
|
}
|
||||||
|
@ -289,6 +292,9 @@ public class NotificationsController {
|
||||||
boolean inAppSounds = false;
|
boolean inAppSounds = false;
|
||||||
boolean inAppVibrate = false;
|
boolean inAppVibrate = false;
|
||||||
boolean inAppPreview = false;
|
boolean inAppPreview = false;
|
||||||
|
boolean inAppPriority = false;
|
||||||
|
int priority = 0;
|
||||||
|
int priority_override = 0;
|
||||||
int vibrate_override = 0;
|
int vibrate_override = 0;
|
||||||
|
|
||||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE);
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Context.MODE_PRIVATE);
|
||||||
|
@ -302,7 +308,9 @@ public class NotificationsController {
|
||||||
inAppSounds = preferences.getBoolean("EnableInAppSounds", true);
|
inAppSounds = preferences.getBoolean("EnableInAppSounds", true);
|
||||||
inAppVibrate = preferences.getBoolean("EnableInAppVibrate", true);
|
inAppVibrate = preferences.getBoolean("EnableInAppVibrate", true);
|
||||||
inAppPreview = preferences.getBoolean("EnableInAppPreview", true);
|
inAppPreview = preferences.getBoolean("EnableInAppPreview", true);
|
||||||
|
inAppPriority = preferences.getBoolean("EnableInAppPriority", false);
|
||||||
vibrate_override = preferences.getInt("vibrate_" + dialog_id, 0);
|
vibrate_override = preferences.getInt("vibrate_" + dialog_id, 0);
|
||||||
|
priority_override = preferences.getInt("priority_" + dialog_id, 3);
|
||||||
|
|
||||||
choosenSoundPath = preferences.getString("sound_path_" + dialog_id, null);
|
choosenSoundPath = preferences.getString("sound_path_" + dialog_id, null);
|
||||||
if (chat_id != 0) {
|
if (chat_id != 0) {
|
||||||
|
@ -312,6 +320,7 @@ public class NotificationsController {
|
||||||
choosenSoundPath = preferences.getString("GroupSoundPath", defaultPath);
|
choosenSoundPath = preferences.getString("GroupSoundPath", defaultPath);
|
||||||
}
|
}
|
||||||
needVibrate = preferences.getInt("vibrate_group", 0);
|
needVibrate = preferences.getInt("vibrate_group", 0);
|
||||||
|
priority = preferences.getInt("priority_group", 1);
|
||||||
ledColor = preferences.getInt("GroupLed", 0xff00ff00);
|
ledColor = preferences.getInt("GroupLed", 0xff00ff00);
|
||||||
} else if (user_id != 0) {
|
} else if (user_id != 0) {
|
||||||
if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) {
|
if (choosenSoundPath != null && choosenSoundPath.equals(defaultPath)) {
|
||||||
|
@ -320,12 +329,17 @@ public class NotificationsController {
|
||||||
choosenSoundPath = preferences.getString("GlobalSoundPath", defaultPath);
|
choosenSoundPath = preferences.getString("GlobalSoundPath", defaultPath);
|
||||||
}
|
}
|
||||||
needVibrate = preferences.getInt("vibrate_messages", 0);
|
needVibrate = preferences.getInt("vibrate_messages", 0);
|
||||||
|
priority = preferences.getInt("priority_group", 1);
|
||||||
ledColor = preferences.getInt("MessagesLed", 0xff00ff00);
|
ledColor = preferences.getInt("MessagesLed", 0xff00ff00);
|
||||||
}
|
}
|
||||||
if (preferences.contains("color_" + dialog_id)) {
|
if (preferences.contains("color_" + dialog_id)) {
|
||||||
ledColor = preferences.getInt("color_" + dialog_id, 0);
|
ledColor = preferences.getInt("color_" + dialog_id, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (priority_override != 3) {
|
||||||
|
priority = priority_override;
|
||||||
|
}
|
||||||
|
|
||||||
if (needVibrate == 2 && (vibrate_override == 1 || vibrate_override == 3 || vibrate_override == 5) || needVibrate != 2 && vibrate_override == 2 || vibrate_override != 0) {
|
if (needVibrate == 2 && (vibrate_override == 1 || vibrate_override == 3 || vibrate_override == 5) || needVibrate != 2 && vibrate_override == 2 || vibrate_override != 0) {
|
||||||
needVibrate = vibrate_override;
|
needVibrate = vibrate_override;
|
||||||
}
|
}
|
||||||
|
@ -336,6 +350,11 @@ public class NotificationsController {
|
||||||
if (!inAppVibrate) {
|
if (!inAppVibrate) {
|
||||||
needVibrate = 2;
|
needVibrate = 2;
|
||||||
}
|
}
|
||||||
|
if (!inAppPriority) {
|
||||||
|
priority = 0;
|
||||||
|
} else if (priority == 2) {
|
||||||
|
priority = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,9 +416,13 @@ public class NotificationsController {
|
||||||
.setGroup("messages")
|
.setGroup("messages")
|
||||||
.setGroupSummary(true);
|
.setGroupSummary(true);
|
||||||
|
|
||||||
//if (ApplicationLoader.mainInterfacePaused) {
|
if (priority == 0) {
|
||||||
// mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH);
|
mBuilder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||||
//}
|
} else if (priority == 1) {
|
||||||
|
mBuilder.setPriority(NotificationCompat.PRIORITY_HIGH);
|
||||||
|
} else if (priority == 2) {
|
||||||
|
mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
|
||||||
|
}
|
||||||
|
|
||||||
String lastMessage = null;
|
String lastMessage = null;
|
||||||
String lastMessageFull = null;
|
String lastMessageFull = null;
|
||||||
|
|
|
@ -1856,10 +1856,21 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void prepareSendingDocumentInternal(final String path, String originalPath, final long dialog_id) {
|
private static void prepareSendingDocumentInternal(String path, String originalPath, Uri uri, String mime, final long dialog_id) {
|
||||||
if (path == null || path.length() == 0) {
|
if ((path == null || path.length() == 0) && uri == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
MimeTypeMap myMime = MimeTypeMap.getSingleton();
|
||||||
|
if (uri != null) {
|
||||||
|
String extension = null;
|
||||||
|
if (mime != null) {
|
||||||
|
extension = myMime.getExtensionFromMimeType(mime);
|
||||||
|
}
|
||||||
|
if (extension == null) {
|
||||||
|
extension = "txt";
|
||||||
|
}
|
||||||
|
path = MediaController.copyDocumentToCache(uri, extension);
|
||||||
|
}
|
||||||
final File f = new File(path);
|
final File f = new File(path);
|
||||||
if (!f.exists() || f.length() == 0) {
|
if (!f.exists() || f.length() == 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -1893,7 +1904,6 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
document.size = (int)f.length();
|
document.size = (int)f.length();
|
||||||
document.dc_id = 0;
|
document.dc_id = 0;
|
||||||
if (ext.length() != 0) {
|
if (ext.length() != 0) {
|
||||||
MimeTypeMap myMime = MimeTypeMap.getSingleton();
|
|
||||||
String mimeType = myMime.getMimeTypeFromExtension(ext.toLowerCase());
|
String mimeType = myMime.getMimeTypeFromExtension(ext.toLowerCase());
|
||||||
if (mimeType != null) {
|
if (mimeType != null) {
|
||||||
document.mime_type = mimeType;
|
document.mime_type = mimeType;
|
||||||
|
@ -1921,34 +1931,46 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
|
|
||||||
final TLRPC.TL_document documentFinal = document;
|
final TLRPC.TL_document documentFinal = document;
|
||||||
final String originalPathFinal = originalPath;
|
final String originalPathFinal = originalPath;
|
||||||
|
final String pathFinal = path;
|
||||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
SendMessagesHelper.getInstance().sendMessage(documentFinal, originalPathFinal, path, dialog_id);
|
SendMessagesHelper.getInstance().sendMessage(documentFinal, originalPathFinal, pathFinal, dialog_id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void prepareSendingDocument(String path, String originalPath, long dialog_id) {
|
public static void prepareSendingDocument(String path, String originalPath, Uri uri, String mine, long dialog_id) {
|
||||||
if (path == null || originalPath == null) {
|
if ((path == null || originalPath == null) && uri == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ArrayList<String> paths = new ArrayList<String>();
|
ArrayList<String> paths = new ArrayList<String>();
|
||||||
ArrayList<String> originalPaths = new ArrayList<String>();
|
ArrayList<String> originalPaths = new ArrayList<String>();
|
||||||
|
ArrayList<Uri> uris = null;
|
||||||
|
if (uri != null) {
|
||||||
|
uris = new ArrayList<Uri>();
|
||||||
|
}
|
||||||
paths.add(path);
|
paths.add(path);
|
||||||
originalPaths.add(originalPath);
|
originalPaths.add(originalPath);
|
||||||
prepareSendingDocuments(paths, originalPaths, dialog_id);
|
prepareSendingDocuments(paths, originalPaths, uris, mine, dialog_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void prepareSendingDocuments(final ArrayList<String> paths, final ArrayList<String> originalPaths, final long dialog_id) {
|
public static void prepareSendingDocuments(final ArrayList<String> paths, final ArrayList<String> originalPaths, final ArrayList<Uri> uris, final String mime, final long dialog_id) {
|
||||||
if (paths == null && originalPaths == null || paths != null && originalPaths != null && paths.size() != originalPaths.size()) {
|
if (paths == null && originalPaths == null && uris == null || paths != null && originalPaths != null && paths.size() != originalPaths.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (int a = 0; a < paths.size(); a++) {
|
if (paths != null) {
|
||||||
prepareSendingDocumentInternal(paths.get(a), originalPaths.get(a), dialog_id);
|
for (int a = 0; a < paths.size(); a++) {
|
||||||
|
prepareSendingDocumentInternal(paths.get(a), originalPaths.get(a), null, mime, dialog_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (uris != null) {
|
||||||
|
for (int a = 0; a < uris.size(); a++) {
|
||||||
|
prepareSendingDocumentInternal(null, null, uris.get(a), mime, dialog_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
|
@ -2050,7 +2072,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
if (sendAsDocuments != null && !sendAsDocuments.isEmpty()) {
|
if (sendAsDocuments != null && !sendAsDocuments.isEmpty()) {
|
||||||
for (int a = 0; a < sendAsDocuments.size(); a++) {
|
for (int a = 0; a < sendAsDocuments.size(); a++) {
|
||||||
prepareSendingDocumentInternal(sendAsDocuments.get(a), sendAsDocumentsOriginal.get(a), dialog_id);
|
prepareSendingDocumentInternal(sendAsDocuments.get(a), sendAsDocumentsOriginal.get(a), null, "gif", dialog_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -628,7 +628,7 @@ public class ActionBarLayout extends FrameLayout {
|
||||||
currentAnimation = new AnimatorSetProxy();
|
currentAnimation = new AnimatorSetProxy();
|
||||||
currentAnimation.playTogether(
|
currentAnimation.playTogether(
|
||||||
ObjectAnimatorProxy.ofFloat(containerView, "alpha", 0.0f, 1.0f),
|
ObjectAnimatorProxy.ofFloat(containerView, "alpha", 0.0f, 1.0f),
|
||||||
ObjectAnimatorProxy.ofFloat(containerView, "translationY", AndroidUtilities.dp(48), 0));
|
ObjectAnimatorProxy.ofFloat(containerView, "translationX", AndroidUtilities.dp(48), 0));
|
||||||
currentAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
|
currentAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
|
||||||
currentAnimation.setDuration(200);
|
currentAnimation.setDuration(200);
|
||||||
currentAnimation.addListener(new AnimatorListenerAdapterProxy() {
|
currentAnimation.addListener(new AnimatorListenerAdapterProxy() {
|
||||||
|
@ -730,14 +730,14 @@ public class ActionBarLayout extends FrameLayout {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
closeLastFragmentInternalRemoveOld(currentFragment);
|
closeLastFragmentInternalRemoveOld(currentFragment);
|
||||||
ViewProxy.setTranslationY(containerViewBack, 0);
|
ViewProxy.setTranslationX(containerViewBack, 0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
currentAnimation = new AnimatorSetProxy();
|
currentAnimation = new AnimatorSetProxy();
|
||||||
currentAnimation.playTogether(
|
currentAnimation.playTogether(
|
||||||
ObjectAnimatorProxy.ofFloat(containerViewBack, "alpha", 1.0f, 0.0f),
|
ObjectAnimatorProxy.ofFloat(containerViewBack, "alpha", 1.0f, 0.0f),
|
||||||
ObjectAnimatorProxy.ofFloat(containerViewBack, "translationY", 0, AndroidUtilities.dp(48)));
|
ObjectAnimatorProxy.ofFloat(containerViewBack, "translationX", 0, AndroidUtilities.dp(48)));
|
||||||
currentAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
|
currentAnimation.setInterpolator(new DecelerateInterpolator(1.5f));
|
||||||
currentAnimation.setDuration(200);
|
currentAnimation.setDuration(200);
|
||||||
currentAnimation.addListener(new AnimatorListenerAdapterProxy() {
|
currentAnimation.addListener(new AnimatorListenerAdapterProxy() {
|
||||||
|
|
|
@ -52,6 +52,7 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
private boolean needMessagesSearch;
|
private boolean needMessagesSearch;
|
||||||
private boolean messagesSearchEndReached;
|
private boolean messagesSearchEndReached;
|
||||||
private String lastMessagesSearchString;
|
private String lastMessagesSearchString;
|
||||||
|
private int lastSearchId = 0;
|
||||||
|
|
||||||
public static interface MessagesActivitySearchAdapterDelegate {
|
public static interface MessagesActivitySearchAdapterDelegate {
|
||||||
public abstract void searchStateChanged(boolean searching);
|
public abstract void searchStateChanged(boolean searching);
|
||||||
|
@ -137,15 +138,17 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
}, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors);
|
}, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void searchDialogsInternal(final String query, final boolean serverOnly) {
|
private void searchDialogsInternal(final String query, final boolean serverOnly, final int searchId) {
|
||||||
MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() {
|
MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
|
FileLog.e("tmessages", "trigger search");
|
||||||
ArrayList<TLRPC.User> encUsers = new ArrayList<TLRPC.User>();
|
ArrayList<TLRPC.User> encUsers = new ArrayList<TLRPC.User>();
|
||||||
String q = query.trim().toLowerCase();
|
String q = query.trim().toLowerCase();
|
||||||
if (q.length() == 0) {
|
if (q.length() == 0) {
|
||||||
updateSearchResults(new ArrayList<TLObject>(), new ArrayList<CharSequence>(), new ArrayList<TLRPC.User>());
|
lastSearchId = -1;
|
||||||
|
updateSearchResults(new ArrayList<TLObject>(), new ArrayList<CharSequence>(), new ArrayList<TLRPC.User>(), lastSearchId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ArrayList<TLObject> resultArray = new ArrayList<TLObject>();
|
ArrayList<TLObject> resultArray = new ArrayList<TLObject>();
|
||||||
|
@ -253,7 +256,7 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cursor.dispose();
|
cursor.dispose();
|
||||||
updateSearchResults(resultArray, resultArrayNames, encUsers);
|
updateSearchResults(resultArray, resultArrayNames, encUsers, searchId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
|
@ -261,10 +264,13 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSearchResults(final ArrayList<TLObject> result, final ArrayList<CharSequence> names, final ArrayList<TLRPC.User> encUsers) {
|
private void updateSearchResults(final ArrayList<TLObject> result, final ArrayList<CharSequence> names, final ArrayList<TLRPC.User> encUsers, final int searchId) {
|
||||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
if (searchId != lastSearchId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (TLObject obj : result) {
|
for (TLObject obj : result) {
|
||||||
if (obj instanceof TLRPC.User) {
|
if (obj instanceof TLRPC.User) {
|
||||||
TLRPC.User user = (TLRPC.User) obj;
|
TLRPC.User user = (TLRPC.User) obj;
|
||||||
|
@ -313,6 +319,7 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
queryServerSearch(null);
|
queryServerSearch(null);
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
} else {
|
} else {
|
||||||
|
final int searchId = ++lastSearchId;
|
||||||
searchTimer = new Timer();
|
searchTimer = new Timer();
|
||||||
searchTimer.schedule(new TimerTask() {
|
searchTimer.schedule(new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -323,7 +330,7 @@ public class DialogsSearchAdapter extends BaseContactsSearchAdapter {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
FileLog.e("tmessages", e);
|
FileLog.e("tmessages", e);
|
||||||
}
|
}
|
||||||
searchDialogsInternal(query, serverOnly);
|
searchDialogsInternal(query, serverOnly, searchId);
|
||||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
|
@ -574,7 +574,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
@Override
|
@Override
|
||||||
public void didSelectFile(DocumentSelectActivity activity, String path) {
|
public void didSelectFile(DocumentSelectActivity activity, String path) {
|
||||||
activity.finishFragment();
|
activity.finishFragment();
|
||||||
SendMessagesHelper.prepareSendingDocument(path, path, dialog_id);
|
SendMessagesHelper.prepareSendingDocument(path, path, null, null, dialog_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -854,7 +854,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
addContactItem = headerItem.addSubItem(share_contact, "", 0);
|
addContactItem = headerItem.addSubItem(share_contact, "", 0);
|
||||||
}
|
}
|
||||||
if (currentEncryptedChat != null) {
|
if (currentEncryptedChat != null) {
|
||||||
timeItem2 = headerItem.addSubItem(chat_enc_timer, LocaleController.getString("MessageLifetime", R.string.MessageLifetime), 0);
|
timeItem2 = headerItem.addSubItem(chat_enc_timer, LocaleController.getString("SetTimer", R.string.SetTimer), 0);
|
||||||
}
|
}
|
||||||
headerItem.addSubItem(clear_history, LocaleController.getString("ClearHistory", R.string.ClearHistory), 0);
|
headerItem.addSubItem(clear_history, LocaleController.getString("ClearHistory", R.string.ClearHistory), 0);
|
||||||
if (currentChat != null && !isBroadcast) {
|
if (currentChat != null && !isBroadcast) {
|
||||||
|
@ -957,14 +957,16 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else {
|
} else {
|
||||||
chatListView.setCacheColorHint(0);
|
chatListView.setCacheColorHint(0);
|
||||||
try {
|
try {
|
||||||
if (selectedBackground == 1000001) {
|
if (ApplicationLoader.cachedWallpaper != null) {
|
||||||
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(R.drawable.background_hd);
|
isCustomTheme = selectedBackground != 1000001;
|
||||||
|
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(ApplicationLoader.cachedWallpaper);
|
||||||
} else {
|
} else {
|
||||||
File toFile = new File(ApplicationLoader.applicationContext.getFilesDir(), "wallpaper.jpg");
|
if (selectedBackground == 1000001) {
|
||||||
if (toFile.exists()) {
|
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(R.drawable.background_hd);
|
||||||
if (ApplicationLoader.cachedWallpaper != null) {
|
ApplicationLoader.cachedWallpaper = ((SizeNotifierRelativeLayout) contentView).getBackgroundImage();
|
||||||
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(ApplicationLoader.cachedWallpaper);
|
} else {
|
||||||
} else {
|
File toFile = new File(ApplicationLoader.applicationContext.getFilesDir(), "wallpaper.jpg");
|
||||||
|
if (toFile.exists()) {
|
||||||
Drawable drawable = Drawable.createFromPath(toFile.getAbsolutePath());
|
Drawable drawable = Drawable.createFromPath(toFile.getAbsolutePath());
|
||||||
if (drawable != null) {
|
if (drawable != null) {
|
||||||
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(drawable);
|
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(drawable);
|
||||||
|
@ -973,10 +975,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
contentView.setBackgroundColor(-2693905);
|
contentView.setBackgroundColor(-2693905);
|
||||||
chatListView.setCacheColorHint(-2693905);
|
chatListView.setCacheColorHint(-2693905);
|
||||||
}
|
}
|
||||||
|
isCustomTheme = true;
|
||||||
|
} else {
|
||||||
|
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(R.drawable.background_hd);
|
||||||
|
ApplicationLoader.cachedWallpaper = ((SizeNotifierRelativeLayout) contentView).getBackgroundImage();
|
||||||
|
isCustomTheme = false;
|
||||||
}
|
}
|
||||||
isCustomTheme = true;
|
|
||||||
} else {
|
|
||||||
((SizeNotifierRelativeLayout) contentView).setBackgroundImage(R.drawable.background_hd);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
@ -1792,7 +1796,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
showAttachmentError();
|
showAttachmentError();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SendMessagesHelper.prepareSendingDocument(tempPath, originalPath, dialog_id);
|
SendMessagesHelper.prepareSendingDocument(tempPath, originalPath, null, null, dialog_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,8 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
private String sendingText;
|
private String sendingText;
|
||||||
private ArrayList<Uri> photoPathsArray;
|
private ArrayList<Uri> photoPathsArray;
|
||||||
private ArrayList<String> documentsPathsArray;
|
private ArrayList<String> documentsPathsArray;
|
||||||
|
private ArrayList<Uri> documentsUrisArray;
|
||||||
|
private String documentsMimeType;
|
||||||
private ArrayList<String> documentsOriginalPathsArray;
|
private ArrayList<String> documentsOriginalPathsArray;
|
||||||
private ArrayList<TLRPC.User> contactsToSend;
|
private ArrayList<TLRPC.User> contactsToSend;
|
||||||
private int currentConnectionState;
|
private int currentConnectionState;
|
||||||
|
@ -375,6 +377,8 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
sendingText = null;
|
sendingText = null;
|
||||||
documentsPathsArray = null;
|
documentsPathsArray = null;
|
||||||
documentsOriginalPathsArray = null;
|
documentsOriginalPathsArray = null;
|
||||||
|
documentsMimeType = null;
|
||||||
|
documentsUrisArray = null;
|
||||||
contactsToSend = null;
|
contactsToSend = null;
|
||||||
|
|
||||||
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) {
|
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) {
|
||||||
|
@ -501,7 +505,11 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
documentsOriginalPathsArray.add(uri.toString());
|
documentsOriginalPathsArray.add(uri.toString());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
error = true;
|
if (documentsUrisArray == null) {
|
||||||
|
documentsUrisArray = new ArrayList<Uri>();
|
||||||
|
}
|
||||||
|
documentsUrisArray.add(uri);
|
||||||
|
documentsMimeType = type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
|
@ -628,7 +636,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
pushOpened = false;
|
pushOpened = false;
|
||||||
isNew = false;
|
isNew = false;
|
||||||
}
|
}
|
||||||
if (videoPath != null || photoPathsArray != null || sendingText != null || documentsPathsArray != null || contactsToSend != null) {
|
if (videoPath != null || photoPathsArray != null || sendingText != null || documentsPathsArray != null || contactsToSend != null || documentsUrisArray != null) {
|
||||||
if (!AndroidUtilities.isTablet()) {
|
if (!AndroidUtilities.isTablet()) {
|
||||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats);
|
NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats);
|
||||||
}
|
}
|
||||||
|
@ -753,8 +761,8 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
if (photoPathsArray != null) {
|
if (photoPathsArray != null) {
|
||||||
SendMessagesHelper.prepareSendingPhotos(null, photoPathsArray, dialog_id);
|
SendMessagesHelper.prepareSendingPhotos(null, photoPathsArray, dialog_id);
|
||||||
}
|
}
|
||||||
if (documentsPathsArray != null) {
|
if (documentsPathsArray != null || documentsUrisArray != null) {
|
||||||
SendMessagesHelper.prepareSendingDocuments(documentsPathsArray, documentsOriginalPathsArray, dialog_id);
|
SendMessagesHelper.prepareSendingDocuments(documentsPathsArray, documentsOriginalPathsArray, documentsUrisArray, documentsMimeType, dialog_id);
|
||||||
}
|
}
|
||||||
if (contactsToSend != null && !contactsToSend.isEmpty()) {
|
if (contactsToSend != null && !contactsToSend.isEmpty()) {
|
||||||
for (TLRPC.User user : contactsToSend) {
|
for (TLRPC.User user : contactsToSend) {
|
||||||
|
@ -1095,16 +1103,26 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||||
if (AndroidUtilities.isTablet()) {
|
if (keyCode == KeyEvent.KEYCODE_MENU) {
|
||||||
if (layersActionBarLayout.getVisibility() == View.VISIBLE && !layersActionBarLayout.fragmentsStack.isEmpty()) {
|
if (AndroidUtilities.isTablet()) {
|
||||||
layersActionBarLayout.onKeyUp(keyCode, event);
|
if (layersActionBarLayout.getVisibility() == View.VISIBLE && !layersActionBarLayout.fragmentsStack.isEmpty()) {
|
||||||
} else if (rightActionBarLayout.getVisibility() == View.VISIBLE && !rightActionBarLayout.fragmentsStack.isEmpty()) {
|
layersActionBarLayout.onKeyUp(keyCode, event);
|
||||||
rightActionBarLayout.onKeyUp(keyCode, event);
|
} else if (rightActionBarLayout.getVisibility() == View.VISIBLE && !rightActionBarLayout.fragmentsStack.isEmpty()) {
|
||||||
|
rightActionBarLayout.onKeyUp(keyCode, event);
|
||||||
|
} else {
|
||||||
|
actionBarLayout.onKeyUp(keyCode, event);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
actionBarLayout.onKeyUp(keyCode, event);
|
if (actionBarLayout.fragmentsStack.size() == 1) {
|
||||||
|
if (!drawerLayoutContainer.isDrawerOpened()) {
|
||||||
|
drawerLayoutContainer.openDrawer(false);
|
||||||
|
} else {
|
||||||
|
drawerLayoutContainer.closeDrawer(false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
actionBarLayout.onKeyUp(keyCode, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
actionBarLayout.onKeyUp(keyCode, event);
|
|
||||||
}
|
}
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import android.content.SharedPreferences;
|
||||||
import android.media.Ringtone;
|
import android.media.Ringtone;
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -60,6 +61,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
private int messageSoundRow;
|
private int messageSoundRow;
|
||||||
private int messageLedRow;
|
private int messageLedRow;
|
||||||
private int messagePopupNotificationRow;
|
private int messagePopupNotificationRow;
|
||||||
|
private int messagePriorityRow;
|
||||||
private int groupSectionRow2;
|
private int groupSectionRow2;
|
||||||
private int groupSectionRow;
|
private int groupSectionRow;
|
||||||
private int groupAlertRow;
|
private int groupAlertRow;
|
||||||
|
@ -68,11 +70,13 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
private int groupSoundRow;
|
private int groupSoundRow;
|
||||||
private int groupLedRow;
|
private int groupLedRow;
|
||||||
private int groupPopupNotificationRow;
|
private int groupPopupNotificationRow;
|
||||||
|
private int groupPriorityRow;
|
||||||
private int inappSectionRow2;
|
private int inappSectionRow2;
|
||||||
private int inappSectionRow;
|
private int inappSectionRow;
|
||||||
private int inappSoundRow;
|
private int inappSoundRow;
|
||||||
private int inappVibrateRow;
|
private int inappVibrateRow;
|
||||||
private int inappPreviewRow;
|
private int inappPreviewRow;
|
||||||
|
private int inappPriorityRow;
|
||||||
private int eventsSectionRow2;
|
private int eventsSectionRow2;
|
||||||
private int eventsSectionRow;
|
private int eventsSectionRow;
|
||||||
private int contactJoinedRow;
|
private int contactJoinedRow;
|
||||||
|
@ -80,6 +84,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
private int otherSectionRow;
|
private int otherSectionRow;
|
||||||
private int badgeNumberRow;
|
private int badgeNumberRow;
|
||||||
private int pebbleAlertRow;
|
private int pebbleAlertRow;
|
||||||
|
private int repeatRow;
|
||||||
private int resetSectionRow2;
|
private int resetSectionRow2;
|
||||||
private int resetSectionRow;
|
private int resetSectionRow;
|
||||||
private int resetNotificationsRow;
|
private int resetNotificationsRow;
|
||||||
|
@ -96,6 +101,11 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
messageVibrateRow = rowCount++;
|
messageVibrateRow = rowCount++;
|
||||||
messagePopupNotificationRow = rowCount++;
|
messagePopupNotificationRow = rowCount++;
|
||||||
messageSoundRow = rowCount++;
|
messageSoundRow = rowCount++;
|
||||||
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
messagePriorityRow = rowCount++;
|
||||||
|
} else {
|
||||||
|
messagePriorityRow = -1;
|
||||||
|
}
|
||||||
groupSectionRow2 = rowCount++;
|
groupSectionRow2 = rowCount++;
|
||||||
groupSectionRow = rowCount++;
|
groupSectionRow = rowCount++;
|
||||||
groupAlertRow = rowCount++;
|
groupAlertRow = rowCount++;
|
||||||
|
@ -104,11 +114,21 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
groupVibrateRow = rowCount++;
|
groupVibrateRow = rowCount++;
|
||||||
groupPopupNotificationRow = rowCount++;
|
groupPopupNotificationRow = rowCount++;
|
||||||
groupSoundRow = rowCount++;
|
groupSoundRow = rowCount++;
|
||||||
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
groupPriorityRow = rowCount++;
|
||||||
|
} else {
|
||||||
|
groupPriorityRow = -1;
|
||||||
|
}
|
||||||
inappSectionRow2 = rowCount++;
|
inappSectionRow2 = rowCount++;
|
||||||
inappSectionRow = rowCount++;
|
inappSectionRow = rowCount++;
|
||||||
inappSoundRow = rowCount++;
|
inappSoundRow = rowCount++;
|
||||||
inappVibrateRow = rowCount++;
|
inappVibrateRow = rowCount++;
|
||||||
inappPreviewRow = rowCount++;
|
inappPreviewRow = rowCount++;
|
||||||
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
inappPriorityRow = rowCount++;
|
||||||
|
} else {
|
||||||
|
inappPriorityRow = -1;
|
||||||
|
}
|
||||||
eventsSectionRow2 = rowCount++;
|
eventsSectionRow2 = rowCount++;
|
||||||
eventsSectionRow = rowCount++;
|
eventsSectionRow = rowCount++;
|
||||||
contactJoinedRow = rowCount++;
|
contactJoinedRow = rowCount++;
|
||||||
|
@ -116,6 +136,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
otherSectionRow = rowCount++;
|
otherSectionRow = rowCount++;
|
||||||
badgeNumberRow = rowCount++;
|
badgeNumberRow = rowCount++;
|
||||||
pebbleAlertRow = rowCount++;
|
pebbleAlertRow = rowCount++;
|
||||||
|
repeatRow = rowCount++;
|
||||||
resetSectionRow2 = rowCount++;
|
resetSectionRow2 = rowCount++;
|
||||||
resetSectionRow = rowCount++;
|
resetSectionRow = rowCount++;
|
||||||
resetNotificationsRow = rowCount++;
|
resetNotificationsRow = rowCount++;
|
||||||
|
@ -273,6 +294,12 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
enabled = preferences.getBoolean("EnableInAppPreview", true);
|
enabled = preferences.getBoolean("EnableInAppPreview", true);
|
||||||
editor.putBoolean("EnableInAppPreview", !enabled);
|
editor.putBoolean("EnableInAppPreview", !enabled);
|
||||||
editor.commit();
|
editor.commit();
|
||||||
|
} else if (i == inappPriorityRow) {
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
enabled = preferences.getBoolean("EnableInAppPriority", false);
|
||||||
|
editor.putBoolean("EnableInAppPriority", !enabled);
|
||||||
|
editor.commit();
|
||||||
} else if (i == contactJoinedRow) {
|
} else if (i == contactJoinedRow) {
|
||||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
@ -429,6 +456,66 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
});
|
});
|
||||||
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
||||||
showAlertDialog(builder);
|
showAlertDialog(builder);
|
||||||
|
} else if (i == messagePriorityRow || i == groupPriorityRow) {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||||
|
builder.setTitle(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority));
|
||||||
|
builder.setItems(new CharSequence[] {
|
||||||
|
LocaleController.getString("NotificationsPriorityDefault", R.string.NotificationsPriorityDefault),
|
||||||
|
LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh),
|
||||||
|
LocaleController.getString("NotificationsPriorityMax", R.string.NotificationsPriorityMax)
|
||||||
|
}, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
|
if (i == messagePriorityRow) {
|
||||||
|
preferences.edit().putInt("priority_messages", which).commit();
|
||||||
|
} else if (i == groupPriorityRow) {
|
||||||
|
preferences.edit().putInt("priority_group", which).commit();
|
||||||
|
}
|
||||||
|
if (listView != null) {
|
||||||
|
listView.invalidateViews();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
||||||
|
showAlertDialog(builder);
|
||||||
|
} else if (i == repeatRow) {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||||
|
builder.setTitle(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications));
|
||||||
|
builder.setItems(new CharSequence[] {
|
||||||
|
LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever),
|
||||||
|
LocaleController.formatPluralString("Minutes", 5),
|
||||||
|
LocaleController.formatPluralString("Minutes", 10),
|
||||||
|
LocaleController.formatPluralString("Minutes", 30),
|
||||||
|
LocaleController.formatPluralString("Hours", 1),
|
||||||
|
LocaleController.formatPluralString("Hours", 2),
|
||||||
|
LocaleController.formatPluralString("Hours", 4)
|
||||||
|
}, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
int minutes = 0;
|
||||||
|
if (which == 1) {
|
||||||
|
minutes = 5;
|
||||||
|
} else if (which == 2) {
|
||||||
|
minutes = 10;
|
||||||
|
} else if (which == 3) {
|
||||||
|
minutes = 30;
|
||||||
|
} else if (which == 4) {
|
||||||
|
minutes = 60;
|
||||||
|
} else if (which == 5) {
|
||||||
|
minutes = 60 * 2;
|
||||||
|
} else if (which == 6) {
|
||||||
|
minutes = 60 * 4;
|
||||||
|
}
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
|
preferences.edit().putInt("repeat_messages", minutes).commit();
|
||||||
|
if (listView != null) {
|
||||||
|
listView.invalidateViews();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
||||||
|
showAlertDialog(builder);
|
||||||
}
|
}
|
||||||
if (view instanceof TextCheckCell) {
|
if (view instanceof TextCheckCell) {
|
||||||
((TextCheckCell) view).setChecked(!enabled);
|
((TextCheckCell) view).setChecked(!enabled);
|
||||||
|
@ -597,11 +684,13 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
} else if (i == inappVibrateRow) {
|
} else if (i == inappVibrateRow) {
|
||||||
checkCell.setTextAndCheck(LocaleController.getString("InAppVibrate", R.string.InAppVibrate), preferences.getBoolean("EnableInAppVibrate", true), true);
|
checkCell.setTextAndCheck(LocaleController.getString("InAppVibrate", R.string.InAppVibrate), preferences.getBoolean("EnableInAppVibrate", true), true);
|
||||||
} else if (i == inappPreviewRow) {
|
} else if (i == inappPreviewRow) {
|
||||||
checkCell.setTextAndCheck(LocaleController.getString("InAppPreview", R.string.InAppPreview), preferences.getBoolean("EnableInAppPreview", true), false);
|
checkCell.setTextAndCheck(LocaleController.getString("InAppPreview", R.string.InAppPreview), preferences.getBoolean("EnableInAppPreview", true), true);
|
||||||
|
} else if (i == inappPriorityRow) {
|
||||||
|
checkCell.setTextAndCheck(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), preferences.getBoolean("EnableInAppPriority", false), false);
|
||||||
} else if (i == contactJoinedRow) {
|
} else if (i == contactJoinedRow) {
|
||||||
checkCell.setTextAndCheck(LocaleController.getString("ContactJoined", R.string.ContactJoined), preferences.getBoolean("EnableContactJoined", true), false);
|
checkCell.setTextAndCheck(LocaleController.getString("ContactJoined", R.string.ContactJoined), preferences.getBoolean("EnableContactJoined", true), false);
|
||||||
} else if (i == pebbleAlertRow) {
|
} else if (i == pebbleAlertRow) {
|
||||||
checkCell.setTextAndCheck(LocaleController.getString("Pebble", R.string.Pebble), preferences.getBoolean("EnablePebbleNotifications", false), false);
|
checkCell.setTextAndCheck(LocaleController.getString("Pebble", R.string.Pebble), preferences.getBoolean("EnablePebbleNotifications", false), true);
|
||||||
} else if (i == notificationsServiceRow) {
|
} else if (i == notificationsServiceRow) {
|
||||||
checkCell.setTextAndCheck(LocaleController.getString("NotificationsService", R.string.NotificationsService), preferences.getBoolean("pushService", true), false);
|
checkCell.setTextAndCheck(LocaleController.getString("NotificationsService", R.string.NotificationsService), preferences.getBoolean("pushService", true), false);
|
||||||
} else if (i == badgeNumberRow) {
|
} else if (i == badgeNumberRow) {
|
||||||
|
@ -627,7 +716,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
if (value.equals("NoSound")) {
|
if (value.equals("NoSound")) {
|
||||||
value = LocaleController.getString("NoSound", R.string.NoSound);
|
value = LocaleController.getString("NoSound", R.string.NoSound);
|
||||||
}
|
}
|
||||||
textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, false);
|
textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, true);
|
||||||
} else if (i == resetNotificationsRow) {
|
} else if (i == resetNotificationsRow) {
|
||||||
textCell.setMultilineDetail(true);
|
textCell.setMultilineDetail(true);
|
||||||
textCell.setTextAndValue(LocaleController.getString("ResetAllNotifications", R.string.ResetAllNotifications), LocaleController.getString("UndoAllCustom", R.string.UndoAllCustom), false);
|
textCell.setTextAndValue(LocaleController.getString("ResetAllNotifications", R.string.ResetAllNotifications), LocaleController.getString("UndoAllCustom", R.string.UndoAllCustom), false);
|
||||||
|
@ -667,6 +756,33 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
} else if (value == 3) {
|
} else if (value == 3) {
|
||||||
textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Long", R.string.Long), true);
|
textCell.setTextAndValue(LocaleController.getString("Vibrate", R.string.Vibrate), LocaleController.getString("Long", R.string.Long), true);
|
||||||
}
|
}
|
||||||
|
} else if (i == repeatRow) {
|
||||||
|
textCell.setMultilineDetail(false);
|
||||||
|
int minutes = preferences.getInt("repeat_messages", 60);
|
||||||
|
String value;
|
||||||
|
if (minutes == 0) {
|
||||||
|
value = LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever);
|
||||||
|
} else if (minutes < 60) {
|
||||||
|
value = LocaleController.formatPluralString("Minutes", minutes);
|
||||||
|
} else {
|
||||||
|
value = LocaleController.formatPluralString("Hours", minutes / 60);
|
||||||
|
}
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("RepeatNotifications", R.string.RepeatNotifications), value, false);
|
||||||
|
} else if (i == messagePriorityRow || i == groupPriorityRow) {
|
||||||
|
textCell.setMultilineDetail(false);
|
||||||
|
int value = 0;
|
||||||
|
if (i == messagePriorityRow) {
|
||||||
|
value = preferences.getInt("priority_messages", 1);
|
||||||
|
} else if (i == groupPriorityRow) {
|
||||||
|
value = preferences.getInt("priority_group", 1);
|
||||||
|
}
|
||||||
|
if (value == 0) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityDefault", R.string.NotificationsPriorityDefault), false);
|
||||||
|
} else if (value == 1) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh), false);
|
||||||
|
} else if (value == 2) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityMax", R.string.NotificationsPriorityMax), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (type == 3) {
|
} else if (type == 3) {
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
|
@ -697,7 +813,7 @@ public class NotificationsSettingsActivity extends BaseFragment implements Notif
|
||||||
} else if (i == messageAlertRow || i == messagePreviewRow || i == groupAlertRow ||
|
} else if (i == messageAlertRow || i == messagePreviewRow || i == groupAlertRow ||
|
||||||
i == groupPreviewRow || i == inappSoundRow || i == inappVibrateRow ||
|
i == groupPreviewRow || i == inappSoundRow || i == inappVibrateRow ||
|
||||||
i == inappPreviewRow || i == contactJoinedRow || i == pebbleAlertRow ||
|
i == inappPreviewRow || i == contactJoinedRow || i == pebbleAlertRow ||
|
||||||
i == notificationsServiceRow || i == badgeNumberRow) {
|
i == notificationsServiceRow || i == badgeNumberRow || i == inappPriorityRow) {
|
||||||
return 1;
|
return 1;
|
||||||
} else if (i == messageLedRow || i == groupLedRow) {
|
} else if (i == messageLedRow || i == groupLedRow) {
|
||||||
return 3;
|
return 3;
|
||||||
|
|
|
@ -1125,11 +1125,12 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
|
||||||
}
|
}
|
||||||
} else if (chat_id != 0) {
|
} else if (chat_id != 0) {
|
||||||
ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_other);
|
ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_other);
|
||||||
item.addSubItem(edit_name, LocaleController.getString("EditName", R.string.EditName), 0);
|
|
||||||
if (chat_id > 0) {
|
if (chat_id > 0) {
|
||||||
item.addSubItem(add_member, LocaleController.getString("AddMember", R.string.AddMember), 0);
|
item.addSubItem(add_member, LocaleController.getString("AddMember", R.string.AddMember), 0);
|
||||||
|
item.addSubItem(edit_name, LocaleController.getString("EditName", R.string.EditName), 0);
|
||||||
item.addSubItem(leave_group, LocaleController.getString("DeleteAndExit", R.string.DeleteAndExit), 0);
|
item.addSubItem(leave_group, LocaleController.getString("DeleteAndExit", R.string.DeleteAndExit), 0);
|
||||||
} else {
|
} else {
|
||||||
|
item.addSubItem(edit_name, LocaleController.getString("EditName", R.string.EditName), 0);
|
||||||
item.addSubItem(add_member, LocaleController.getString("AddRecipient", R.string.AddRecipient), 0);
|
item.addSubItem(add_member, LocaleController.getString("AddRecipient", R.string.AddRecipient), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import android.content.SharedPreferences;
|
||||||
import android.media.Ringtone;
|
import android.media.Ringtone;
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -53,6 +54,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||||
private int settingsNotificationsRow;
|
private int settingsNotificationsRow;
|
||||||
private int settingsVibrateRow;
|
private int settingsVibrateRow;
|
||||||
private int settingsSoundRow;
|
private int settingsSoundRow;
|
||||||
|
private int settingsPriorityRow;
|
||||||
private int settingsLedRow;
|
private int settingsLedRow;
|
||||||
private int rowCount = 0;
|
private int rowCount = 0;
|
||||||
|
|
||||||
|
@ -66,6 +68,11 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||||
settingsNotificationsRow = rowCount++;
|
settingsNotificationsRow = rowCount++;
|
||||||
settingsVibrateRow = rowCount++;
|
settingsVibrateRow = rowCount++;
|
||||||
settingsSoundRow = rowCount++;
|
settingsSoundRow = rowCount++;
|
||||||
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
settingsPriorityRow = rowCount++;
|
||||||
|
} else {
|
||||||
|
settingsPriorityRow = -1;
|
||||||
|
}
|
||||||
settingsLedRow = rowCount++;
|
settingsLedRow = rowCount++;
|
||||||
NotificationCenter.getInstance().addObserver(this, NotificationCenter.notificationsSettingsUpdated);
|
NotificationCenter.getInstance().addObserver(this, NotificationCenter.notificationsSettingsUpdated);
|
||||||
return super.onFragmentCreate();
|
return super.onFragmentCreate();
|
||||||
|
@ -253,6 +260,31 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
showAlertDialog(builder);
|
showAlertDialog(builder);
|
||||||
|
} else if (i == settingsPriorityRow) {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||||
|
builder.setTitle(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority));
|
||||||
|
builder.setItems(new CharSequence[] {
|
||||||
|
LocaleController.getString("SettingsDefault", R.string.SettingsDefault),
|
||||||
|
LocaleController.getString("NotificationsPriorityDefault", R.string.NotificationsPriorityDefault),
|
||||||
|
LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh),
|
||||||
|
LocaleController.getString("NotificationsPriorityMax", R.string.NotificationsPriorityMax)
|
||||||
|
}, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
if (which == 0) {
|
||||||
|
which = 3;
|
||||||
|
} else {
|
||||||
|
which--;
|
||||||
|
}
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("Notifications", Activity.MODE_PRIVATE);
|
||||||
|
preferences.edit().putInt("priority_" + dialog_id, which).commit();
|
||||||
|
if (listView != null) {
|
||||||
|
listView.invalidateViews();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
||||||
|
showAlertDialog(builder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -425,6 +457,17 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||||
value = LocaleController.getString("NoSound", R.string.NoSound);
|
value = LocaleController.getString("NoSound", R.string.NoSound);
|
||||||
}
|
}
|
||||||
textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, true);
|
textCell.setTextAndValue(LocaleController.getString("Sound", R.string.Sound), value, true);
|
||||||
|
} else if (i == settingsPriorityRow) {
|
||||||
|
int value = preferences.getInt("priority_" + dialog_id, 3);
|
||||||
|
if (value == 0) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityDefault", R.string.NotificationsPriorityDefault), true);
|
||||||
|
} else if (value == 1) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityHigh", R.string.NotificationsPriorityHigh), true);
|
||||||
|
} else if (value == 2) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("NotificationsPriorityMax", R.string.NotificationsPriorityMax), true);
|
||||||
|
} else if (value == 3) {
|
||||||
|
textCell.setTextAndValue(LocaleController.getString("NotificationsPriority", R.string.NotificationsPriority), LocaleController.getString("SettingsDefault", R.string.SettingsDefault), true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (type == 1) {
|
} else if (type == 1) {
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
|
@ -450,7 +493,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemViewType(int i) {
|
public int getItemViewType(int i) {
|
||||||
if (i == settingsNotificationsRow || i == settingsVibrateRow || i == settingsSoundRow) {
|
if (i == settingsNotificationsRow || i == settingsVibrateRow || i == settingsSoundRow || i == settingsPriorityRow) {
|
||||||
return 0;
|
return 0;
|
||||||
} else if (i == settingsLedRow) {
|
} else if (i == settingsLedRow) {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -44,6 +44,7 @@ public class AvatarDrawable extends Drawable {
|
||||||
private StaticLayout textLayout;
|
private StaticLayout textLayout;
|
||||||
private float textWidth;
|
private float textWidth;
|
||||||
private float textHeight;
|
private float textHeight;
|
||||||
|
private float textLeft;
|
||||||
private boolean isProfile;
|
private boolean isProfile;
|
||||||
private boolean drawBrodcast;
|
private boolean drawBrodcast;
|
||||||
private boolean drawPhoto;
|
private boolean drawPhoto;
|
||||||
|
@ -168,6 +169,7 @@ public class AvatarDrawable extends Drawable {
|
||||||
try {
|
try {
|
||||||
textLayout = new StaticLayout(text, namePaint, AndroidUtilities.dp(100), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
|
textLayout = new StaticLayout(text, namePaint, AndroidUtilities.dp(100), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
|
||||||
if (textLayout.getLineCount() > 0) {
|
if (textLayout.getLineCount() > 0) {
|
||||||
|
textLeft = textLayout.getLineLeft(0);
|
||||||
textWidth = textLayout.getLineWidth(0);
|
textWidth = textLayout.getLineWidth(0);
|
||||||
textHeight = textLayout.getLineBottom(0);
|
textHeight = textLayout.getLineBottom(0);
|
||||||
}
|
}
|
||||||
|
@ -205,7 +207,7 @@ public class AvatarDrawable extends Drawable {
|
||||||
broadcastDrawable.draw(canvas);
|
broadcastDrawable.draw(canvas);
|
||||||
} else {
|
} else {
|
||||||
if (textLayout != null) {
|
if (textLayout != null) {
|
||||||
canvas.translate((size - textWidth) / 2, (size - textHeight) / 2);
|
canvas.translate((size - textWidth) / 2 - textLeft, (size - textHeight) / 2);
|
||||||
textLayout.draw(canvas);
|
textLayout.draw(canvas);
|
||||||
} else if (drawPhoto && photoDrawable != null) {
|
} else if (drawPhoto && photoDrawable != null) {
|
||||||
int x = (size - photoDrawable.getIntrinsicWidth()) / 2;
|
int x = (size - photoDrawable.getIntrinsicWidth()) / 2;
|
||||||
|
|
|
@ -145,6 +145,9 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen
|
||||||
|
|
||||||
sendButton = (ImageButton) containerView.findViewById(R.id.chat_send_button);
|
sendButton = (ImageButton) containerView.findViewById(R.id.chat_send_button);
|
||||||
sendButton.setVisibility(View.INVISIBLE);
|
sendButton.setVisibility(View.INVISIBLE);
|
||||||
|
ViewProxy.setScaleX(sendButton, 0.1f);
|
||||||
|
ViewProxy.setScaleY(sendButton, 0.1f);
|
||||||
|
ViewProxy.setAlpha(sendButton, 0.0f);
|
||||||
emojiButton = (ImageView) containerView.findViewById(R.id.chat_smile_button);
|
emojiButton = (ImageView) containerView.findViewById(R.id.chat_smile_button);
|
||||||
audioSendButton = (ImageButton) containerView.findViewById(R.id.chat_audio_send_button);
|
audioSendButton = (ImageButton) containerView.findViewById(R.id.chat_audio_send_button);
|
||||||
recordPanel = containerView.findViewById(R.id.record_panel);
|
recordPanel = containerView.findViewById(R.id.record_panel);
|
||||||
|
|
|
@ -52,6 +52,10 @@ public class SizeNotifierRelativeLayout extends RelativeLayout {
|
||||||
backgroundDrawable = bitmap;
|
backgroundDrawable = bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Drawable getBackgroundImage() {
|
||||||
|
return backgroundDrawable;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||||
super.onLayout(changed, l, t, r, b);
|
super.onLayout(changed, l, t, r, b);
|
||||||
|
|
|
@ -118,7 +118,7 @@
|
||||||
android:layout_marginLeft="52dp"
|
android:layout_marginLeft="52dp"
|
||||||
android:layout_marginRight="2dp"
|
android:layout_marginRight="2dp"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:layout_marginBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:paddingTop="11dp"
|
android:paddingTop="11dp"
|
||||||
android:textCursorDrawable="@null"
|
android:textCursorDrawable="@null"
|
||||||
android:textColor="#000000"/>
|
android:textColor="#000000"/>
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
android:layout_marginLeft="52dp"
|
android:layout_marginLeft="52dp"
|
||||||
android:layout_marginRight="2dp"
|
android:layout_marginRight="2dp"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:layout_marginBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:paddingTop="11dp"
|
android:paddingTop="11dp"
|
||||||
android:textCursorDrawable="@null"
|
android:textCursorDrawable="@null"
|
||||||
android:textColor="#000000"/>
|
android:textColor="#000000"/>
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">حفظ في الجهاز</string>
|
<string name="SaveToDownloads">حفظ في الجهاز</string>
|
||||||
<string name="ApplyLocalizationFile">تطبيق ملف التعريب</string>
|
<string name="ApplyLocalizationFile">تطبيق ملف التعريب</string>
|
||||||
<string name="UnsupportedAttachment">المرفق غير مدعوم</string>
|
<string name="UnsupportedAttachment">المرفق غير مدعوم</string>
|
||||||
|
<string name="SetTimer">عداد التدمير الذاتي</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s قام بتعيين عداد التدمير الذاتي إلى to %2$s</string>
|
<string name="MessageLifetimeChanged">%1$s قام بتعيين عداد التدمير الذاتي إلى to %2$s</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">لقد قمت بتعيين التدمير الذاتي إلى %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">لقد قمت بتعيين التدمير الذاتي إلى %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">الرد على %1$s</string>
|
<string name="ReplyToUser">الرد على %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">رسالة جديدة</string>
|
|
||||||
<string name="SelectContact">اختر جهة اتصال</string>
|
<string name="SelectContact">اختر جهة اتصال</string>
|
||||||
<string name="NoContacts">لا توجد جهات اتصال بعد</string>
|
<string name="NoContacts">لا توجد جهات اتصال بعد</string>
|
||||||
<string name="InviteText">http://telegram.org/dl2 مرحبا! هيا نستخدم تيليجرام: </string>
|
<string name="InviteText">http://telegram.org/dl2 مرحبا! هيا نستخدم تيليجرام: </string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">آخر ظهور خلال أسبوع</string>
|
<string name="WithinAWeek">آخر ظهور خلال أسبوع</string>
|
||||||
<string name="WithinAMonth">آخر ظهور خلال شهر</string>
|
<string name="WithinAMonth">آخر ظهور خلال شهر</string>
|
||||||
<string name="ALongTimeAgo">آخر ظهور خلال فترة طويلة</string>
|
<string name="ALongTimeAgo">آخر ظهور خلال فترة طويلة</string>
|
||||||
|
<string name="NewMessageTitle">رسالة جديدة</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">إرسال الرسالة إلى...</string>
|
<string name="SendMessageTo">إرسال الرسالة إلى...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">أدخل اسم للمجموعة</string>
|
<string name="EnterGroupNamePlaceholder">أدخل اسم للمجموعة</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">لا يوجد وسائط</string>
|
<string name="NoMediaAutoDownload">لا يوجد وسائط</string>
|
||||||
<string name="SaveToGallerySettings">حفظ في الجهاز</string>
|
<string name="SaveToGallerySettings">حفظ في الجهاز</string>
|
||||||
<string name="EditName">تعديل الاسم</string>
|
<string name="EditName">تعديل الاسم</string>
|
||||||
|
<string name="NotificationsPriority">Priority</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Default</string>
|
||||||
|
<string name="NotificationsPriorityLow">Low</string>
|
||||||
|
<string name="NotificationsPriorityHigh">High</string>
|
||||||
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Repeat Notifications</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">لا توجد وسائط بعد</string>
|
<string name="NoMedia">لا توجد وسائط بعد</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<string name="EncryptedChatStartedIncoming">Du bist dem geheimen Chat beigetreten.</string>
|
<string name="EncryptedChatStartedIncoming">Du bist dem geheimen Chat beigetreten.</string>
|
||||||
<string name="ClearHistory">Verlauf löschen</string>
|
<string name="ClearHistory">Verlauf löschen</string>
|
||||||
<string name="DeleteChat">Löschen und beenden</string>
|
<string name="DeleteChat">Löschen und beenden</string>
|
||||||
<string name="DeleteChatUser">Lösche Chat</string>
|
<string name="DeleteChatUser">Chat löschen</string>
|
||||||
<string name="HiddenName">Gelöschtes Konto</string>
|
<string name="HiddenName">Gelöschtes Konto</string>
|
||||||
<string name="SelectChat">Chat auswählen</string>
|
<string name="SelectChat">Chat auswählen</string>
|
||||||
<string name="PhotoTip">Tippen und Halten</string>
|
<string name="PhotoTip">Tippen und Halten</string>
|
||||||
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">In Downloads speichern</string>
|
<string name="SaveToDownloads">In Downloads speichern</string>
|
||||||
<string name="ApplyLocalizationFile">Sprachdatei benutzen</string>
|
<string name="ApplyLocalizationFile">Sprachdatei benutzen</string>
|
||||||
<string name="UnsupportedAttachment">Nicht unterstützte Datei</string>
|
<string name="UnsupportedAttachment">Nicht unterstützte Datei</string>
|
||||||
|
<string name="SetTimer">Wähle einen Selbstzerstörungs-Timer</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s hat den Selbstzerstörungs-Timer auf %2$s gesetzt</string>
|
<string name="MessageLifetimeChanged">%1$s hat den Selbstzerstörungs-Timer auf %2$s gesetzt</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Du hast den Selbstzerstörungs-Timer auf %1$s gesetzt</string>
|
<string name="MessageLifetimeChangedOutgoing">Du hast den Selbstzerstörungs-Timer auf %1$s gesetzt</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">%1$s antworten</string>
|
<string name="ReplyToUser">%1$s antworten</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Neue Nachricht</string>
|
|
||||||
<string name="SelectContact">Kontakt auswählen</string>
|
<string name="SelectContact">Kontakt auswählen</string>
|
||||||
<string name="NoContacts">Noch keine Kontakte</string>
|
<string name="NoContacts">Noch keine Kontakte</string>
|
||||||
<string name="InviteText">Hey, lass uns zu Telegram wechseln: http://telegram.org/dl2</string>
|
<string name="InviteText">Hey, lass uns zu Telegram wechseln: http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">diese Woche gesehen</string>
|
<string name="WithinAWeek">diese Woche gesehen</string>
|
||||||
<string name="WithinAMonth">diesen Monat gesehen</string>
|
<string name="WithinAMonth">diesen Monat gesehen</string>
|
||||||
<string name="ALongTimeAgo">vor langer Zeit gesehen</string>
|
<string name="ALongTimeAgo">vor langer Zeit gesehen</string>
|
||||||
|
<string name="NewMessageTitle">Neue Nachricht</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Sende Nachricht an…</string>
|
<string name="SendMessageTo">Sende Nachricht an…</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Gruppenname</string>
|
<string name="EnterGroupNamePlaceholder">Gruppenname</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">kein automatischer Download</string>
|
<string name="NoMediaAutoDownload">kein automatischer Download</string>
|
||||||
<string name="SaveToGallerySettings">In der Galerie speichern</string>
|
<string name="SaveToGallerySettings">In der Galerie speichern</string>
|
||||||
<string name="EditName">Name bearbeiten</string>
|
<string name="EditName">Name bearbeiten</string>
|
||||||
|
<string name="NotificationsPriority">Priorität</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Standard</string>
|
||||||
|
<string name="NotificationsPriorityLow">Niedrig</string>
|
||||||
|
<string name="NotificationsPriorityHigh">Hoch</string>
|
||||||
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Wiederholen Benachrichtigungen</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Noch keine geteilten Medien vorhanden</string>
|
<string name="NoMedia">Noch keine geteilten Medien vorhanden</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">Guardar en descargas</string>
|
<string name="SaveToDownloads">Guardar en descargas</string>
|
||||||
<string name="ApplyLocalizationFile">Aplicar traducción</string>
|
<string name="ApplyLocalizationFile">Aplicar traducción</string>
|
||||||
<string name="UnsupportedAttachment">Adjunto no soportado</string>
|
<string name="UnsupportedAttachment">Adjunto no soportado</string>
|
||||||
|
<string name="SetTimer">Establecer autodestrucción</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s activó la autodestrucción en %2$s</string>
|
<string name="MessageLifetimeChanged">%1$s activó la autodestrucción en %2$s</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Activaste la autodestrucción en %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">Activaste la autodestrucción en %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">Responder a %1$s</string>
|
<string name="ReplyToUser">Responder a %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Nuevo mensaje</string>
|
|
||||||
<string name="SelectContact">Elegir contacto</string>
|
<string name="SelectContact">Elegir contacto</string>
|
||||||
<string name="NoContacts">Aún sin contactos</string>
|
<string name="NoContacts">Aún sin contactos</string>
|
||||||
<string name="InviteText">Oye, cambiémonos a Telegram: http://telegram.org/dl2</string>
|
<string name="InviteText">Oye, cambiémonos a Telegram: http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">últ. vez hace unos días</string>
|
<string name="WithinAWeek">últ. vez hace unos días</string>
|
||||||
<string name="WithinAMonth">últ. vez hace unas semanas</string>
|
<string name="WithinAMonth">últ. vez hace unas semanas</string>
|
||||||
<string name="ALongTimeAgo">últ. vez hace mucho tiempo</string>
|
<string name="ALongTimeAgo">últ. vez hace mucho tiempo</string>
|
||||||
|
<string name="NewMessageTitle">Nuevo mensaje</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Enviar mensaje a...</string>
|
<string name="SendMessageTo">Enviar mensaje a...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Nombre del grupo</string>
|
<string name="EnterGroupNamePlaceholder">Nombre del grupo</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">Ningún contenido multimedia</string>
|
<string name="NoMediaAutoDownload">Ningún contenido multimedia</string>
|
||||||
<string name="SaveToGallerySettings">Guardar en galería</string>
|
<string name="SaveToGallerySettings">Guardar en galería</string>
|
||||||
<string name="EditName">Editar nombre</string>
|
<string name="EditName">Editar nombre</string>
|
||||||
|
<string name="NotificationsPriority">Prioridad</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Por defecto</string>
|
||||||
|
<string name="NotificationsPriorityLow">Baja</string>
|
||||||
|
<string name="NotificationsPriorityHigh">Alta</string>
|
||||||
|
<string name="NotificationsPriorityMax">Máxima</string>
|
||||||
|
<string name="RepeatNotifications">Repetir notificaciones</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Aún no hay fotos ni vídeos</string>
|
<string name="NoMedia">Aún no hay fotos ni vídeos</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">Salva in download</string>
|
<string name="SaveToDownloads">Salva in download</string>
|
||||||
<string name="ApplyLocalizationFile">Applica file di localizzazione</string>
|
<string name="ApplyLocalizationFile">Applica file di localizzazione</string>
|
||||||
<string name="UnsupportedAttachment">Allegato non supportato</string>
|
<string name="UnsupportedAttachment">Allegato non supportato</string>
|
||||||
|
<string name="SetTimer">Timer di autodistruzione</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s ha impostato il timer di autodistruzione a %2$s</string>
|
<string name="MessageLifetimeChanged">%1$s ha impostato il timer di autodistruzione a %2$s</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Hai impostato il timer di autodistruzione a %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">Hai impostato il timer di autodistruzione a %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">Rispondi a %1$s</string>
|
<string name="ReplyToUser">Rispondi a %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Nuovo messaggio</string>
|
|
||||||
<string name="SelectContact">Seleziona contatto</string>
|
<string name="SelectContact">Seleziona contatto</string>
|
||||||
<string name="NoContacts">Ancora nessun contatto</string>
|
<string name="NoContacts">Ancora nessun contatto</string>
|
||||||
<string name="InviteText">Ehi, è il momento di passare a Telegram: http://telegram.org/dl2</string>
|
<string name="InviteText">Ehi, è il momento di passare a Telegram: http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">ultimo accesso entro una settimana</string>
|
<string name="WithinAWeek">ultimo accesso entro una settimana</string>
|
||||||
<string name="WithinAMonth">ultimo accesso entro un mese</string>
|
<string name="WithinAMonth">ultimo accesso entro un mese</string>
|
||||||
<string name="ALongTimeAgo">ultimo accesso molto tempo fa</string>
|
<string name="ALongTimeAgo">ultimo accesso molto tempo fa</string>
|
||||||
|
<string name="NewMessageTitle">Nuovo messaggio</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Invia messaggio a...</string>
|
<string name="SendMessageTo">Invia messaggio a...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Immetti il nome del gruppo</string>
|
<string name="EnterGroupNamePlaceholder">Immetti il nome del gruppo</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">Nessun media</string>
|
<string name="NoMediaAutoDownload">Nessun media</string>
|
||||||
<string name="SaveToGallerySettings">Salva nella galleria</string>
|
<string name="SaveToGallerySettings">Salva nella galleria</string>
|
||||||
<string name="EditName">Modifica nome</string>
|
<string name="EditName">Modifica nome</string>
|
||||||
|
<string name="NotificationsPriority">Priorità</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Default</string>
|
||||||
|
<string name="NotificationsPriorityLow">Bassa</string>
|
||||||
|
<string name="NotificationsPriorityHigh">Alta</string>
|
||||||
|
<string name="NotificationsPriorityMax">Massima</string>
|
||||||
|
<string name="RepeatNotifications">Ripeti Notifiche</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Nessun media condiviso</string>
|
<string name="NoMedia">Nessun media condiviso</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">다운로드 폴더에 저장</string>
|
<string name="SaveToDownloads">다운로드 폴더에 저장</string>
|
||||||
<string name="ApplyLocalizationFile">언어 파일 적용</string>
|
<string name="ApplyLocalizationFile">언어 파일 적용</string>
|
||||||
<string name="UnsupportedAttachment">지원하지 않는 형식입니다</string>
|
<string name="UnsupportedAttachment">지원하지 않는 형식입니다</string>
|
||||||
|
<string name="SetTimer">자동삭제 타이머 설정</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s님이 자동삭제를 %2$s 후로 설정했습니다</string>
|
<string name="MessageLifetimeChanged">%1$s님이 자동삭제를 %2$s 후로 설정했습니다</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">자동삭제를 %1$s 후로 설정했습니다</string>
|
<string name="MessageLifetimeChangedOutgoing">자동삭제를 %1$s 후로 설정했습니다</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">%1$s님에게 답장하기</string>
|
<string name="ReplyToUser">%1$s님에게 답장하기</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%2$s %1$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%2$s %1$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">새 메시지</string>
|
|
||||||
<string name="SelectContact">대화상대 선택</string>
|
<string name="SelectContact">대화상대 선택</string>
|
||||||
<string name="NoContacts">대화상대가 없습니다</string>
|
<string name="NoContacts">대화상대가 없습니다</string>
|
||||||
<string name="InviteText">텔레그램으로 초대합니다! http://telegram.org/dl2</string>
|
<string name="InviteText">텔레그램으로 초대합니다! http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">일주일 이내 마지막으로 접속</string>
|
<string name="WithinAWeek">일주일 이내 마지막으로 접속</string>
|
||||||
<string name="WithinAMonth">한 달 이내 마지막으로 접속</string>
|
<string name="WithinAMonth">한 달 이내 마지막으로 접속</string>
|
||||||
<string name="ALongTimeAgo">마지막으로 접속한 지 오래됨</string>
|
<string name="ALongTimeAgo">마지막으로 접속한 지 오래됨</string>
|
||||||
|
<string name="NewMessageTitle">새 메시지</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">메시지 보내기...</string>
|
<string name="SendMessageTo">메시지 보내기...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">그룹 이름 입력</string>
|
<string name="EnterGroupNamePlaceholder">그룹 이름 입력</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">다운로드 안함</string>
|
<string name="NoMediaAutoDownload">다운로드 안함</string>
|
||||||
<string name="SaveToGallerySettings">앨범에 자동 저장</string>
|
<string name="SaveToGallerySettings">앨범에 자동 저장</string>
|
||||||
<string name="EditName">이름 편집</string>
|
<string name="EditName">이름 편집</string>
|
||||||
|
<string name="NotificationsPriority">우선순위</string>
|
||||||
|
<string name="NotificationsPriorityDefault">기본</string>
|
||||||
|
<string name="NotificationsPriorityLow">낮음</string>
|
||||||
|
<string name="NotificationsPriorityHigh">높음</string>
|
||||||
|
<string name="NotificationsPriorityMax">최우선</string>
|
||||||
|
<string name="RepeatNotifications">Repeat Notifications</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">공유한 미디어가 없습니다</string>
|
<string name="NoMedia">공유한 미디어가 없습니다</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">Opslaan in Downloads</string>
|
<string name="SaveToDownloads">Opslaan in Downloads</string>
|
||||||
<string name="ApplyLocalizationFile">Vertaling toepassen</string>
|
<string name="ApplyLocalizationFile">Vertaling toepassen</string>
|
||||||
<string name="UnsupportedAttachment">Bestandstype niet ondersteund</string>
|
<string name="UnsupportedAttachment">Bestandstype niet ondersteund</string>
|
||||||
|
<string name="SetTimer">Zelfvernietigingstimer instellen</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s heeft de zelfvernietigingstimer ingesteld op %2$s</string>
|
<string name="MessageLifetimeChanged">%1$s heeft de zelfvernietigingstimer ingesteld op %2$s</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Je hebt de zelfvernietigingstimer ingesteld op %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">Je hebt de zelfvernietigingstimer ingesteld op %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">Antwoord op %1$s</string>
|
<string name="ReplyToUser">Antwoord op %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Nieuw bericht</string>
|
|
||||||
<string name="SelectContact">Kies een contact</string>
|
<string name="SelectContact">Kies een contact</string>
|
||||||
<string name="NoContacts">Nog geen contacten</string>
|
<string name="NoContacts">Nog geen contacten</string>
|
||||||
<string name="InviteText">Hey! Zullen we overstappen op Telegram? http://telegram.org/dl2</string>
|
<string name="InviteText">Hey! Zullen we overstappen op Telegram? http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">afgelopen week gezien</string>
|
<string name="WithinAWeek">afgelopen week gezien</string>
|
||||||
<string name="WithinAMonth">afgelopen maand gezien</string>
|
<string name="WithinAMonth">afgelopen maand gezien</string>
|
||||||
<string name="ALongTimeAgo">lang geleden gezien</string>
|
<string name="ALongTimeAgo">lang geleden gezien</string>
|
||||||
|
<string name="NewMessageTitle">Nieuw bericht</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Bericht verzenden naar…</string>
|
<string name="SendMessageTo">Bericht verzenden naar…</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Groepsnaam...</string>
|
<string name="EnterGroupNamePlaceholder">Groepsnaam...</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">Geen media</string>
|
<string name="NoMediaAutoDownload">Geen media</string>
|
||||||
<string name="SaveToGallerySettings">Opslaan in galerij</string>
|
<string name="SaveToGallerySettings">Opslaan in galerij</string>
|
||||||
<string name="EditName">Naam bewerken</string>
|
<string name="EditName">Naam bewerken</string>
|
||||||
|
<string name="NotificationsPriority">Prioriteit</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Standaard</string>
|
||||||
|
<string name="NotificationsPriorityLow">Laag</string>
|
||||||
|
<string name="NotificationsPriorityHigh">Hoog</string>
|
||||||
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Meldingen herhalen</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Nog geen media gedeeld</string>
|
<string name="NoMedia">Nog geen media gedeeld</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
@ -392,11 +399,11 @@
|
||||||
<string name="AreYouSureLogout">Weet je zeker dat je wilt uitloggen?\n\nTelegram kun je naadloos op al je apparaten tegelijkertijd gebruiken.\n\nLet op! Als je uitlogt worden al je geheime chats verwijderd.</string>
|
<string name="AreYouSureLogout">Weet je zeker dat je wilt uitloggen?\n\nTelegram kun je naadloos op al je apparaten tegelijkertijd gebruiken.\n\nLet op! Als je uitlogt worden al je geheime chats verwijderd.</string>
|
||||||
<string name="AreYouSureSessions">Alle apparaten behalve het huidige apparaat uitloggen?</string>
|
<string name="AreYouSureSessions">Alle apparaten behalve het huidige apparaat uitloggen?</string>
|
||||||
<string name="AreYouSureDeleteAndExit">Echt alles verwijderen en de groep verlaten?</string>
|
<string name="AreYouSureDeleteAndExit">Echt alles verwijderen en de groep verlaten?</string>
|
||||||
<string name="AreYouSureDeleteThisChat">Weet je zeker dat je dit gesprek wilt verwijderen?</string>
|
<string name="AreYouSureDeleteThisChat">Gesprek echt verwijderen?</string>
|
||||||
<string name="AreYouSureShareMyContactInfo">Weet je zeker dat je je contactinformatie wilt delen?</string>
|
<string name="AreYouSureShareMyContactInfo">Weet je zeker dat je je contactinformatie wilt delen?</string>
|
||||||
<string name="AreYouSureBlockContact">Weet je zeker dat je deze persoon wilt blokkeren?</string>
|
<string name="AreYouSureBlockContact">Weet je zeker dat je deze persoon wilt blokkeren?</string>
|
||||||
<string name="AreYouSureUnblockContact">Weet je zeker dat je deze persoon wilt deblokkeren?</string>
|
<string name="AreYouSureUnblockContact">Weet je zeker dat je deze persoon wilt deblokkeren?</string>
|
||||||
<string name="AreYouSureDeleteContact">Weet je zeker dat je deze contactpersoon wilt verwijderen?</string>
|
<string name="AreYouSureDeleteContact">Contactpersoon echt verwijderen?</string>
|
||||||
<string name="AreYouSureSecretChat">Weet je zeker dat je een geheime chat wilt starten?</string>
|
<string name="AreYouSureSecretChat">Weet je zeker dat je een geheime chat wilt starten?</string>
|
||||||
<string name="AreYouSureRegistration">Weet je zeker dat je de registratie wilt annuleren?</string>
|
<string name="AreYouSureRegistration">Weet je zeker dat je de registratie wilt annuleren?</string>
|
||||||
<string name="AreYouSureClearHistory">Geschiedenis echt wissen? </string>
|
<string name="AreYouSureClearHistory">Geschiedenis echt wissen? </string>
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">Salvar em downloads</string>
|
<string name="SaveToDownloads">Salvar em downloads</string>
|
||||||
<string name="ApplyLocalizationFile">Aplicar arquivo de localização</string>
|
<string name="ApplyLocalizationFile">Aplicar arquivo de localização</string>
|
||||||
<string name="UnsupportedAttachment">Anexo não suportado</string>
|
<string name="UnsupportedAttachment">Anexo não suportado</string>
|
||||||
|
<string name="SetTimer">Tempo de autodestruição</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s estabeleceu o tempo de autodestruição para %2$s </string>
|
<string name="MessageLifetimeChanged">%1$s estabeleceu o tempo de autodestruição para %2$s </string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Você estabeleceu o tempo de autodestruição para %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">Você estabeleceu o tempo de autodestruição para %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">Responder para %1$s</string>
|
<string name="ReplyToUser">Responder para %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Nova Mensagem</string>
|
|
||||||
<string name="SelectContact">Selecionar Contato</string>
|
<string name="SelectContact">Selecionar Contato</string>
|
||||||
<string name="NoContacts">Ainda não há contatos</string>
|
<string name="NoContacts">Ainda não há contatos</string>
|
||||||
<string name="InviteText">Ei, vamos mudar para o Telegram: http://telegram.org/dl2</string>
|
<string name="InviteText">Ei, vamos mudar para o Telegram: http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">visto na última semana</string>
|
<string name="WithinAWeek">visto na última semana</string>
|
||||||
<string name="WithinAMonth">visto no último mês</string>
|
<string name="WithinAMonth">visto no último mês</string>
|
||||||
<string name="ALongTimeAgo">visto há muito tempo atrás</string>
|
<string name="ALongTimeAgo">visto há muito tempo atrás</string>
|
||||||
|
<string name="NewMessageTitle">Nova Mensagem</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Enviar mensagem para...</string>
|
<string name="SendMessageTo">Enviar mensagem para...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
|
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">Sem mídia</string>
|
<string name="NoMediaAutoDownload">Sem mídia</string>
|
||||||
<string name="SaveToGallerySettings">Salvar na galeria</string>
|
<string name="SaveToGallerySettings">Salvar na galeria</string>
|
||||||
<string name="EditName">Editar nome</string>
|
<string name="EditName">Editar nome</string>
|
||||||
|
<string name="NotificationsPriority">Priority</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Default</string>
|
||||||
|
<string name="NotificationsPriorityLow">Low</string>
|
||||||
|
<string name="NotificationsPriorityHigh">High</string>
|
||||||
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Repeat Notifications</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Ainda não há mídia compartilhada</string>
|
<string name="NoMedia">Ainda não há mídia compartilhada</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<string name="SaveToDownloads">Salvar em downloads</string>
|
<string name="SaveToDownloads">Salvar em downloads</string>
|
||||||
<string name="ApplyLocalizationFile">Aplicar arquivo de localização</string>
|
<string name="ApplyLocalizationFile">Aplicar arquivo de localização</string>
|
||||||
<string name="UnsupportedAttachment">Anexo não suportado</string>
|
<string name="UnsupportedAttachment">Anexo não suportado</string>
|
||||||
|
<string name="SetTimer">Tempo de autodestruição</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s estabeleceu o tempo de autodestruição para %2$s </string>
|
<string name="MessageLifetimeChanged">%1$s estabeleceu o tempo de autodestruição para %2$s </string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">Você estabeleceu o tempo de autodestruição para %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">Você estabeleceu o tempo de autodestruição para %1$s</string>
|
||||||
|
@ -143,7 +144,6 @@
|
||||||
<string name="ReplyToUser">Responder para %1$s</string>
|
<string name="ReplyToUser">Responder para %1$s</string>
|
||||||
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
|
||||||
<!--contacts view-->
|
<!--contacts view-->
|
||||||
<string name="NewMessageTitle">Nova Mensagem</string>
|
|
||||||
<string name="SelectContact">Selecionar Contato</string>
|
<string name="SelectContact">Selecionar Contato</string>
|
||||||
<string name="NoContacts">Ainda não há contatos</string>
|
<string name="NoContacts">Ainda não há contatos</string>
|
||||||
<string name="InviteText">Ei, vamos mudar para o Telegram: http://telegram.org/dl2</string>
|
<string name="InviteText">Ei, vamos mudar para o Telegram: http://telegram.org/dl2</string>
|
||||||
|
@ -158,6 +158,7 @@
|
||||||
<string name="WithinAWeek">visto na última semana</string>
|
<string name="WithinAWeek">visto na última semana</string>
|
||||||
<string name="WithinAMonth">visto no último mês</string>
|
<string name="WithinAMonth">visto no último mês</string>
|
||||||
<string name="ALongTimeAgo">visto há muito tempo atrás</string>
|
<string name="ALongTimeAgo">visto há muito tempo atrás</string>
|
||||||
|
<string name="NewMessageTitle">Nova Mensagem</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Enviar mensagem para...</string>
|
<string name="SendMessageTo">Enviar mensagem para...</string>
|
||||||
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
|
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
|
||||||
|
@ -271,6 +272,12 @@
|
||||||
<string name="NoMediaAutoDownload">Sem mídia</string>
|
<string name="NoMediaAutoDownload">Sem mídia</string>
|
||||||
<string name="SaveToGallerySettings">Salvar na galeria</string>
|
<string name="SaveToGallerySettings">Salvar na galeria</string>
|
||||||
<string name="EditName">Editar nome</string>
|
<string name="EditName">Editar nome</string>
|
||||||
|
<string name="NotificationsPriority">Priority</string>
|
||||||
|
<string name="NotificationsPriorityDefault">Default</string>
|
||||||
|
<string name="NotificationsPriorityLow">Low</string>
|
||||||
|
<string name="NotificationsPriorityHigh">High</string>
|
||||||
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Repeat Notifications</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">Ainda não há mídia compartilhada</string>
|
<string name="NoMedia">Ainda não há mídia compartilhada</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
<string name="SaveToDownloads">Save to downloads</string>
|
<string name="SaveToDownloads">Save to downloads</string>
|
||||||
<string name="ApplyLocalizationFile">Apply localization file</string>
|
<string name="ApplyLocalizationFile">Apply localization file</string>
|
||||||
<string name="UnsupportedAttachment">Unsupported attachment</string>
|
<string name="UnsupportedAttachment">Unsupported attachment</string>
|
||||||
<string name="SetTimer">Set timer</string>
|
<string name="SetTimer">Set self-destruct timer</string>
|
||||||
<!--notification-->
|
<!--notification-->
|
||||||
<string name="MessageLifetimeChanged">%1$s set the self-destruct timer to %2$s</string>
|
<string name="MessageLifetimeChanged">%1$s set the self-destruct timer to %2$s</string>
|
||||||
<string name="MessageLifetimeChangedOutgoing">You set the self-destruct timer to %1$s</string>
|
<string name="MessageLifetimeChangedOutgoing">You set the self-destruct timer to %1$s</string>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
<string name="SelectContact">Select Contact</string>
|
<string name="SelectContact">Select Contact</string>
|
||||||
<string name="NoContacts">No contacts yet</string>
|
<string name="NoContacts">No contacts yet</string>
|
||||||
<string name="InviteText">Hey, let\'s switch to Telegram: http://telegram.org/dl2</string>
|
<string name="InviteText">Hey, let\'s switch to Telegram: http://telegram.org/dl2</string>
|
||||||
<string name="TodayAt">at</string>
|
<string name="TodayAt">today at</string>
|
||||||
<string name="YesterdayAt">yesterday at</string>
|
<string name="YesterdayAt">yesterday at</string>
|
||||||
<string name="Online">online</string>
|
<string name="Online">online</string>
|
||||||
<string name="LastSeen">last seen</string>
|
<string name="LastSeen">last seen</string>
|
||||||
|
@ -277,6 +277,7 @@
|
||||||
<string name="NotificationsPriorityLow">Low</string>
|
<string name="NotificationsPriorityLow">Low</string>
|
||||||
<string name="NotificationsPriorityHigh">High</string>
|
<string name="NotificationsPriorityHigh">High</string>
|
||||||
<string name="NotificationsPriorityMax">Max</string>
|
<string name="NotificationsPriorityMax">Max</string>
|
||||||
|
<string name="RepeatNotifications">Repeat Notifications</string>
|
||||||
<!--media view-->
|
<!--media view-->
|
||||||
<string name="NoMedia">No shared media yet</string>
|
<string name="NoMedia">No shared media yet</string>
|
||||||
<!--map view-->
|
<!--map view-->
|
||||||
|
|
Loading…
Reference in a new issue