UI update
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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,9 +2473,11 @@ 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 -1;
|
||||
}
|
||||
|
||||
private void putMessagesInternal(final ArrayList<TLRPC.Message> messages, final boolean withTransaction, final boolean isBroadcast, final int downloadMask) {
|
||||
try {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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")) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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>();
|
||||
|
|
1058
TMessagesProj/src/main/java/org/telegram/ui/Views/NumberPicker.java
Normal file
|
@ -65,21 +65,34 @@ 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 = "" + value / 60 / 60 / 24 / 7;
|
||||
if (timeString.length() < 2) {
|
||||
timeString += "w";
|
||||
} else if (timeString.length() > 2) {
|
||||
timeString = "c";
|
||||
}
|
||||
}
|
||||
|
||||
timeWidth = timePaint.measureText(timeString);
|
||||
try {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
BIN
TMessagesProj/src/main/res/drawable-hdpi/list_focused_holo.9.png
Normal file
After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 159 B |
After Width: | Height: | Size: 189 B |
After Width: | Height: | Size: 141 B |
BIN
TMessagesProj/src/main/res/drawable-mdpi/list_focused_holo.9.png
Normal file
After Width: | Height: | Size: 171 B |
After Width: | Height: | Size: 155 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 171 B |
After Width: | Height: | Size: 135 B |
After Width: | Height: | Size: 203 B |
After Width: | Height: | Size: 162 B |
After Width: | Height: | Size: 163 B |
After Width: | Height: | Size: 188 B |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 217 B |
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|