UI update

This commit is contained in:
DrKLO 2014-10-15 00:36:15 +04:00
parent b2ad802ba5
commit 2f23635e4a
45 changed files with 1692 additions and 316 deletions

View file

@ -9,7 +9,9 @@
package org.telegram.android;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Point;
@ -24,8 +26,10 @@ import android.view.inputmethod.InputMethodManager;
import org.telegram.messenger.FileLog;
import org.telegram.messenger.R;
import org.telegram.messenger.TLRPC;
import org.telegram.messenger.UserConfig;
import org.telegram.ui.ApplicationLoader;
import org.telegram.ui.Views.NumberPicker;
import java.io.File;
import java.util.Hashtable;
@ -240,6 +244,10 @@ public class AndroidUtilities {
return (int)Math.ceil(density * value);
}
public static float dpf2(float value) {
return density * value;
}
public static void checkDisplaySize() {
try {
WindowManager manager = (WindowManager)ApplicationLoader.applicationContext.getSystemService(Context.WINDOW_SERVICE);
@ -388,4 +396,91 @@ public class AndroidUtilities {
}
return photoSize;
}
public static String formatTTLString(int ttl) {
if (ttl < 60) {
return LocaleController.formatPluralString("Seconds", ttl);
} else if (ttl < 60 * 60) {
return LocaleController.formatPluralString("Minutes", ttl / 60);
} else if (ttl < 60 * 60 * 24) {
return LocaleController.formatPluralString("Hours", ttl / 60 / 60);
} else if (ttl < 60 * 60 * 24 * 7) {
return LocaleController.formatPluralString("Days", ttl / 60 / 60 / 24);
} else {
int days = ttl / 60 / 60 / 24;
if (ttl % 7 == 0) {
return LocaleController.formatPluralString("Weeks", days / 7);
} else {
return String.format("%s %s", LocaleController.formatPluralString("Weeks", days / 7), LocaleController.formatPluralString("Days", days % 7));
}
}
}
public static AlertDialog.Builder buildTTLAlert(Context context, final TLRPC.EncryptedChat encryptedChat) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime));
final NumberPicker numberPicker = new NumberPicker(context);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(20);
if (encryptedChat.ttl >= 0 && encryptedChat.ttl < 16) {
numberPicker.setValue(encryptedChat.ttl);
} else if (encryptedChat.ttl == 30) {
numberPicker.setValue(16);
} else if (encryptedChat.ttl == 60) {
numberPicker.setValue(17);
} else if (encryptedChat.ttl == 60 * 60) {
numberPicker.setValue(18);
} else if (encryptedChat.ttl == 60 * 60 * 24) {
numberPicker.setValue(19);
} else if (encryptedChat.ttl == 60 * 60 * 24 * 7) {
numberPicker.setValue(20);
}
numberPicker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
if (value == 0) {
return LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever);
} else if (value >= 1 && value < 16) {
return AndroidUtilities.formatTTLString(value);
} else if (value == 16) {
return AndroidUtilities.formatTTLString(30);
} else if (value == 17) {
return AndroidUtilities.formatTTLString(60);
} else if (value == 18) {
return AndroidUtilities.formatTTLString(60 * 60);
} else if (value == 19) {
return AndroidUtilities.formatTTLString(60 * 60 * 24);
} else if (value == 20) {
return AndroidUtilities.formatTTLString(60 * 60 * 24 * 7);
}
return "";
}
});
builder.setView(numberPicker);
builder.setNegativeButton(LocaleController.getString("Done", R.string.Done), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int oldValue = encryptedChat.ttl;
which = numberPicker.getValue();
if (which >= 0 && which < 16) {
encryptedChat.ttl = which;
} else if (which == 16) {
encryptedChat.ttl = 30;
} else if (which == 17) {
encryptedChat.ttl = 60;
} else if (which == 18) {
encryptedChat.ttl = 60 * 60;
} else if (which == 19) {
encryptedChat.ttl = 60 * 60 * 24;
} else if (which == 20) {
encryptedChat.ttl = 60 * 60 * 24 * 7;
}
if (oldValue != encryptedChat.ttl) {
SendMessagesHelper.getInstance().sendTTLMessage(encryptedChat);
MessagesStorage.getInstance().updateEncryptedChatTTL(encryptedChat);
}
}
});
return builder;
}
}

View file

@ -178,29 +178,13 @@ public class MessageObject {
}
} else if (message.action instanceof TLRPC.TL_messageActionTTLChange) {
if (message.action.ttl != 0) {
String timeString;
if (message.action.ttl == 2) {
timeString = LocaleController.getString("MessageLifetime2s", R.string.MessageLifetime2s);
} else if (message.action.ttl == 5) {
timeString = LocaleController.getString("MessageLifetime5s", R.string.MessageLifetime5s);
} else if (message.action.ttl == 60) {
timeString = LocaleController.getString("MessageLifetime1m", R.string.MessageLifetime1m);
} else if (message.action.ttl == 60 * 60) {
timeString = LocaleController.getString("MessageLifetime1h", R.string.MessageLifetime1h);
} else if (message.action.ttl == 60 * 60 * 24) {
timeString = LocaleController.getString("MessageLifetime1d", R.string.MessageLifetime1d);
} else if (message.action.ttl == 60 * 60 * 24 * 7) {
timeString = LocaleController.getString("MessageLifetime1w", R.string.MessageLifetime1w);
} else {
timeString = String.format("%d", message.action.ttl);
}
if (isFromMe()) {
messageText = LocaleController.formatString("MessageLifetimeChangedOutgoing", R.string.MessageLifetimeChangedOutgoing, timeString);
messageText = LocaleController.formatString("MessageLifetimeChangedOutgoing", R.string.MessageLifetimeChangedOutgoing, AndroidUtilities.formatTTLString(message.action.ttl));
} else {
if (fromUser != null) {
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, fromUser.first_name, timeString);
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, fromUser.first_name, AndroidUtilities.formatTTLString(message.action.ttl));
} else {
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, "", timeString);
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, "", AndroidUtilities.formatTTLString(message.action.ttl));
}
}
} else {

View file

@ -1700,7 +1700,8 @@ public class MessagesController implements NotificationCenter.NotificationCenter
random_ids.add(random_id);
SendMessagesHelper.getInstance().sendMessagesReadMessage(random_ids, chat);
if (chat.ttl > 0) {
MessagesStorage.getInstance().createTaskForSecretChat(chat.id, 0, ConnectionsManager.getInstance().getCurrentTime(), 0, random_ids);
int time = ConnectionsManager.getInstance().getCurrentTime();
MessagesStorage.getInstance().createTaskForSecretChat(chat.id, time, time, 0, random_ids);
}
//TODO resend request
}
@ -3707,12 +3708,13 @@ public class MessagesController implements NotificationCenter.NotificationCenter
TLRPC.TL_messageService newMessage = new TLRPC.TL_messageService();
if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionSetMessageTTL) {
newMessage.action = new TLRPC.TL_messageActionTTLChange();
if (serviceMessage.action.ttl_seconds < 0 || serviceMessage.action.ttl_seconds > 60 * 60 * 24 * 365) {
serviceMessage.action.ttl_seconds = 60 * 60 * 24 * 365;
}
newMessage.action.ttl = chat.ttl = serviceMessage.action.ttl_seconds;
} else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionScreenshotMessages) {
newMessage.action = new TLRPC.TL_messageEcryptedAction();
newMessage.action.encryptedAction = serviceMessage.action;
} else {
return null;
}
newMessage.local_id = newMessage.id = UserConfig.getNewMessageId();
UserConfig.saveConfig(false);
@ -3761,7 +3763,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
return null;
} else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionReadMessages) {
if (!serviceMessage.action.random_ids.isEmpty()) {
MessagesStorage.getInstance().createTaskForSecretChat(chat.id, 0, message.date, 1, serviceMessage.action.random_ids);
MessagesStorage.getInstance().createTaskForSecretChat(chat.id, ConnectionsManager.getInstance().getCurrentTime(), message.date, 1, serviceMessage.action.random_ids);
}
} else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionNotifyLayer) {
AndroidUtilities.RunOnUIThread(new Runnable() {

View file

@ -862,7 +862,7 @@ public class MessagesStorage {
}
while (cursor.next()) {
int mid = cursor.intValue(0);
int date = readTime + cursor.intValue(1);
int date = Math.min(readTime, time) + cursor.intValue(1);
minDate = Math.min(minDate, date);
ArrayList<Integer> arr = messages.get(date);
if (arr == null) {
@ -2198,8 +2198,8 @@ public class MessagesStorage {
state.bindByteBuffer(2, data2.buffer);
state.bindByteBuffer(3, data3.buffer);
state.bindInteger(4, chat.ttl);
state.bindInteger(5, chat.id);
state.bindInteger(6, chat.layer);
state.bindInteger(5, chat.layer);
state.bindInteger(6, chat.id);
state.step();
buffersStorage.reuseFreeBuffer(data);
buffersStorage.reuseFreeBuffer(data2);
@ -2473,8 +2473,10 @@ public class MessagesStorage {
private int getMessageMediaType(TLRPC.Message message) {
if (message instanceof TLRPC.TL_message_secret && message.media instanceof TLRPC.TL_messageMediaPhoto && message.ttl != 0 && message.ttl <= 60) {
return 1;
} else if (message.media instanceof TLRPC.TL_messageMediaPhoto || message.media instanceof TLRPC.TL_messageMediaVideo) {
return 0;
}
return 0;
return -1;
}
private void putMessagesInternal(final ArrayList<TLRPC.Message> messages, final boolean withTransaction, final boolean isBroadcast, final int downloadMask) {

View file

@ -1542,7 +1542,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
@Override
public void run() {
TLRPC.EncryptedChat chat = MessagesController.getInstance().getEncryptedChat(encryptedChat.id);
sendingNotifyLayer.remove(chat.id);
sendingNotifyLayer.remove((Integer)chat.id);
chat.layer = AndroidUtilities.setMyLayerVersion(chat.layer, CURRENT_SECRET_CHAT_LAYER);
MessagesStorage.getInstance().updateEncryptedChatLayer(chat);
}

View file

@ -0,0 +1,143 @@
/*
* This is the source code of Telegram for Android v. 1.7.x.
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Nikolai Kudashov, 2013-2014.
*/
package org.telegram.ui.Cells;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import org.telegram.android.AndroidUtilities;
import org.telegram.android.MessageObject;
import org.telegram.android.MessagesController;
import org.telegram.messenger.FileLog;
import org.telegram.messenger.R;
public class ChatActionCell extends BaseCell {
private static Drawable backgroundBlack;
private static Drawable backgroundBlue;
private static TextPaint textPaint;
private StaticLayout textLayout;
private int textWidth = 0;
private int textHeight = 0;
private int textX = 0;
private int textXLeft = 0;
private int textY = 0;
private boolean useBlackBackground = false;
private boolean wasLayout = false;
private MessageObject currentMessageObject;
public ChatActionCell(Context context) {
super(context);
if (backgroundBlack == null) {
backgroundBlack = getResources().getDrawable(R.drawable.system_black);
backgroundBlue = getResources().getDrawable(R.drawable.system_blue);
textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
textPaint.setColor(0xffffffff);
}
textPaint.setTextSize(AndroidUtilities.dp(MessagesController.getInstance().fontSize));
}
public void setMessageObject(MessageObject messageObject) {
if (currentMessageObject == messageObject) {
return;
}
currentMessageObject = messageObject;
int size;
if (AndroidUtilities.isTablet()) {
size = AndroidUtilities.getMinTabletSide();
} else {
size = Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y);
}
textLayout = new StaticLayout(currentMessageObject.messageText, textPaint, size - AndroidUtilities.dp(30), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false);
textHeight = 0;
textWidth = 0;
try {
int linesCount = textLayout.getLineCount();
boolean hasNonRTL = false;
for (int a = 0; a < linesCount; a++) {
float lineWidth = 0;
float lineLeft = 0;
try {
lineWidth = textLayout.getLineWidth(a);
lineLeft = textLayout.getLineLeft(a);
textHeight = (int)Math.max(textHeight, Math.ceil(textLayout.getLineBottom(a)));
} catch (Exception e) {
FileLog.e("tmessages", e);
return;
}
if (lineLeft == 0) {
hasNonRTL = true;
}
textWidth = (int)Math.max(textWidth, Math.ceil(lineWidth));
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
textY = AndroidUtilities.dp(7);
wasLayout = false;
requestLayout();
}
public void setUseBlackBackground(boolean value) {
useBlackBackground = value;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), textHeight + AndroidUtilities.dp(14));
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
if (currentMessageObject == null) {
super.onLayout(changed, left, top, right, bottom);
return;
}
if (!wasLayout || changed) {
textX = (right - left - textWidth) / 2;
textXLeft = (right - left - textLayout.getWidth()) / 2;
wasLayout = true;
}
}
@Override
protected void onDraw(Canvas canvas) {
if (currentMessageObject == null) {
return;
}
if (!wasLayout) {
requestLayout();
return;
}
Drawable backgroundDrawable = null;
if (useBlackBackground) {
backgroundDrawable = backgroundBlack;
} else {
backgroundDrawable = backgroundBlue;
}
backgroundDrawable.setBounds(textX - AndroidUtilities.dp(5), AndroidUtilities.dp(5), textX + textWidth + AndroidUtilities.dp(5), getMeasuredHeight() - AndroidUtilities.dp(5));
backgroundDrawable.draw(canvas);
canvas.save();
canvas.translate(textXLeft, textY);
textLayout.draw(canvas);
canvas.restore();
}
}

View file

@ -149,18 +149,6 @@ public class ChatBaseCell extends BaseCell {
public ChatBaseCell(Context context) {
super(context);
init();
avatarImage = new ImageReceiver(this);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
avatarImage.clearImage();
currentPhoto = null;
}
private void init() {
if (backgroundDrawableIn == null) {
backgroundDrawableIn = getResources().getDrawable(R.drawable.msg_in);
backgroundDrawableInSelected = getResources().getDrawable(R.drawable.msg_in_selected);
@ -199,6 +187,14 @@ public class ChatBaseCell extends BaseCell {
forwardNamePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
forwardNamePaint.setTextSize(AndroidUtilities.dp(14));
}
avatarImage = new ImageReceiver(this);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
avatarImage.clearImage();
currentPhoto = null;
}
@Override
@ -466,7 +462,6 @@ public class ChatBaseCell extends BaseCell {
}
@Override
protected void onDraw(Canvas canvas) {
if (currentMessageObject == null) {

View file

@ -72,6 +72,7 @@ import org.telegram.messenger.R;
import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities;
import org.telegram.ui.Adapters.BaseFragmentAdapter;
import org.telegram.ui.Cells.ChatActionCell;
import org.telegram.ui.Cells.ChatAudioCell;
import org.telegram.ui.Cells.ChatBaseCell;
import org.telegram.ui.Cells.ChatMediaCell;
@ -393,6 +394,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
typingDotsDrawable = new TypingDotsDrawable();
typingDotsDrawable.setIsChat(currentChat != null);
if (currentEncryptedChat != null && AndroidUtilities.getMyLayerVersion(currentEncryptedChat.layer) != SendMessagesHelper.CURRENT_SECRET_CHAT_LAYER) {
SendMessagesHelper.getInstance().sendNotifyLayerMessage(currentEncryptedChat);
}
return true;
}
@ -801,6 +806,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
if (messageObject == null || !messageObject.isSecretMedia() || !cell.getPhotoImage().isInsideImage(x, y - top)) {
break;
}
File file = FileLoader.getPathToMessage(messageObject.messageOwner);
if (!file.exists()) {
break;
}
startX = x;
startY = y;
openSecretPhotoRunnable = new Runnable() {
@ -1113,44 +1122,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
if (getParentActivity() == null) {
return;
}
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime));
builder.setItems(new CharSequence[]{
LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever),
LocaleController.getString("ShortMessageLifetime2s", R.string.ShortMessageLifetime2s),
LocaleController.getString("ShortMessageLifetime5s", R.string.ShortMessageLifetime5s),
LocaleController.getString("ShortMessageLifetime1m", R.string.ShortMessageLifetime1m),
LocaleController.getString("ShortMessageLifetime1h", R.string.ShortMessageLifetime1h),
LocaleController.getString("ShortMessageLifetime1d", R.string.ShortMessageLifetime1d),
LocaleController.getString("ShortMessageLifetime1w", R.string.ShortMessageLifetime1w)
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int oldValue = currentEncryptedChat.ttl;
if (which == 0) {
currentEncryptedChat.ttl = 0;
} else if (which == 1) {
currentEncryptedChat.ttl = 2;
} else if (which == 2) {
currentEncryptedChat.ttl = 5;
} else if (which == 3) {
currentEncryptedChat.ttl = 60;
} else if (which == 4) {
currentEncryptedChat.ttl = 60 * 60;
} else if (which == 5) {
currentEncryptedChat.ttl = 60 * 60 * 24;
} else if (which == 6) {
currentEncryptedChat.ttl = 60 * 60 * 24 * 7;
}
if (oldValue != currentEncryptedChat.ttl) {
SendMessagesHelper.getInstance().sendTTLMessage(currentEncryptedChat);
MessagesStorage.getInstance().updateEncryptedChat(currentEncryptedChat);
}
}
});
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
showAlertDialog(builder);
showAlertDialog(AndroidUtilities.buildTTLAlert(getParentActivity(), currentEncryptedChat));
}
});
timerButton.setTime(currentEncryptedChat.ttl);
@ -3460,41 +3432,48 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
offset = 0;
}
if (i == 0 && !endReached || !unread_end_reached && i == (messages.size() + 1 - offset)) {
View progressBar = null;
if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_loading_layout, viewGroup, false);
View progressBar = view.findViewById(R.id.progressLayout);
progressBar = view.findViewById(R.id.progressLayout);
if (isCustomTheme) {
progressBar.setBackgroundResource(R.drawable.system_loader2);
} else {
progressBar.setBackgroundResource(R.drawable.system_loader1);
}
progressBar.setVisibility(loadsCount > 1 ? View.VISIBLE : View.INVISIBLE);
} else {
progressBar = view.findViewById(R.id.progressLayout);
}
progressBar.setVisibility(loadsCount > 1 ? View.VISIBLE : View.INVISIBLE);
return view;
}
}
final MessageObject message = messages.get(messages.size() - i - offset);
int type = message.contentType;
if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (type == 0) {
view = new ChatMessageCell(mContext);
} if (type == 1) {
view = new ChatMediaCell(mContext);
} else if (type == 7) {
view = li.inflate(R.layout.chat_action_message_layout, viewGroup, false);
view = new ChatActionCell(mContext);
} else if (type == 8) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_action_change_photo_layout, viewGroup, false);
} else if (type == 3) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_outgoing_contact_layout, viewGroup, false);
} else if (type == 4) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (currentChat != null) {
view = li.inflate(R.layout.chat_group_incoming_contact_layout, viewGroup, false);
} else {
view = li.inflate(R.layout.chat_incoming_contact_layout, viewGroup, false);
}
} else if (type == 6) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_unread_layout, viewGroup, false);
} else if (type == 2) {
view = new ChatAudioCell(mContext);
@ -3638,6 +3617,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
if (view instanceof ChatAudioCell && MediaController.getInstance().canDownloadMedia(MediaController.AUTODOWNLOAD_MASK_AUDIO)) {
((ChatAudioCell)view).downloadAudioIfNeed();
}
} else if (view instanceof ChatActionCell) {
((ChatActionCell)view).setMessageObject(message);
((ChatActionCell)view).setUseBlackBackground(isCustomTheme);
} else {
ChatListRowHolderEx holder = (ChatListRowHolderEx)view.getTag();
if (holder == null) {

View file

@ -60,6 +60,7 @@ public class LoginActivity extends BaseFragment implements SlideView.SlideViewDe
} catch (Exception e) {
FileLog.e("tmessages", e);
}
progressDialog = null;
}
}
@ -260,6 +261,7 @@ public class LoginActivity extends BaseFragment implements SlideView.SlideViewDe
} catch (Exception e) {
FileLog.e("tmessages", e);
}
progressDialog = null;
}
public void setPage(int page, boolean animated, Bundle params, boolean back) {

View file

@ -611,12 +611,14 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
return;
}
try {
int size[] = new int[1];
TLRPC.FileLocation fileLocation = getFileLocation(currentIndex, size);
if (fileLocation == null) {
return;
File f = null;
if (currentMessageObject != null) {
f = FileLoader.getPathToMessage(currentMessageObject.messageOwner);
} else if (currentFileLocation != null) {
f = FileLoader.getPathToAttach(currentFileLocation, avatarsUserId != 0);
}
File f = FileLoader.getPathToAttach(fileLocation, avatarsUserId != 0);
if (f.exists()) {
Intent intent = new Intent(Intent.ACTION_SEND);
if (f.toString().endsWith("mp4")) {

View file

@ -59,6 +59,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarLayer;
import org.telegram.ui.Views.AvatarUpdater;
import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.NumberPicker;
import java.io.File;
import java.util.ArrayList;
@ -245,39 +246,24 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
}
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
builder.setTitle(LocaleController.getString("TextSize", R.string.TextSize));
builder.setItems(new CharSequence[] {
String.format("%d", 12),
String.format("%d", 13),
String.format("%d", 14),
String.format("%d", 15),
String.format("%d", 16),
String.format("%d", 17),
String.format("%d", 18),
String.format("%d", 19),
String.format("%d", 20),
String.format("%d", 21),
String.format("%d", 22),
String.format("%d", 23),
String.format("%d", 24),
String.format("%d", 25),
String.format("%d", 26),
String.format("%d", 27),
String.format("%d", 28),
String.format("%d", 29),
String.format("%d", 30)}, new DialogInterface.OnClickListener() {
final NumberPicker numberPicker = new NumberPicker(getParentActivity());
numberPicker.setMinValue(12);
numberPicker.setMaxValue(30);
numberPicker.setValue(MessagesController.getInstance().fontSize);
builder.setView(numberPicker);
builder.setNegativeButton(LocaleController.getString("Done", R.string.Done), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("fons_size", 12 + which);
MessagesController.getInstance().fontSize = 12 + which;
editor.putInt("fons_size", numberPicker.getValue());
MessagesController.getInstance().fontSize = numberPicker.getValue();
editor.commit();
if (listView != null) {
listView.invalidateViews();
}
}
});
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
showAlertDialog(builder);
} else if (i == enableAnimationsRow) {
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);

View file

@ -31,7 +31,6 @@ import org.telegram.messenger.TLRPC;
import org.telegram.android.ContactsController;
import org.telegram.messenger.FileLog;
import org.telegram.android.MessagesController;
import org.telegram.android.MessagesStorage;
import org.telegram.android.NotificationCenter;
import org.telegram.messenger.R;
import org.telegram.android.MessageObject;
@ -256,47 +255,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen
if (getParentActivity() == null) {
return;
}
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime));
builder.setItems(new CharSequence[]{
LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever),
LocaleController.getString("ShortMessageLifetime2s", R.string.ShortMessageLifetime2s),
LocaleController.getString("ShortMessageLifetime5s", R.string.ShortMessageLifetime5s),
LocaleController.getString("ShortMessageLifetime1m", R.string.ShortMessageLifetime1m),
LocaleController.getString("ShortMessageLifetime1h", R.string.ShortMessageLifetime1h),
LocaleController.getString("ShortMessageLifetime1d", R.string.ShortMessageLifetime1d),
LocaleController.getString("ShortMessageLifetime1w", R.string.ShortMessageLifetime1w)
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int oldValue = currentEncryptedChat.ttl;
if (which == 0) {
currentEncryptedChat.ttl = 0;
} else if (which == 1) {
currentEncryptedChat.ttl = 2;
} else if (which == 2) {
currentEncryptedChat.ttl = 5;
} else if (which == 3) {
currentEncryptedChat.ttl = 60;
} else if (which == 4) {
currentEncryptedChat.ttl = 60 * 60;
} else if (which == 5) {
currentEncryptedChat.ttl = 60 * 60 * 24;
} else if (which == 6) {
currentEncryptedChat.ttl = 60 * 60 * 24 * 7;
}
if (oldValue != currentEncryptedChat.ttl) {
if (listView != null) {
listView.invalidateViews();
}
SendMessagesHelper.getInstance().sendTTLMessage(currentEncryptedChat);
MessagesStorage.getInstance().updateEncryptedChat(currentEncryptedChat);
}
}
});
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
showAlertDialog(builder);
showAlertDialog(AndroidUtilities.buildTTLAlert(getParentActivity(), currentEncryptedChat));
} else if (i == settingsNotificationsRow) {
Bundle args = new Bundle();
args.putLong("dialog_id", dialog_id == 0 ? user_id : dialog_id);
@ -454,6 +413,13 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen
}
}
@Override
protected void onDialogDismiss() {
if (listView != null) {
listView.invalidateViews();
}
}
@Override
public void didSelectDialog(MessagesActivity messageFragment, long dialog_id, boolean param) {
if (dialog_id != 0) {
@ -670,20 +636,8 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen
divider.setVisibility(View.VISIBLE);
if (encryptedChat.ttl == 0) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetimeForever", R.string.ShortMessageLifetimeForever));
} else if (encryptedChat.ttl == 2) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime2s", R.string.ShortMessageLifetime2s));
} else if (encryptedChat.ttl == 5) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime5s", R.string.ShortMessageLifetime5s));
} else if (encryptedChat.ttl == 60) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime1m", R.string.ShortMessageLifetime1m));
} else if (encryptedChat.ttl == 60 * 60) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime1h", R.string.ShortMessageLifetime1h));
} else if (encryptedChat.ttl == 60 * 60 * 24) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime1d", R.string.ShortMessageLifetime1d));
} else if (encryptedChat.ttl == 60 * 60 * 24 * 7) {
detailTextView.setText(LocaleController.getString("ShortMessageLifetime1w", R.string.ShortMessageLifetime1w));
} else {
detailTextView.setText(String.format("%d", encryptedChat.ttl));
detailTextView.setText(AndroidUtilities.formatTTLString(encryptedChat.ttl));
}
}
} else if (type == 4) {

View file

@ -23,8 +23,6 @@ import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.Scroller;
import org.telegram.messenger.R;
public class HorizontalListView extends AdapterView<ListAdapter> {
public boolean mAlwaysOverrideTouch = true;
@ -209,7 +207,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
v = list.poll();
}
View child = mAdapter.getView(mRightViewIndex, v, this);
child.setTag(R.string.CacheTag, type);
child.setTag(1, type);
addAndMeasureChild(child, -1);
rightEdge += child.getMeasuredWidth();
@ -236,7 +234,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
v = list.poll();
}
View child = mAdapter.getView(mLeftViewIndex, v, this);
child.setTag(R.string.CacheTag, type);
child.setTag(1, type);
addAndMeasureChild(child, 0);
leftEdge -= child.getMeasuredWidth();
@ -250,7 +248,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
while (child != null && child.getRight() + dx <= 0) {
mDisplayOffset += child.getMeasuredWidth();
int type = (Integer) child.getTag(R.string.CacheTag);
int type = (Integer) child.getTag(1);
LinkedList<View> list = mRemovedViewQueue.get(type);
if (list == null) {
list = new LinkedList<View>();
@ -265,7 +263,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
child = getChildAt(getChildCount() - 1);
while (child != null && child.getLeft() + dx >= getWidth()) {
int type = (Integer) child.getTag(R.string.CacheTag);
int type = (Integer) child.getTag(1);
LinkedList<View> list = mRemovedViewQueue.get(type);
if (list == null) {
list = new LinkedList<View>();

File diff suppressed because it is too large Load diff

View file

@ -65,20 +65,33 @@ public class TimerButton extends View {
time = value;
String timeString = null;
if (time == 2) {
timeString = "2s";
} else if (time == 5) {
timeString = "5s";
} else if (time == 60) {
timeString = "1m";
} else if (time == 60 * 60) {
timeString = "1h";
} else if (time == 60 * 60 * 24) {
timeString = "1d";
} else if (time == 60 * 60 * 24 * 7) {
timeString = "1w";
if (time >= 1 && time < 60) {
timeString = "" + value;
if (timeString.length() < 2) {
timeString += "s";
}
} else if (time >= 60 && time < 60 * 60) {
timeString = "" + value / 60;
if (timeString.length() < 2) {
timeString += "m";
}
} else if (time >= 60 * 60 && time < 60 * 60 * 24) {
timeString = "" + value / 60 / 60;
if (timeString.length() < 2) {
timeString += "h";
}
} else if (time >= 60 * 60 * 24 && time < 60 * 60 * 24 * 7) {
timeString = "" + value / 60 / 60 / 24;
if (timeString.length() < 2) {
timeString += "d";
}
} else {
timeString = "c";
timeString = "" + value / 60 / 60 / 24 / 7;
if (timeString.length() < 2) {
timeString += "w";
} else if (timeString.length() > 2) {
timeString = "c";
}
}
timeWidth = timePaint.measureText(timeString);
@ -110,7 +123,7 @@ public class TimerButton extends View {
drawable.draw(canvas);
if (time != 0 && timeLayout != null) {
canvas.translate((width - timeWidth) / 2, (height - timeHeight) / 2 + AndroidUtilities.dp(1));
canvas.translate((int)(width / 2 - Math.ceil(timeWidth / 2)), (height - timeHeight) / 2 + AndroidUtilities.dpf2(1.5f));
timeLayout.draw(canvas);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_light" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_light" />
<item android:state_focused="true" android:drawable="@drawable/list_focused_holo" />
<item android:drawable="@drawable/transparent" />
</selector>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_pressed_holo_light" />
<item android:drawable="@drawable/list_longpressed_holo_light" />
</transition>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">لقد قمت بتعيين التدمير الذاتي إلى %1$s</string>
<string name="MessageLifetimeRemoved">%1$s قام بإيقاف عداد التدمير الذاتي</string>
<string name="MessageLifetimeYouRemoved">لقد قمت بتعطيل عداد التدمير الذاتي</string>
<string name="MessageLifetime2s">ثانيتان</string>
<string name="MessageLifetime5s">٥ ثوانٍ</string>
<string name="MessageLifetime1m">دقيقة</string>
<string name="MessageLifetime1h">ساعة</string>
<string name="MessageLifetime1d">يوم</string>
<string name="MessageLifetime1w">أسبوع</string>
<string name="YouHaveNewMessage">لديك رسالة جديدة</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s قام بإرسال رسالة لك</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">مفتاح التشفير</string>
<string name="MessageLifetime">عداد التدمير الذاتي</string>
<string name="ShortMessageLifetimeForever">إيقاف</string>
<string name="ShortMessageLifetime2s">ثانيتان</string>
<string name="ShortMessageLifetime5s">٥ ثوانٍ</string>
<string name="ShortMessageLifetime1m">دقيقة</string>
<string name="ShortMessageLifetime1h">ساعة</string>
<string name="ShortMessageLifetime1d">يوم</string>
<string name="ShortMessageLifetime1w">أسبوع</string>
<string name="EncryptionKeyDescription">هذه الصورة هي تصور لمفتاح التشفير لهذه المحادثة السرية مع <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>إذا كانت مطابقة للصورة التي في جهاز <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, فمحادثتكم آمنة ٢٠٠٪.<![CDATA[<br><br>]]>للمزيد نرجو الذهاب إلى telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">تم تعيين كافة الإشعارات افتراضيا</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">من %1$d جهات اتصال</string>
<string name="FromContacts_many">من %1$d جهة اتصال</string>
<string name="FromContacts_other">من %1$d جهة اتصال</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s الساعة %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">Du hast den Selbstzerstörungs-Timer auf %1$s gesetzt</string>
<string name="MessageLifetimeRemoved">%1$s hat den Selbstzerstörungs-Timer deaktivert</string>
<string name="MessageLifetimeYouRemoved">Du hast den Selbstzerstörungs-Timer deaktivert</string>
<string name="MessageLifetime2s">2 Sekunden</string>
<string name="MessageLifetime5s">5 Sekunden</string>
<string name="MessageLifetime1m">1 Minute</string>
<string name="MessageLifetime1h">1 Stunde</string>
<string name="MessageLifetime1d">1 Tag</string>
<string name="MessageLifetime1w">1 Woche</string>
<string name="YouHaveNewMessage">Du hast eine neue Nachricht</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s hat dir eine Nachricht gesendet</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Geheimer Schlüssel</string>
<string name="MessageLifetime">Selbstzerstörungs-Timer</string>
<string name="ShortMessageLifetimeForever">Aus</string>
<string name="ShortMessageLifetime2s">2 Sek.</string>
<string name="ShortMessageLifetime5s">5 Sek.</string>
<string name="ShortMessageLifetime1m">1 Min.</string>
<string name="ShortMessageLifetime1h">1 Std.</string>
<string name="ShortMessageLifetime1d">1 Tag</string>
<string name="ShortMessageLifetime1w">1 Woche</string>
<string name="EncryptionKeyDescription">Das ist eine Darstellung des Schlüssels für den Geheimen Chat mit <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Wenn dieses Bild auf <![CDATA[<b>]]>%2$s\s<![CDATA[</b>]]>s Telefon genau so aussieht, ist euer Chat zu 200%% sicher.<![CDATA[<br><br>]]>Erfahre mehr auf telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Alle Einstellungen für Mitteilungen zurücksetzen</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">von %1$d Kontakten</string>
<string name="FromContacts_many">von %1$d Kontakten</string>
<string name="FromContacts_other">von %1$d Kontakten</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s um %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">Activaste la autodestrucción en %1$s</string>
<string name="MessageLifetimeRemoved">%1$s desactivó la autodestrucción</string>
<string name="MessageLifetimeYouRemoved">Desactivaste la autodestrucción</string>
<string name="MessageLifetime2s">2 segundos</string>
<string name="MessageLifetime5s">5 segundos</string>
<string name="MessageLifetime1m">1 minuto</string>
<string name="MessageLifetime1h">1 hora</string>
<string name="MessageLifetime1d">1 día</string>
<string name="MessageLifetime1w">1 semana</string>
<string name="YouHaveNewMessage">Tienes un nuevo mensaje</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s te envió un mensaje</string>
@ -175,7 +169,7 @@
<!--group info view-->
<string name="EnterGroupNameTitle">PON EL NOMBRE DEL GRUPO</string>
<string name="SharedMedia">Fotos y vídeos</string>
<string name="GroupInfo">Información </string>
<string name="GroupInfo">Información</string>
<string name="SHAREDMEDIA">FOTOS Y VÍDEOS</string>
<string name="SETTINGS">AJUSTES</string>
<string name="AddMember">Añadir miembro</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Clave de cifrado</string>
<string name="MessageLifetime">Autodestrucción</string>
<string name="ShortMessageLifetimeForever">Apagada</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1h</string>
<string name="ShortMessageLifetime1d">1d</string>
<string name="ShortMessageLifetime1w">1S</string>
<string name="EncryptionKeyDescription">Esta imagen es una visualización de la clave de cifrado para el chat secreto con <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Si esta imagen se ve igual en el teléfono de <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, tu chat es seguro en un 200%%.<![CDATA[<br><br>]]>Aprende más en telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Restablecer las notificaciones</string>
@ -267,7 +255,7 @@
<string name="NoPopup">Desactivadas</string>
<string name="OnlyWhenScreenOn">Con pantalla encendida</string>
<string name="OnlyWhenScreenOff">Con pantalla apagada</string>
<string name="AlwaysShowPopup">Mostrar siempre </string>
<string name="AlwaysShowPopup">Mostrar siempre</string>
<string name="BadgeNumber">Globo en el ícono</string>
<string name="Short">Corto</string>
<string name="Long">Largo</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">de %1$d contactos</string>
<string name="FromContacts_many">de %1$d contactos</string>
<string name="FromContacts_other">de %1$d contactos</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd \'de\' MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s a las %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">Hai impostato il timer di autodistruzione a %1$s</string>
<string name="MessageLifetimeRemoved">%1$s ha disabilitato il timer di autodistruzione</string>
<string name="MessageLifetimeYouRemoved">Hai disabilitato il timer di autodistruzione</string>
<string name="MessageLifetime2s">2 secondi</string>
<string name="MessageLifetime5s">5 secondi</string>
<string name="MessageLifetime1m">1 minuto</string>
<string name="MessageLifetime1h">1 ora</string>
<string name="MessageLifetime1d">1 giorno</string>
<string name="MessageLifetime1w">1 settimana</string>
<string name="YouHaveNewMessage">Hai un nuovo messaggio</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s ti ha inviato un messaggio</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Chiave di cifratura</string>
<string name="MessageLifetime">Timer di autodistruzione</string>
<string name="ShortMessageLifetimeForever">Spento</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1h</string>
<string name="ShortMessageLifetime1d">1g</string>
<string name="ShortMessageLifetime1w">1sett</string>
<string name="EncryptionKeyDescription">Questa immagine è una visualizzazione della chiave di cifratura per questa chat segreta con <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Se questa immagine è uguale sul telefono di <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, la chat è sicura al 200%%.<![CDATA[<br><br>]]>Per saperne di più, visita Telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Ripristina tutte le impostazioni di notifica predefinite</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">da %1$d contatti</string>
<string name="FromContacts_many">da %1$d contatti</string>
<string name="FromContacts_other">da %1$d contatti</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s alle %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">자동삭제를 %1$s 후로 설정했습니다</string>
<string name="MessageLifetimeRemoved">%1$s님이 자동삭제를 해제했습니다</string>
<string name="MessageLifetimeYouRemoved">자동삭제를 해제했습니다</string>
<string name="MessageLifetime2s">2초</string>
<string name="MessageLifetime5s">5초</string>
<string name="MessageLifetime1m">1분</string>
<string name="MessageLifetime1h">1시간</string>
<string name="MessageLifetime1d">하루</string>
<string name="MessageLifetime1w">일주일</string>
<string name="YouHaveNewMessage">새 메시지가 있습니다</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s님이 메시지를 보냈습니다</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">암호화 키</string>
<string name="MessageLifetime">자동삭제 타이머</string>
<string name="ShortMessageLifetimeForever">해제</string>
<string name="ShortMessageLifetime2s">2초</string>
<string name="ShortMessageLifetime5s">5초</string>
<string name="ShortMessageLifetime1m">1분</string>
<string name="ShortMessageLifetime1h">1시간</string>
<string name="ShortMessageLifetime1d">하루</string>
<string name="ShortMessageLifetime1w">일주일</string>
<string name="EncryptionKeyDescription">이 이미지는 <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>님과의 비밀대화에 사용 중인 암호화 키의 모습입니다.<![CDATA[<br><br>]]>이 이미지가 <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>님의 암호화 키와 똑같다면 대화는 200%% 안전합니다.<![CDATA[<br><br>]]>더 자세한 사항은 telegram.org 를 참고해 주세요.</string>
<!--settings view-->
<string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">채팅방 %1$d개에서</string>
<string name="FromContacts_many">채팅방 %1$d개에서</string>
<string name="FromContacts_other">채팅방 %1$d개에서</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">M\'월\' d\'일\'</string>
<string name="formatterYear">yyyy.MM.dd.</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">a h:mm</string>
<string name="formatDateAtTime">%1$s %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">Je hebt de zelfvernietigingstimer ingesteld op %1$s</string>
<string name="MessageLifetimeRemoved">%1$s heeft de zelfvernietigingstimer uitgeschakeld</string>
<string name="MessageLifetimeYouRemoved">Je hebt de zelfvernietigingstimer uitgeschakeld</string>
<string name="MessageLifetime2s">2 seconden</string>
<string name="MessageLifetime5s">5 seconden</string>
<string name="MessageLifetime1m">1 minuut</string>
<string name="MessageLifetime1h">1 uur</string>
<string name="MessageLifetime1d">1 dag</string>
<string name="MessageLifetime1w">1 week</string>
<string name="YouHaveNewMessage">Je hebt een nieuw bericht</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s heeft je een bericht gestuurd</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Encryptiesleutel</string>
<string name="MessageLifetime">Zelfvernietigingstimer</string>
<string name="ShortMessageLifetimeForever">Uit</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1u</string>
<string name="ShortMessageLifetime1d">1d</string>
<string name="ShortMessageLifetime1w">1w</string>
<string name="EncryptionKeyDescription">Dit is een weergave van de encryptiesleutel voor deze geheime chat met <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Als deze afbeelding er bij <![CDATA[<b>]]>%2$s<![CDATA[</b>]]> hetzelfde uitziet, is jullie gesprek 200%% beveiligd.<![CDATA[<br><br>]]>Lees meer op telegram.org.</string>
<!--settings view-->
<string name="ResetNotificationsText">Alle meldingsinstellingen herstellen</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">van %1$d contactpersonen</string>
<string name="FromContacts_many">van %1$d contactpersonen</string>
<string name="FromContacts_other">van %1$d contactpersonen</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd-MM-yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s om %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -114,16 +114,10 @@
<!--notification-->
<string name="EncryptedChatRequested">Conversa secreta solicitada</string>
<string name="EncryptedChatAccepted">Conversa secreta iniciada</string>
<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="MessageLifetimeRemoved">%1$s desativou o temporizador de autodestruição</string>
<string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string>
<string name="MessageLifetime2s">2 segundos</string>
<string name="MessageLifetime5s">5 segundos</string>
<string name="MessageLifetime1m">1 minuto</string>
<string name="MessageLifetime1h">1 hora</string>
<string name="MessageLifetime1d">1 dia</string>
<string name="MessageLifetime1w">1 semana</string>
<string name="YouHaveNewMessage">Você tem uma nova mensagem</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s te enviou uma mensagem</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Chave criptográfica</string>
<string name="MessageLifetime">Tempo de autodestruição</string>
<string name="ShortMessageLifetimeForever">Desativado</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1h</string>
<string name="ShortMessageLifetime1d">1d</string>
<string name="ShortMessageLifetime1w">1 sem.</string>
<string name="EncryptionKeyDescription">Esta imagem é uma visualização da chave criptográfica para esta conversa secreta com <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Se esta imagem aparecer da mesma forma no telefone de <![CDATA[<b>]]>%2$s\'s<![CDATA[</b>]]>, sua conversa é 200%% segura.<![CDATA[<br><br>]]>Saiba mais em telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">de %1$d contatos</string>
<string name="FromContacts_many">de %1$d contatos</string>
<string name="FromContacts_other">de %1$d contatos</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s às %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -114,16 +114,10 @@
<!--notification-->
<string name="EncryptedChatRequested">Conversa secreta solicitada</string>
<string name="EncryptedChatAccepted">Conversa secreta iniciada</string>
<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="MessageLifetimeRemoved">%1$s desativou o temporizador de autodestruição</string>
<string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string>
<string name="MessageLifetime2s">2 segundos</string>
<string name="MessageLifetime5s">5 segundos</string>
<string name="MessageLifetime1m">1 minuto</string>
<string name="MessageLifetime1h">1 hora</string>
<string name="MessageLifetime1d">1 dia</string>
<string name="MessageLifetime1w">1 semana</string>
<string name="YouHaveNewMessage">Você tem uma nova mensagem</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s te enviou uma mensagem</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Chave criptográfica</string>
<string name="MessageLifetime">Tempo de autodestruição</string>
<string name="ShortMessageLifetimeForever">Desativado</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1h</string>
<string name="ShortMessageLifetime1d">1d</string>
<string name="ShortMessageLifetime1w">1 sem.</string>
<string name="EncryptionKeyDescription">Esta imagem é uma visualização da chave criptográfica para esta conversa secreta com <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Se esta imagem aparecer da mesma forma no telefone de <![CDATA[<b>]]>%2$s\'s<![CDATA[</b>]]>, sua conversa é 200%% segura.<![CDATA[<br><br>]]>Saiba mais em telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">de %1$d contatos</string>
<string name="FromContacts_many">de %1$d contatos</string>
<string name="FromContacts_other">de %1$d contatos</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s às %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>

View file

@ -118,12 +118,6 @@
<string name="MessageLifetimeChangedOutgoing">You set the self-destruct timer to %1$s</string>
<string name="MessageLifetimeRemoved">%1$s disabled the self-destruct timer</string>
<string name="MessageLifetimeYouRemoved">You disabled the self-destruct timer</string>
<string name="MessageLifetime2s">2 seconds</string>
<string name="MessageLifetime5s">5 seconds</string>
<string name="MessageLifetime1m">1 minute</string>
<string name="MessageLifetime1h">1 hour</string>
<string name="MessageLifetime1d">1 day</string>
<string name="MessageLifetime1w">1 week</string>
<string name="YouHaveNewMessage">You have a new message</string>
<string name="NotificationMessageText">%1$s: %2$s</string>
<string name="NotificationMessageNoText">%1$s sent you a message</string>
@ -202,12 +196,6 @@
<string name="EncryptionKey">Encryption Key</string>
<string name="MessageLifetime">Self-Destruct Timer</string>
<string name="ShortMessageLifetimeForever">Off</string>
<string name="ShortMessageLifetime2s">2s</string>
<string name="ShortMessageLifetime5s">5s</string>
<string name="ShortMessageLifetime1m">1m</string>
<string name="ShortMessageLifetime1h">1h</string>
<string name="ShortMessageLifetime1d">1d</string>
<string name="ShortMessageLifetime1w">1w</string>
<string name="EncryptionKeyDescription">This image is a visualization of the encryption key for this secret chat with <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>If this image looks the same on <![CDATA[<b>]]>%2$s\'s<![CDATA[</b>]]> phone, your chat is 200%% secure.<![CDATA[<br><br>]]>Learn more at telegram.org</string>
<!--settings view-->
<string name="ResetNotificationsText">Reset all notification settings to default</string>
@ -434,6 +422,36 @@
<string name="FromContacts_few">from %1$d contacts</string>
<string name="FromContacts_many">from %1$d contacts</string>
<string name="FromContacts_other">from %1$d contacts</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<!--date formatters-->
<string name="formatterMonth">MMM dd</string>
<string name="formatterYear">dd.MM.yy</string>
@ -444,6 +462,4 @@
<string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string>
<string name="formatDateAtTime">%1$s at %2$s</string>
<!--Don't change this! Not for localization!-->
<string name="CacheTag">CACHE_TAG</string>
</resources>