Commit e8cc3bdd authored by DrKLO's avatar DrKLO

Different improvements

parent 08a49ea2
...@@ -80,7 +80,7 @@ android { ...@@ -80,7 +80,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 361 versionCode 362
versionName "1.9.5" versionName "1.9.5"
} }
} }
...@@ -23,6 +23,8 @@ import android.view.Surface; ...@@ -23,6 +23,8 @@ import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import org.telegram.messenger.FileLog; import org.telegram.messenger.FileLog;
import org.telegram.messenger.R; import org.telegram.messenger.R;
...@@ -32,6 +34,7 @@ import org.telegram.ui.ApplicationLoader; ...@@ -32,6 +34,7 @@ import org.telegram.ui.ApplicationLoader;
import org.telegram.ui.Views.NumberPicker; import org.telegram.ui.Views.NumberPicker;
import java.io.File; import java.io.File;
import java.lang.reflect.Field;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Locale; import java.util.Locale;
...@@ -416,7 +419,7 @@ public class AndroidUtilities { ...@@ -416,7 +419,7 @@ public class AndroidUtilities {
} }
} }
public static AlertDialog.Builder buildTTLAlert(Context context, final TLRPC.EncryptedChat encryptedChat) { public static AlertDialog.Builder buildTTLAlert(final Context context, final TLRPC.EncryptedChat encryptedChat) {
AlertDialog.Builder builder = new AlertDialog.Builder(context); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime)); builder.setTitle(LocaleController.getString("MessageLifetime", R.string.MessageLifetime));
final NumberPicker numberPicker = new NumberPicker(context); final NumberPicker numberPicker = new NumberPicker(context);
...@@ -483,4 +486,17 @@ public class AndroidUtilities { ...@@ -483,4 +486,17 @@ public class AndroidUtilities {
}); });
return builder; return builder;
} }
public static void clearCursorDrawable(EditText editText) {
if (editText == null || Build.VERSION.SDK_INT < 12) {
return;
}
try {
Field mCursorDrawableRes = TextView.class.getDeclaredField("mCursorDrawableRes");
mCursorDrawableRes.setAccessible(true);
mCursorDrawableRes.setInt(editText, 0);
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
} }
...@@ -38,7 +38,6 @@ import android.os.Environment; ...@@ -38,7 +38,6 @@ import android.os.Environment;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
import android.os.Vibrator; import android.os.Vibrator;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
...@@ -400,6 +399,8 @@ public class MediaController implements NotificationCenter.NotificationCenterDel ...@@ -400,6 +399,8 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidLoaded); NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileDidLoaded);
NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileLoadProgressChanged); NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileLoadProgressChanged);
NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileUploadProgressChanged); NotificationCenter.getInstance().addObserver(this, NotificationCenter.FileUploadProgressChanged);
NotificationCenter.getInstance().addObserver(this, NotificationCenter.messagesDeleted);
NotificationCenter.getInstance().addObserver(this, NotificationCenter.removeAllMessagesFromDialog);
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() { BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
@Override @Override
...@@ -900,6 +901,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel ...@@ -900,6 +901,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
deleteLaterArray.clear(); deleteLaterArray.clear();
} }
@SuppressWarnings("unchecked")
@Override @Override
public void didReceivedNotification(int id, Object... args) { public void didReceivedNotification(int id, Object... args) {
if (id == NotificationCenter.FileDidFailedLoad) { if (id == NotificationCenter.FileDidFailedLoad) {
...@@ -963,6 +965,18 @@ public class MediaController implements NotificationCenter.NotificationCenterDel ...@@ -963,6 +965,18 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
} }
listenerInProgress = false; listenerInProgress = false;
processLaterArrays(); processLaterArrays();
} else if (id == NotificationCenter.messagesDeleted) {
if (playingMessageObject != null) {
ArrayList<Integer> markAsDeletedMessages = (ArrayList<Integer>)args[0];
if (markAsDeletedMessages.contains(playingMessageObject.messageOwner.id)) {
clenupPlayer(false);
}
}
} else if (id == NotificationCenter.removeAllMessagesFromDialog) {
long did = (Long)args[0];
if (playingMessageObject != null && playingMessageObject.getDialogId() == did) {
clenupPlayer(false);
}
} }
} }
...@@ -1182,6 +1196,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel ...@@ -1182,6 +1196,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
} }
return true; return true;
} }
NotificationCenter.getInstance().postNotificationName(NotificationCenter.audioDidStarted, messageObject);
clenupPlayer(true); clenupPlayer(true);
final File cacheFile = FileLoader.getPathToMessage(messageObject.messageOwner); final File cacheFile = FileLoader.getPathToMessage(messageObject.messageOwner);
......
...@@ -607,10 +607,17 @@ public class MessageObject { ...@@ -607,10 +607,17 @@ public class MessageObject {
messageOwner.flags &=~ TLRPC.MESSAGE_FLAG_UNREAD; messageOwner.flags &=~ TLRPC.MESSAGE_FLAG_UNREAD;
} }
public boolean isSecretMedia() { public boolean isSecretPhoto() {
return messageOwner instanceof TLRPC.TL_message_secret && messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && messageOwner.ttl != 0 && messageOwner.ttl <= 60; return messageOwner instanceof TLRPC.TL_message_secret && messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && messageOwner.ttl != 0 && messageOwner.ttl <= 60;
} }
public boolean isSecretMedia() {
return messageOwner instanceof TLRPC.TL_message_secret &&
(messageOwner.media instanceof TLRPC.TL_messageMediaPhoto && messageOwner.ttl != 0 && messageOwner.ttl <= 60 ||
messageOwner.media instanceof TLRPC.TL_messageMediaAudio ||
messageOwner.media instanceof TLRPC.TL_messageMediaVideo);
}
public static void setIsUnread(TLRPC.Message message, boolean unread) { public static void setIsUnread(TLRPC.Message message, boolean unread) {
if (unread) { if (unread) {
message.flags |= TLRPC.MESSAGE_FLAG_UNREAD; message.flags |= TLRPC.MESSAGE_FLAG_UNREAD;
......
...@@ -3687,6 +3687,9 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -3687,6 +3687,9 @@ public class MessagesController implements NotificationCenter.NotificationCenter
newMessage.media.video.key = decryptedMessage.media.key; newMessage.media.video.key = decryptedMessage.media.key;
newMessage.media.video.iv = decryptedMessage.media.iv; newMessage.media.video.iv = decryptedMessage.media.iv;
newMessage.media.video.mime_type = decryptedMessage.media.mime_type; newMessage.media.video.mime_type = decryptedMessage.media.mime_type;
if (newMessage.ttl != 0) {
newMessage.ttl = Math.max(newMessage.media.video.duration + 1, newMessage.ttl);
}
if (newMessage.media.video.mime_type == null) { if (newMessage.media.video.mime_type == null) {
newMessage.media.video.mime_type = "video/mp4"; newMessage.media.video.mime_type = "video/mp4";
} }
...@@ -3733,6 +3736,9 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -3733,6 +3736,9 @@ public class MessagesController implements NotificationCenter.NotificationCenter
newMessage.media.audio.dc_id = message.file.dc_id; newMessage.media.audio.dc_id = message.file.dc_id;
newMessage.media.audio.duration = decryptedMessage.media.duration; newMessage.media.audio.duration = decryptedMessage.media.duration;
newMessage.media.audio.mime_type = decryptedMessage.media.mime_type; newMessage.media.audio.mime_type = decryptedMessage.media.mime_type;
if (newMessage.ttl != 0) {
newMessage.ttl = Math.max(newMessage.media.audio.duration + 1, newMessage.ttl);
}
if (newMessage.media.audio.mime_type == null) { if (newMessage.media.audio.mime_type == null) {
newMessage.media.audio.mime_type = "audio/ogg"; newMessage.media.audio.mime_type = "audio/ogg";
} }
...@@ -3801,7 +3807,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -3801,7 +3807,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
return null; return null;
} else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionReadMessages) { } else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionReadMessages) {
if (!serviceMessage.action.random_ids.isEmpty()) { if (!serviceMessage.action.random_ids.isEmpty()) {
MessagesStorage.getInstance().createTaskForSecretChat(chat.id, ConnectionsManager.getInstance().getCurrentTime(), message.date, 1, serviceMessage.action.random_ids); MessagesStorage.getInstance().createTaskForSecretChat(chat.id, ConnectionsManager.getInstance().getCurrentTime(), ConnectionsManager.getInstance().getCurrentTime(), 1, serviceMessage.action.random_ids);
} }
} else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionNotifyLayer) { } else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionNotifyLayer) {
AndroidUtilities.RunOnUIThread(new Runnable() { AndroidUtilities.RunOnUIThread(new Runnable() {
......
...@@ -2511,8 +2511,20 @@ public class MessagesStorage { ...@@ -2511,8 +2511,20 @@ public class MessagesStorage {
}); });
} }
private int getMessageMediaType(TLRPC.Message message) { private boolean canAddMessageToMedia(TLRPC.Message message) {
if (message instanceof TLRPC.TL_message_secret && message.media instanceof TLRPC.TL_messageMediaPhoto && message.ttl != 0 && message.ttl <= 60) { if (message instanceof TLRPC.TL_message_secret && message.media instanceof TLRPC.TL_messageMediaPhoto && message.ttl != 0 && message.ttl <= 60) {
return false;
} else if (message.media instanceof TLRPC.TL_messageMediaPhoto || message.media instanceof TLRPC.TL_messageMediaVideo) {
return true;
}
return false;
}
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 ||
message.media instanceof TLRPC.TL_messageMediaAudio ||
message.media instanceof TLRPC.TL_messageMediaVideo)) {
return 1; return 1;
} else if (message.media instanceof TLRPC.TL_messageMediaPhoto || message.media instanceof TLRPC.TL_messageMediaVideo) { } else if (message.media instanceof TLRPC.TL_messageMediaPhoto || message.media instanceof TLRPC.TL_messageMediaVideo) {
return 0; return 0;
...@@ -2555,7 +2567,7 @@ public class MessagesStorage { ...@@ -2555,7 +2567,7 @@ public class MessagesStorage {
messagesIdsMap.put(message.id, dialog_id); messagesIdsMap.put(message.id, dialog_id);
} }
if (getMessageMediaType(message) == 0) { if (canAddMessageToMedia(message)) {
if (messageMediaIds.length() > 0) { if (messageMediaIds.length() > 0) {
messageMediaIds.append(","); messageMediaIds.append(",");
} }
...@@ -2639,7 +2651,7 @@ public class MessagesStorage { ...@@ -2639,7 +2651,7 @@ public class MessagesStorage {
state3.step(); state3.step();
} }
if (getMessageMediaType(message) == 0) { if (canAddMessageToMedia(message)) {
state2.requery(); state2.requery();
state2.bindInteger(1, messageId); state2.bindInteger(1, messageId);
state2.bindLong(2, dialog_id); state2.bindLong(2, dialog_id);
......
...@@ -68,6 +68,7 @@ public class NotificationCenter { ...@@ -68,6 +68,7 @@ public class NotificationCenter {
public final static int screenshotTook = 50007; public final static int screenshotTook = 50007;
public final static int albumsDidLoaded = 50008; public final static int albumsDidLoaded = 50008;
public final static int audioDidSent = 50009; public final static int audioDidSent = 50009;
public final static int audioDidStarted = 50010;
final private HashMap<Integer, ArrayList<Object>> observers = new HashMap<Integer, ArrayList<Object>>(); final private HashMap<Integer, ArrayList<Object>> observers = new HashMap<Integer, ArrayList<Object>>();
......
...@@ -597,6 +597,11 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter ...@@ -597,6 +597,11 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
newMsg.to_id.user_id = encryptedChat.participant_id; newMsg.to_id.user_id = encryptedChat.participant_id;
} }
newMsg.ttl = encryptedChat.ttl; newMsg.ttl = encryptedChat.ttl;
if (newMsg.media instanceof TLRPC.TL_messageMediaAudio) {
newMsg.ttl = Math.max(encryptedChat.ttl, newMsg.media.audio.duration + 1);
} else if (newMsg.media instanceof TLRPC.TL_messageMediaVideo) {
newMsg.ttl = Math.max(encryptedChat.ttl, newMsg.media.video.duration + 1);
}
} }
MessageObject newMsgObj = new MessageObject(newMsg, null, 2); MessageObject newMsgObj = new MessageObject(newMsg, null, 2);
...@@ -630,7 +635,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter ...@@ -630,7 +635,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
TLRPC.TL_decryptedMessage reqSend; TLRPC.TL_decryptedMessage reqSend;
if (AndroidUtilities.getPeerLayerVersion(encryptedChat.layer) >= 17) { if (AndroidUtilities.getPeerLayerVersion(encryptedChat.layer) >= 17) {
reqSend = new TLRPC.TL_decryptedMessage(); reqSend = new TLRPC.TL_decryptedMessage();
reqSend.ttl = encryptedChat.ttl; reqSend.ttl = newMsg.ttl;
} else { } else {
reqSend = new TLRPC.TL_decryptedMessage_old(); reqSend = new TLRPC.TL_decryptedMessage_old();
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))]; reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
...@@ -788,7 +793,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter ...@@ -788,7 +793,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
TLRPC.TL_decryptedMessage reqSend; TLRPC.TL_decryptedMessage reqSend;
if (AndroidUtilities.getPeerLayerVersion(encryptedChat.layer) >= 17) { if (AndroidUtilities.getPeerLayerVersion(encryptedChat.layer) >= 17) {
reqSend = new TLRPC.TL_decryptedMessage(); reqSend = new TLRPC.TL_decryptedMessage();
reqSend.ttl = encryptedChat.ttl; reqSend.ttl = newMsg.ttl;
} else { } else {
reqSend = new TLRPC.TL_decryptedMessage_old(); reqSend = new TLRPC.TL_decryptedMessage_old();
reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))]; reqSend.random_bytes = new byte[Math.max(1, (int) Math.ceil(Utilities.random.nextDouble() * 16))];
......
/*
* 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.Adapters;
import org.telegram.android.AndroidUtilities;
import org.telegram.messenger.ConnectionsManager;
import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.TLObject;
import org.telegram.messenger.TLRPC;
import java.util.ArrayList;
public class BaseContactsSearchAdapter extends BaseFragmentAdapter {
protected ArrayList<TLRPC.User> globalSearch;
private long reqId = 0;
private int lastReqId;
protected String lastFoundUsername = null;
public void queryServerSearch(final String query) {
if (query == null || query.length() < 5) {
if (reqId != 0) {
ConnectionsManager.getInstance().cancelRpc(reqId, true);
reqId = 0;
}
globalSearch = null;
lastReqId = 0;
notifyDataSetChanged();
return;
}
TLRPC.TL_contacts_search req = new TLRPC.TL_contacts_search();
req.q = query;
req.limit = 50;
final int currentReqId = ++lastReqId;
reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
@Override
public void run(final TLObject response, final TLRPC.TL_error error) {
AndroidUtilities.RunOnUIThread(new Runnable() {
@Override
public void run() {
if (currentReqId == lastReqId) {
if (error == null) {
TLRPC.TL_contacts_found res = (TLRPC.TL_contacts_found) response;
globalSearch = res.users;
lastFoundUsername = query;
notifyDataSetChanged();
}
}
reqId = 0;
}
});
}
}, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors);
}
}
...@@ -14,6 +14,7 @@ import android.view.ViewGroup; ...@@ -14,6 +14,7 @@ import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
public class BaseFragmentAdapter extends BaseAdapter { public class BaseFragmentAdapter extends BaseAdapter {
public void onFragmentCreate() { public void onFragmentCreate() {
} }
......
...@@ -21,6 +21,7 @@ import org.telegram.android.MessagesController; ...@@ -21,6 +21,7 @@ import org.telegram.android.MessagesController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Cells.ChatOrUserCell;
import org.telegram.ui.Views.SectionedBaseAdapter; import org.telegram.ui.Views.SectionedBaseAdapter;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -202,12 +203,10 @@ public class ContactsActivityAdapter extends SectionedBaseAdapter { ...@@ -202,12 +203,10 @@ public class ContactsActivityAdapter extends SectionedBaseAdapter {
if (usersAsSections) { if (usersAsSections) {
if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) { if (section < ContactsController.getInstance().sortedUsersSectionsArray.size()) {
if (convertView == null) { if (convertView == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = new SettingsSectionLayout(mContext);
convertView = li.inflate(R.layout.settings_section_layout, parent, false);
convertView.setBackgroundColor(0xffffffff); convertView.setBackgroundColor(0xffffffff);
} }
TextView textView = (TextView)convertView.findViewById(R.id.settings_section_text); ((SettingsSectionLayout) convertView).setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
textView.setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
return convertView; return convertView;
} }
} else { } else {
...@@ -221,12 +220,10 @@ public class ContactsActivityAdapter extends SectionedBaseAdapter { ...@@ -221,12 +220,10 @@ public class ContactsActivityAdapter extends SectionedBaseAdapter {
} }
if (convertView == null) { if (convertView == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = new SettingsSectionLayout(mContext);
convertView = li.inflate(R.layout.settings_section_layout, parent, false);
convertView.setBackgroundColor(0xffffffff); convertView.setBackgroundColor(0xffffffff);
} }
TextView textView = (TextView)convertView.findViewById(R.id.settings_section_text); ((SettingsSectionLayout) convertView).setText(ContactsController.getInstance().sortedContactsSectionsArray.get(section - 1));
textView.setText(ContactsController.getInstance().sortedContactsSectionsArray.get(section - 1));
return convertView; return convertView;
} }
} }
...@@ -9,17 +9,13 @@ ...@@ -9,17 +9,13 @@
package org.telegram.ui.Adapters; package org.telegram.ui.Adapters;
import android.content.Context; import android.content.Context;
import android.view.LayoutInflater; import android.text.Html;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView;
import org.telegram.android.AndroidUtilities; import org.telegram.android.AndroidUtilities;
import org.telegram.android.LocaleController; import org.telegram.android.LocaleController;
import org.telegram.messenger.ConnectionsManager;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.TLObject;
import org.telegram.messenger.TLRPC; import org.telegram.messenger.TLRPC;
import org.telegram.android.ContactsController; import org.telegram.android.ContactsController;
import org.telegram.messenger.FileLog; import org.telegram.messenger.FileLog;
...@@ -27,21 +23,19 @@ import org.telegram.android.MessagesController; ...@@ -27,21 +23,19 @@ import org.telegram.android.MessagesController;
import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Cells.ChatOrUserCell;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
public class ContactsActivitySearchAdapter extends BaseFragmentAdapter { public class ContactsActivitySearchAdapter extends BaseContactsSearchAdapter {
private Context mContext; private Context mContext;
private HashMap<Integer, TLRPC.User> ignoreUsers; private HashMap<Integer, TLRPC.User> ignoreUsers;
private ArrayList<TLRPC.User> searchResult; private ArrayList<TLRPC.User> searchResult;
private ArrayList<CharSequence> searchResultNames; private ArrayList<CharSequence> searchResultNames;
private Timer searchTimer; private Timer searchTimer;
private ArrayList<TLRPC.User> globalSearch;
private long reqId = 0;
private int lastReqId;
public ContactsActivitySearchAdapter(Context context, HashMap<Integer, TLRPC.User> arg1) { public ContactsActivitySearchAdapter(Context context, HashMap<Integer, TLRPC.User> arg1) {
mContext = context; mContext = context;
...@@ -52,7 +46,6 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter { ...@@ -52,7 +46,6 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter {
if (query == null) { if (query == null) {
searchResult = null; searchResult = null;
searchResultNames = null; searchResultNames = null;
globalSearch = null;
queryServerSearch(null); queryServerSearch(null);
notifyDataSetChanged(); notifyDataSetChanged();
} else { } else {
...@@ -79,41 +72,6 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter { ...@@ -79,41 +72,6 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter {
} }
} }
private void queryServerSearch(String query) {
if (query == null || query.length() < 5) {
if (reqId != 0) {
ConnectionsManager.getInstance().cancelRpc(reqId, true);
reqId = 0;
}
globalSearch = null;
lastReqId = 0;
notifyDataSetChanged();
return;
}
TLRPC.TL_contacts_search req = new TLRPC.TL_contacts_search();
req.q = query;
req.limit = 50;
final int currentReqId = ++lastReqId;
reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
@Override
public void run(final TLObject response, final TLRPC.TL_error error) {
AndroidUtilities.RunOnUIThread(new Runnable() {
@Override
public void run() {
if (currentReqId == lastReqId) {
if (error == null) {
TLRPC.TL_contacts_found res = (TLRPC.TL_contacts_found) response;
globalSearch = res.users;
notifyDataSetChanged();
}
}
reqId = 0;
}
});
}
}, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors);
}
private void processSearch(final String query) { private void processSearch(final String query) {
AndroidUtilities.RunOnUIThread(new Runnable() { AndroidUtilities.RunOnUIThread(new Runnable() {
@Override @Override
...@@ -220,10 +178,8 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter { ...@@ -220,10 +178,8 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter {
public View getView(int i, View view, ViewGroup viewGroup) { public View getView(int i, View view, ViewGroup viewGroup) {
if (i == (searchResult == null ? 0 : searchResult.size())) { if (i == (searchResult == null ? 0 : searchResult.size())) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = new SettingsSectionLayout(mContext);
view = li.inflate(R.layout.settings_section_layout, viewGroup, false); ((SettingsSectionLayout) view).setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch));
TextView textView = (TextView)view.findViewById(R.id.settings_section_text);
textView.setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch));
} }
} else { } else {
if (view == null) { if (view == null) {
...@@ -234,7 +190,12 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter { ...@@ -234,7 +190,12 @@ public class ContactsActivitySearchAdapter extends BaseFragmentAdapter {
((ChatOrUserCell) view).useSeparator = (i != getCount() - 1 && i != searchResult.size() - 1); ((ChatOrUserCell) view).useSeparator = (i != getCount() - 1 && i != searchResult.size() - 1);
TLRPC.User user = getItem(i); TLRPC.User user = getItem(i);
if (user != null) { if (user != null) {
((ChatOrUserCell) view).setData(user, null, null, i < searchResult.size() ? searchResultNames.get(i) : null, i > searchResult.size() ? "@" + user.username : null); CharSequence username = null;
if (i > searchResult.size() && user.username != null) {
username = Html.fromHtml(String.format("<font color=\"#357aa8\">@%s</font>%s", user.username.substring(0, lastFoundUsername.length()), user.username.substring(lastFoundUsername.length())));
}
((ChatOrUserCell) view).setData(user, null, null, i < searchResult.size() ? searchResultNames.get(i) : null, username);
if (ignoreUsers != null) { if (ignoreUsers != null) {
if (ignoreUsers.containsKey(user.id)) { if (ignoreUsers.containsKey(user.id)) {
......
...@@ -275,7 +275,7 @@ public class ChatActionCell extends BaseCell { ...@@ -275,7 +275,7 @@ public class ChatActionCell extends BaseCell {
backgroundDrawable.draw(canvas); backgroundDrawable.draw(canvas);
if (currentMessageObject.type == 11) { if (currentMessageObject.type == 11) {
imageReceiver.draw(canvas, imageReceiver.getImageX(), imageReceiver.getImageY(), imageReceiver.getImageWidth(), imageReceiver.getImageHeight()); imageReceiver.draw(canvas);
} }
if (textLayout != null) { if (textLayout != null) {
......
...@@ -393,7 +393,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -393,7 +393,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
} }
if (needAvatarImage) { if (needAvatarImage) {
avatarImage.draw(canvas, avatarImage.getImageX(), avatarImage.getImageY(), avatarImage.getImageHeight(), avatarImage.getImageHeight()); avatarImage.draw(canvas);
} }
canvas.save(); canvas.save();
......
...@@ -430,7 +430,7 @@ public class ChatBaseCell extends BaseCell { ...@@ -430,7 +430,7 @@ public class ChatBaseCell extends BaseCell {
} }
if (isAvatarVisible) { if (isAvatarVisible) {
avatarImage.draw(canvas, AndroidUtilities.dp(6), layoutHeight - AndroidUtilities.dp(45), AndroidUtilities.dp(42), AndroidUtilities.dp(42)); avatarImage.draw(canvas);
} }
Drawable currentBackgroundDrawable = null; Drawable currentBackgroundDrawable = null;
......
...@@ -207,7 +207,7 @@ public class ChatContactCell extends ChatBaseCell { ...@@ -207,7 +207,7 @@ public class ChatContactCell extends ChatBaseCell {
} }
phone = PhoneFormat.getInstance().format(phone); phone = PhoneFormat.getInstance().format(phone);
} else { } else {
phone = LocaleController.getString("Unknown", R.string.Unknown); phone = LocaleController.getString("NumberUnknown", R.string.NumberUnknown);
} }
int phoneWidth = Math.min((int) Math.ceil(phonePaint.measureText(phone)), maxWidth); int phoneWidth = Math.min((int) Math.ceil(phonePaint.measureText(phone)), maxWidth);
stringFinal = TextUtils.ellipsize(phone.replace("\n", " "), phonePaint, phoneWidth, TextUtils.TruncateAt.END); stringFinal = TextUtils.ellipsize(phone.replace("\n", " "), phonePaint, phoneWidth, TextUtils.TruncateAt.END);
...@@ -260,7 +260,7 @@ public class ChatContactCell extends ChatBaseCell { ...@@ -260,7 +260,7 @@ public class ChatContactCell extends ChatBaseCell {
return; return;
} }
avatarImage.draw(canvas, avatarImage.getImageX(), avatarImage.getImageY(), avatarImage.getImageWidth(), avatarImage.getImageWidth()); avatarImage.draw(canvas);
if (nameLayout != null) { if (nameLayout != null) {
canvas.save(); canvas.save();
......
...@@ -213,7 +213,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -213,7 +213,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
} }
} }
} }
if (imagePressed && currentMessageObject.isSecretMedia()) { if (imagePressed && currentMessageObject.isSecretPhoto()) {
imagePressed = false; imagePressed = false;
} else if (result) { } else if (result) {
startCheckLongPress(); startCheckLongPress();
...@@ -568,7 +568,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -568,7 +568,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
w = timeWidthTotal; w = timeWidthTotal;
} }
if (currentMessageObject.isSecretMedia()) { if (currentMessageObject.isSecretPhoto()) {
if (AndroidUtilities.isTablet()) { if (AndroidUtilities.isTablet()) {
w = h = (int) (AndroidUtilities.getMinTabletSide() * 0.5f); w = h = (int) (AndroidUtilities.getMinTabletSide() * 0.5f);
} else { } else {
...@@ -616,7 +616,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -616,7 +616,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
photoImage.setImageBitmap(messageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable); photoImage.setImageBitmap(messageObject.isOut() ? placeholderOutDrawable : placeholderInDrawable);
} }
} }
photoImage.setForcePreview(messageObject.isSecretMedia()); photoImage.setForcePreview(messageObject.isSecretPhoto());
invalidate(); invalidate();
} }
...@@ -813,7 +813,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -813,7 +813,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
canvas.restore(); canvas.restore();
} else { } else {
photoImage.setVisible(!PhotoViewer.getInstance().isShowingImage(currentMessageObject), false); photoImage.setVisible(!PhotoViewer.getInstance().isShowingImage(currentMessageObject), false);
imageDrawn = photoImage.draw(canvas, photoImage.getImageX(), photoImage.getImageY(), photoWidth, photoHeight); imageDrawn = photoImage.draw(canvas);
drawTime = photoImage.getVisible(); drawTime = photoImage.getVisible();
} }
...@@ -873,7 +873,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -873,7 +873,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
currentButtonDrawable.draw(canvas); currentButtonDrawable.draw(canvas);
} }
if (buttonState == -1 && currentMessageObject.isSecretMedia()) { if (buttonState == -1 && currentMessageObject.isSecretPhoto()) {
int drawable = 5; int drawable = 5;
if (currentMessageObject.messageOwner.destroyTime != 0) { if (currentMessageObject.messageOwner.destroyTime != 0) {
if (currentMessageObject.isOut()) { if (currentMessageObject.isOut()) {
...@@ -912,7 +912,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -912,7 +912,7 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
infoLayout.draw(canvas); infoLayout.draw(canvas);
canvas.restore(); canvas.restore();
} }
} else if (infoLayout != null && (buttonState == 1 || buttonState == 0 || buttonState == 3 || currentMessageObject.isSecretMedia())) { } else if (infoLayout != null && (buttonState == 1 || buttonState == 0 || buttonState == 3 || currentMessageObject.isSecretPhoto())) {
infoPaint.setColor(0xffffffff); infoPaint.setColor(0xffffffff);
setDrawableBounds(mediaBackgroundDrawable, photoImage.getImageX() + AndroidUtilities.dp(4), photoImage.getImageY() + AndroidUtilities.dp(4), infoWidth + AndroidUtilities.dp(8) + infoOffset, AndroidUtilities.dpf(16.5f)); setDrawableBounds(mediaBackgroundDrawable, photoImage.getImageX() + AndroidUtilities.dp(4), photoImage.getImageY() + AndroidUtilities.dp(4), infoWidth + AndroidUtilities.dp(8) + infoOffset, AndroidUtilities.dpf(16.5f));
mediaBackgroundDrawable.draw(canvas); mediaBackgroundDrawable.draw(canvas);
......
...@@ -41,7 +41,7 @@ public class ChatOrUserCell extends BaseCell { ...@@ -41,7 +41,7 @@ public class ChatOrUserCell extends BaseCell {
private CharSequence currentName; private CharSequence currentName;
private ImageReceiver avatarImage; private ImageReceiver avatarImage;
private String subLabel; private CharSequence subLabel;
private ChatOrUserCellLayout cellLayout; private ChatOrUserCellLayout cellLayout;
private TLRPC.User user = null; private TLRPC.User user = null;
...@@ -112,7 +112,7 @@ public class ChatOrUserCell extends BaseCell { ...@@ -112,7 +112,7 @@ public class ChatOrUserCell extends BaseCell {
} }
} }
public void setData(TLRPC.User u, TLRPC.Chat c, TLRPC.EncryptedChat ec, CharSequence n, String s) { public void setData(TLRPC.User u, TLRPC.Chat c, TLRPC.EncryptedChat ec, CharSequence n, CharSequence s) {
currentName = n; currentName = n;
user = u; user = u;
chat = c; chat = c;
...@@ -236,6 +236,15 @@ public class ChatOrUserCell extends BaseCell { ...@@ -236,6 +236,15 @@ public class ChatOrUserCell extends BaseCell {
return; return;
} }
if (useSeparator) {
int h = getMeasuredHeight();
if (!usePadding) {
canvas.drawLine(0, h - 1, getMeasuredWidth(), h - 1, linePaint);
} else {
canvas.drawLine(AndroidUtilities.dp(11), h - 1, getMeasuredWidth() - AndroidUtilities.dp(11), h - 1, linePaint);
}
}
if (drawAlpha != 1) { if (drawAlpha != 1) {
canvas.saveLayerAlpha(0, 0, canvas.getWidth(), canvas.getHeight(), (int)(255 * drawAlpha), Canvas.HAS_ALPHA_LAYER_SAVE_FLAG); canvas.saveLayerAlpha(0, 0, canvas.getWidth(), canvas.getHeight(), (int)(255 * drawAlpha), Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
} }
...@@ -263,16 +272,7 @@ public class ChatOrUserCell extends BaseCell { ...@@ -263,16 +272,7 @@ public class ChatOrUserCell extends BaseCell {
canvas.restore(); canvas.restore();
} }
avatarImage.draw(canvas, cellLayout.avatarLeft, cellLayout.avatarTop, AndroidUtilities.dp(50), AndroidUtilities.dp(50)); avatarImage.draw(canvas);
if (useSeparator) {
int h = getMeasuredHeight();
if (!usePadding) {
canvas.drawLine(0, h - 1, getMeasuredWidth(), h, linePaint);
} else {
canvas.drawLine(AndroidUtilities.dp(11), h - 1, getMeasuredWidth() - AndroidUtilities.dp(11), h, linePaint);
}
}
} }
private class ChatOrUserCellLayout { private class ChatOrUserCellLayout {
...@@ -381,7 +381,7 @@ public class ChatOrUserCell extends BaseCell { ...@@ -381,7 +381,7 @@ public class ChatOrUserCell extends BaseCell {
onlineLeft = usePadding ? AndroidUtilities.dp(11) : 0; onlineLeft = usePadding ? AndroidUtilities.dp(11) : 0;
} }
String onlineString = ""; CharSequence onlineString = "";
TextPaint currentOnlinePaint = offlinePaint; TextPaint currentOnlinePaint = offlinePaint;
if (subLabel != null) { if (subLabel != null) {
......
...@@ -10,6 +10,7 @@ package org.telegram.ui.Cells; ...@@ -10,6 +10,7 @@ package org.telegram.ui.Cells;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.text.Html; import android.text.Html;
import android.text.Layout; import android.text.Layout;
...@@ -48,6 +49,8 @@ public class DialogCell extends BaseCell { ...@@ -48,6 +49,8 @@ public class DialogCell extends BaseCell {
private static Drawable groupDrawable; private static Drawable groupDrawable;
private static Drawable broadcastDrawable; private static Drawable broadcastDrawable;
private static Paint linePaint;
private TLRPC.TL_dialog currentDialog; private TLRPC.TL_dialog currentDialog;
private ImageReceiver avatarImage; private ImageReceiver avatarImage;
...@@ -57,6 +60,8 @@ public class DialogCell extends BaseCell { ...@@ -57,6 +60,8 @@ public class DialogCell extends BaseCell {
private TLRPC.EncryptedChat encryptedChat = null; private TLRPC.EncryptedChat encryptedChat = null;
private CharSequence lastPrintString = null; private CharSequence lastPrintString = null;
public boolean useSeparator = false;
private void init() { private void init() {
if (namePaint == null) { if (namePaint == null) {
namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
...@@ -85,6 +90,11 @@ public class DialogCell extends BaseCell { ...@@ -85,6 +90,11 @@ public class DialogCell extends BaseCell {
messagePaint.setColor(0xff808080); messagePaint.setColor(0xff808080);
} }
if (linePaint == null) {
linePaint = new Paint();
linePaint.setColor(0xffdcdcdc);
}
if (messagePrintingPaint == null) { if (messagePrintingPaint == null) {
messagePrintingPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); messagePrintingPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG);
messagePrintingPaint.setTextSize(AndroidUtilities.dp(16)); messagePrintingPaint.setTextSize(AndroidUtilities.dp(16));
...@@ -340,7 +350,16 @@ public class DialogCell extends BaseCell { ...@@ -340,7 +350,16 @@ public class DialogCell extends BaseCell {
canvas.restore(); canvas.restore();
} }
avatarImage.draw(canvas, cellLayout.avatarLeft, cellLayout.avatarTop, AndroidUtilities.dp(54), AndroidUtilities.dp(54)); avatarImage.draw(canvas);
if (useSeparator) {
int h = getMeasuredHeight();
if (AndroidUtilities.isTablet()) {
canvas.drawLine(0, h - 1, getMeasuredWidth(), h - 1, linePaint);
} else {
canvas.drawLine(AndroidUtilities.dp(11), h - 1, getMeasuredWidth() - AndroidUtilities.dp(11), h - 1, linePaint);
}
}
} }
private class DialogCellLayout { private class DialogCellLayout {
......
...@@ -42,6 +42,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenu; ...@@ -42,6 +42,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenu;
import org.telegram.ui.Views.AvatarUpdater; import org.telegram.ui.Views.AvatarUpdater;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -646,21 +647,19 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen ...@@ -646,21 +647,19 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen
return view; return view;
} else if (type == 1) { } else if (type == 1) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = new SettingsSectionLayout(mContext);
view = li.inflate(R.layout.settings_section_layout, viewGroup, false);
} }
TextView textView = (TextView)view.findViewById(R.id.settings_section_text);
if (i == settingsSectionRow) { if (i == settingsSectionRow) {
textView.setText(LocaleController.getString("SETTINGS", R.string.SETTINGS)); ((SettingsSectionLayout) view).setText(LocaleController.getString("SETTINGS", R.string.SETTINGS));
} else if (i == sharedMediaSectionRow) { } else if (i == sharedMediaSectionRow) {
textView.setText(LocaleController.getString("SHAREDMEDIA", R.string.SHAREDMEDIA)); ((SettingsSectionLayout) view).setText(LocaleController.getString("SHAREDMEDIA", R.string.SHAREDMEDIA));
} else if (i == membersSectionRow) { } else if (i == membersSectionRow) {
TLRPC.Chat chat = MessagesController.getInstance().getChat(chat_id); TLRPC.Chat chat = MessagesController.getInstance().getChat(chat_id);
int count = chat.participants_count; int count = chat.participants_count;
if (info != null) { if (info != null) {
count = info.participants.size(); count = info.participants.size();
} }
textView.setText(LocaleController.formatPluralString("Members", count).toUpperCase()); ((SettingsSectionLayout) view).setText(LocaleController.formatPluralString("Members", count).toUpperCase());
} }
} else if (type == 2) { } else if (type == 2) {
if (view == null) { if (view == null) {
......
...@@ -11,6 +11,9 @@ package org.telegram.ui; ...@@ -11,6 +11,9 @@ package org.telegram.ui;
import android.app.Activity; import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputType;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -18,6 +21,7 @@ import android.view.ViewGroup; ...@@ -18,6 +21,7 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.telegram.android.AndroidUtilities; import org.telegram.android.AndroidUtilities;
...@@ -26,6 +30,7 @@ import org.telegram.messenger.TLRPC; ...@@ -26,6 +30,7 @@ import org.telegram.messenger.TLRPC;
import org.telegram.android.MessagesController; import org.telegram.android.MessagesController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.SettingsSectionLayout;
public class ChatProfileChangeNameActivity extends BaseFragment { public class ChatProfileChangeNameActivity extends BaseFragment {
private EditText firstNameField; private EditText firstNameField;
...@@ -71,16 +76,27 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -71,16 +76,27 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text); TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase()); textView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase());
fragmentView = inflater.inflate(R.layout.chat_profile_change_name_layout, container, false);
TLRPC.Chat currentChat = MessagesController.getInstance().getChat(chat_id); TLRPC.Chat currentChat = MessagesController.getInstance().getChat(chat_id);
firstNameField = (EditText)fragmentView.findViewById(R.id.first_name_field); fragmentView = new LinearLayout(inflater.getContext());
if (chat_id > 0) { fragmentView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
firstNameField.setHint(LocaleController.getString("GroupName", R.string.GroupName)); fragmentView.setPadding(AndroidUtilities.dp(16), AndroidUtilities.dp(8), AndroidUtilities.dp(16), 0);
} else { ((LinearLayout) fragmentView).setOrientation(LinearLayout.VERTICAL);
firstNameField.setHint(LocaleController.getString("EnterListName", R.string.EnterListName));
} SettingsSectionLayout settingsSectionLayout = new SettingsSectionLayout(inflater.getContext());
((LinearLayout) fragmentView).addView(settingsSectionLayout);
firstNameField = new EditText(inflater.getContext());
firstNameField.setText(currentChat.title);
firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 19);
firstNameField.setHintTextColor(0xffa3a3a3);
firstNameField.setTextColor(0xff000000);
firstNameField.setPadding(AndroidUtilities.dp(15), 0, AndroidUtilities.dp(15), AndroidUtilities.dp(15));
firstNameField.setMaxLines(3);
firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
firstNameField.setImeOptions(EditorInfo.IME_ACTION_DONE);
AndroidUtilities.clearCursorDrawable(firstNameField);
firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() { firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override @Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
...@@ -91,15 +107,25 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -91,15 +107,25 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
return false; return false;
} }
}); });
firstNameField.setText(currentChat.title); if (LocaleController.isRTL) {
firstNameField.setSelection(firstNameField.length()); firstNameField.setGravity(Gravity.RIGHT);
}
((LinearLayout) fragmentView).addView(firstNameField);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)firstNameField.getLayoutParams();
layoutParams.topMargin = AndroidUtilities.dp(15);
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT;
firstNameField.setLayoutParams(layoutParams);
TextView headerLabel = (TextView)fragmentView.findViewById(R.id.settings_section_text);
if (chat_id > 0) { if (chat_id > 0) {
headerLabel.setText(LocaleController.getString("EnterGroupNameTitle", R.string.EnterGroupNameTitle)); settingsSectionLayout.setText(LocaleController.getString("EnterGroupNameTitle", R.string.EnterGroupNameTitle));
firstNameField.setHint(LocaleController.getString("GroupName", R.string.GroupName));
} else { } else {
headerLabel.setText(LocaleController.getString("EnterListName", R.string.EnterListName).toUpperCase()); settingsSectionLayout.setText(LocaleController.getString("EnterListName", R.string.EnterListName).toUpperCase());
firstNameField.setHint(LocaleController.getString("EnterListName", R.string.EnterListName));
} }
firstNameField.setSelection(firstNameField.length());
} else { } else {
ViewGroup parent = (ViewGroup)fragmentView.getParent(); ViewGroup parent = (ViewGroup)fragmentView.getParent();
if (parent != null) { if (parent != null) {
......
...@@ -31,6 +31,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; ...@@ -31,6 +31,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenuItem;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.PinnedHeaderListView; import org.telegram.ui.Views.PinnedHeaderListView;
import org.telegram.ui.Views.SectionedBaseAdapter; import org.telegram.ui.Views.SectionedBaseAdapter;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStream;
...@@ -484,12 +485,10 @@ public class CountrySelectActivity extends BaseFragment { ...@@ -484,12 +485,10 @@ public class CountrySelectActivity extends BaseFragment {
@Override @Override
public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
if (convertView == null) { if (convertView == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = new SettingsSectionLayout(mContext);
convertView = li.inflate(R.layout.settings_section_layout, parent, false);
convertView.setBackgroundColor(0xfffafafa); convertView.setBackgroundColor(0xfffafafa);
} }
TextView textView = (TextView)convertView.findViewById(R.id.settings_section_text); ((SettingsSectionLayout) convertView).setText(sortedCountries.get(section).toUpperCase());
textView.setText(sortedCountries.get(section).toUpperCase());
return convertView; return convertView;
} }
} }
......
...@@ -51,6 +51,7 @@ import org.telegram.ui.Views.BackupImageView; ...@@ -51,6 +51,7 @@ import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.PinnedHeaderListView; import org.telegram.ui.Views.PinnedHeaderListView;
import org.telegram.ui.Views.SectionedBaseAdapter; import org.telegram.ui.Views.SectionedBaseAdapter;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -597,15 +598,13 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen ...@@ -597,15 +598,13 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen
@Override @Override
public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
if (convertView == null) { if (convertView == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = new SettingsSectionLayout(mContext);
convertView = li.inflate(R.layout.settings_section_layout, parent, false);
convertView.setBackgroundColor(0xffffffff); convertView.setBackgroundColor(0xffffffff);
} }
TextView textView = (TextView)convertView.findViewById(R.id.settings_section_text);
if (searching && searchWas) { if (searching && searchWas) {
textView.setText(LocaleController.getString("AllContacts", R.string.AllContacts)); ((SettingsSectionLayout) convertView).setText(LocaleController.getString("AllContacts", R.string.AllContacts));
} else { } else {
textView.setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section)); ((SettingsSectionLayout) convertView).setText(ContactsController.getInstance().sortedUsersSectionsArray.get(section));
} }
return convertView; return convertView;
} }
......
...@@ -38,6 +38,7 @@ import org.telegram.ui.Views.BackupImageView; ...@@ -38,6 +38,7 @@ import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.PinnedHeaderListView; import org.telegram.ui.Views.PinnedHeaderListView;
import org.telegram.ui.Views.SectionedBaseAdapter; import org.telegram.ui.Views.SectionedBaseAdapter;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
...@@ -420,12 +421,10 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati ...@@ -420,12 +421,10 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati
@Override @Override
public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
if (convertView == null) { if (convertView == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = new SettingsSectionLayout(mContext);
convertView = li.inflate(R.layout.settings_section_layout, parent, false);
convertView.setBackgroundColor(0xffffffff); convertView.setBackgroundColor(0xffffffff);
} }
TextView textView = (TextView)convertView.findViewById(R.id.settings_section_text); ((SettingsSectionLayout) convertView).setText(LocaleController.formatPluralString("Members", selectedContacts.size()).toUpperCase());
textView.setText(LocaleController.formatPluralString("Members", selectedContacts.size()).toUpperCase());
return convertView; return convertView;
} }
} }
......
...@@ -2140,7 +2140,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -2140,7 +2140,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
float ai = -1; float ai = -1;
if (System.currentTimeMillis() - animationStartTime < animationDuration) { if (System.currentTimeMillis() - animationStartTime < animationDuration) {
ai = interpolator.getInterpolation((float)(System.currentTimeMillis() - animationStartTime) / animationDuration); ai = interpolator.getInterpolation((float)(System.currentTimeMillis() - animationStartTime) / animationDuration);
if (ai >= 0.999f) { if (ai >= 0.95f) {
ai = -1; ai = -1;
} }
} }
...@@ -2221,7 +2221,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -2221,7 +2221,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
int height = (int) (bitmapHeight * scale); int height = (int) (bitmapHeight * scale);
centerImage.setImageCoords(-width / 2, -height / 2, width, height); centerImage.setImageCoords(-width / 2, -height / 2, width, height);
centerImage.draw(canvas, -width / 2, -height / 2, width, height); centerImage.draw(canvas);
} }
if (scale >= 1.0f) { if (scale >= 1.0f) {
...@@ -2252,7 +2252,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -2252,7 +2252,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
int height = (int) (bitmapHeight * scale); int height = (int) (bitmapHeight * scale);
sideImage.setImageCoords(-width / 2, -height / 2, width, height); sideImage.setImageCoords(-width / 2, -height / 2, width, height);
sideImage.draw(canvas, -width / 2, -height / 2, width, height); sideImage.draw(canvas);
} }
} else { } else {
changingPage = false; changingPage = false;
......
...@@ -365,7 +365,7 @@ public class SecretPhotoViewer implements NotificationCenter.NotificationCenterD ...@@ -365,7 +365,7 @@ public class SecretPhotoViewer implements NotificationCenter.NotificationCenterD
int height = (int) (bitmapHeight * scale); int height = (int) (bitmapHeight * scale);
centerImage.setImageCoords(-width / 2, -height / 2, width, height); centerImage.setImageCoords(-width / 2, -height / 2, width, height);
centerImage.draw(canvas, -width / 2, -height / 2, width, height); centerImage.draw(canvas);
} }
canvas.restore(); canvas.restore();
} }
......
...@@ -60,6 +60,7 @@ import org.telegram.ui.Views.AvatarUpdater; ...@@ -60,6 +60,7 @@ import org.telegram.ui.Views.AvatarUpdater;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.NumberPicker; import org.telegram.ui.Views.NumberPicker;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -831,22 +832,20 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ...@@ -831,22 +832,20 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
return view; return view;
} else if (type == 1) { } else if (type == 1) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = new SettingsSectionLayout(mContext);
view = li.inflate(R.layout.settings_section_layout, viewGroup, false);
} }
TextView textView = (TextView)view.findViewById(R.id.settings_section_text);
if (i == numberSectionRow) { if (i == numberSectionRow) {
textView.setText(LocaleController.getString("Info", R.string.Info)); ((SettingsSectionLayout) view).setText(LocaleController.getString("Info", R.string.Info));
} else if (i == settingsSectionRow) { } else if (i == settingsSectionRow) {
textView.setText(LocaleController.getString("SETTINGS", R.string.SETTINGS)); ((SettingsSectionLayout) view).setText(LocaleController.getString("SETTINGS", R.string.SETTINGS));
} else if (i == supportSectionRow) { } else if (i == supportSectionRow) {
textView.setText(LocaleController.getString("Support", R.string.Support)); ((SettingsSectionLayout) view).setText(LocaleController.getString("Support", R.string.Support));
} else if (i == messagesSectionRow) { } else if (i == messagesSectionRow) {
textView.setText(LocaleController.getString("MessagesSettings", R.string.MessagesSettings)); ((SettingsSectionLayout) view).setText(LocaleController.getString("MessagesSettings", R.string.MessagesSettings));
} else if (i == mediaDownloadSection) { } else if (i == mediaDownloadSection) {
textView.setText(LocaleController.getString("AutomaticMediaDownload", R.string.AutomaticMediaDownload)); ((SettingsSectionLayout) view).setText(LocaleController.getString("AutomaticMediaDownload", R.string.AutomaticMediaDownload));
} else if (i == contactsSectionRow) { } else if (i == contactsSectionRow) {
textView.setText(LocaleController.getString("Contacts", R.string.Contacts).toUpperCase()); ((SettingsSectionLayout) view).setText(LocaleController.getString("Contacts", R.string.Contacts).toUpperCase());
} }
} else if (type == 2) { } else if (type == 2) {
if (view == null) { if (view == null) {
...@@ -971,7 +970,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ...@@ -971,7 +970,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
if (user != null && user.phone != null && user.phone.length() != 0) { if (user != null && user.phone != null && user.phone.length() != 0) {
detailTextView.setText(PhoneFormat.getInstance().format("+" + user.phone)); detailTextView.setText(PhoneFormat.getInstance().format("+" + user.phone));
} else { } else {
detailTextView.setText(LocaleController.getString("Unknown", R.string.Unknown)); detailTextView.setText(LocaleController.getString("NumberUnknown", R.string.NumberUnknown));
} }
divider.setVisibility(View.VISIBLE); divider.setVisibility(View.VISIBLE);
} else if (i == textSizeRow) { } else if (i == textSizeRow) {
......
...@@ -249,7 +249,7 @@ public class SettingsBlockedUsersActivity extends BaseFragment implements Notifi ...@@ -249,7 +249,7 @@ public class SettingsBlockedUsersActivity extends BaseFragment implements Notifi
((ChatOrUserCell)view).useSeparator = true; ((ChatOrUserCell)view).useSeparator = true;
} }
TLRPC.User user = MessagesController.getInstance().getUser(MessagesController.getInstance().blockedUsers.get(i)); TLRPC.User user = MessagesController.getInstance().getUser(MessagesController.getInstance().blockedUsers.get(i));
((ChatOrUserCell)view).setData(user, null, null, null, user.phone != null && user.phone.length() != 0 ? PhoneFormat.getInstance().format("+" + user.phone) : LocaleController.getString("Unknown", R.string.Unknown)); ((ChatOrUserCell)view).setData(user, null, null, null, user.phone != null && user.phone.length() != 0 ? PhoneFormat.getInstance().format("+" + user.phone) : LocaleController.getString("NumberUnknown", R.string.NumberUnknown));
} else if (type == 1) { } else if (type == 1) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
......
...@@ -10,6 +10,9 @@ package org.telegram.ui; ...@@ -10,6 +10,9 @@ package org.telegram.ui;
import android.app.Activity; import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.text.InputType;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -17,6 +20,7 @@ import android.view.ViewGroup; ...@@ -17,6 +20,7 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.telegram.android.AndroidUtilities; import org.telegram.android.AndroidUtilities;
...@@ -30,6 +34,7 @@ import org.telegram.messenger.R; ...@@ -30,6 +34,7 @@ import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserConfig;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.SettingsSectionLayout;
public class SettingsChangeNameActivity extends BaseFragment { public class SettingsChangeNameActivity extends BaseFragment {
private EditText firstNameField; private EditText firstNameField;
...@@ -63,14 +68,31 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -63,14 +68,31 @@ public class SettingsChangeNameActivity extends BaseFragment {
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text); TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase()); textView.setText(LocaleController.getString("Done", R.string.Done).toUpperCase());
fragmentView = inflater.inflate(R.layout.settings_change_name_layout, container, false);
TLRPC.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId()); TLRPC.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId());
if (user == null) { if (user == null) {
user = UserConfig.getCurrentUser(); user = UserConfig.getCurrentUser();
} }
firstNameField = (EditText)fragmentView.findViewById(R.id.first_name_field); fragmentView = new LinearLayout(inflater.getContext());
fragmentView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
fragmentView.setPadding(AndroidUtilities.dp(16), AndroidUtilities.dp(8), AndroidUtilities.dp(16), 0);
((LinearLayout) fragmentView).setOrientation(LinearLayout.VERTICAL);
SettingsSectionLayout settingsSectionLayout = new SettingsSectionLayout(inflater.getContext());
((LinearLayout) fragmentView).addView(settingsSectionLayout);
settingsSectionLayout.setText(LocaleController.getString("YourFirstNameAndLastName", R.string.YourFirstNameAndLastName).toUpperCase());
firstNameField = new EditText(inflater.getContext());
firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 19);
firstNameField.setHintTextColor(0xffa3a3a3);
firstNameField.setTextColor(0xff000000);
firstNameField.setPadding(AndroidUtilities.dp(15), 0, AndroidUtilities.dp(15), AndroidUtilities.dp(15));
firstNameField.setMaxLines(1);
firstNameField.setLines(1);
firstNameField.setSingleLine(true);
firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
firstNameField.setImeOptions(EditorInfo.IME_ACTION_NEXT);
firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName)); firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName));
firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() { firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override @Override
...@@ -83,7 +105,25 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -83,7 +105,25 @@ public class SettingsChangeNameActivity extends BaseFragment {
return false; return false;
} }
}); });
lastNameField = (EditText)fragmentView.findViewById(R.id.last_name_field); AndroidUtilities.clearCursorDrawable(firstNameField);
((LinearLayout) fragmentView).addView(firstNameField);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)firstNameField.getLayoutParams();
layoutParams.topMargin = AndroidUtilities.dp(15);
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT;
firstNameField.setLayoutParams(layoutParams);
lastNameField = new EditText(inflater.getContext());
lastNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 19);
lastNameField.setHintTextColor(0xffa3a3a3);
lastNameField.setTextColor(0xff000000);
lastNameField.setPadding(AndroidUtilities.dp(15), 0, AndroidUtilities.dp(15), AndroidUtilities.dp(15));
lastNameField.setMaxLines(1);
lastNameField.setLines(1);
lastNameField.setSingleLine(true);
lastNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
lastNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
lastNameField.setImeOptions(EditorInfo.IME_ACTION_DONE);
lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName)); lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName));
lastNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() { lastNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override @Override
...@@ -95,15 +135,19 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -95,15 +135,19 @@ public class SettingsChangeNameActivity extends BaseFragment {
return false; return false;
} }
}); });
AndroidUtilities.clearCursorDrawable(lastNameField);
((LinearLayout) fragmentView).addView(lastNameField);
layoutParams = (LinearLayout.LayoutParams)lastNameField.getLayoutParams();
layoutParams.topMargin = AndroidUtilities.dp(10);
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT;
lastNameField.setLayoutParams(layoutParams);
if (user != null) { if (user != null) {
firstNameField.setText(user.first_name); firstNameField.setText(user.first_name);
firstNameField.setSelection(firstNameField.length()); firstNameField.setSelection(firstNameField.length());
lastNameField.setText(user.last_name); lastNameField.setText(user.last_name);
} }
TextView headerLabel = (TextView)fragmentView.findViewById(R.id.settings_section_text);
headerLabel.setText(LocaleController.getString("YourFirstNameAndLastName", R.string.YourFirstNameAndLastName));
} else { } else {
ViewGroup parent = (ViewGroup)fragmentView.getParent(); ViewGroup parent = (ViewGroup)fragmentView.getParent();
if (parent != null) { if (parent != null) {
...@@ -129,9 +173,14 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -129,9 +173,14 @@ public class SettingsChangeNameActivity extends BaseFragment {
if (currentUser == null || lastNameField.getText() == null || firstNameField.getText() == null) { if (currentUser == null || lastNameField.getText() == null || firstNameField.getText() == null) {
return; return;
} }
String newFirst = firstNameField.getText().toString();
String newLast = lastNameField.getText().toString();
if (currentUser.first_name != null && currentUser.first_name.equals(newFirst) && currentUser.last_name != null && currentUser.last_name.equals(newLast)) {
return;
}
TLRPC.TL_account_updateProfile req = new TLRPC.TL_account_updateProfile(); TLRPC.TL_account_updateProfile req = new TLRPC.TL_account_updateProfile();
currentUser.first_name = req.first_name = firstNameField.getText().toString(); currentUser.first_name = req.first_name = newFirst;
currentUser.last_name = req.last_name = lastNameField.getText().toString(); currentUser.last_name = req.last_name = newLast;
TLRPC.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId()); TLRPC.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId());
if (user != null) { if (user != null) {
user.first_name = req.first_name; user.first_name = req.first_name;
......
...@@ -42,6 +42,7 @@ import org.telegram.ui.Adapters.BaseFragmentAdapter; ...@@ -42,6 +42,7 @@ import org.telegram.ui.Adapters.BaseFragmentAdapter;
import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarLayer;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.ColorPickerView; import org.telegram.ui.Views.ColorPickerView;
import org.telegram.ui.Views.SettingsSectionLayout;
public class SettingsNotificationsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { public class SettingsNotificationsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
private ListView listView; private ListView listView;
...@@ -541,22 +542,20 @@ public class SettingsNotificationsActivity extends BaseFragment implements Notif ...@@ -541,22 +542,20 @@ public class SettingsNotificationsActivity extends BaseFragment implements Notif
int type = getItemViewType(i); int type = getItemViewType(i);
if (type == 0) { if (type == 0) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = new SettingsSectionLayout(mContext);
view = li.inflate(R.layout.settings_section_layout, viewGroup, false);
} }
TextView textView = (TextView)view.findViewById(R.id.settings_section_text);
if (i == messageSectionRow) { if (i == messageSectionRow) {
textView.setText(LocaleController.getString("MessageNotifications", R.string.MessageNotifications)); ((SettingsSectionLayout) view).setText(LocaleController.getString("MessageNotifications", R.string.MessageNotifications));
} else if (i == groupSectionRow) { } else if (i == groupSectionRow) {
textView.setText(LocaleController.getString("GroupNotifications", R.string.GroupNotifications)); ((SettingsSectionLayout) view).setText(LocaleController.getString("GroupNotifications", R.string.GroupNotifications));
} else if (i == inappSectionRow) { } else if (i == inappSectionRow) {
textView.setText(LocaleController.getString("InAppNotifications", R.string.InAppNotifications)); ((SettingsSectionLayout) view).setText(LocaleController.getString("InAppNotifications", R.string.InAppNotifications));
} else if (i == eventsSectionRow) { } else if (i == eventsSectionRow) {
textView.setText(LocaleController.getString("Events", R.string.Events)); ((SettingsSectionLayout) view).setText(LocaleController.getString("Events", R.string.Events));
} else if (i == otherSectionRow) { } else if (i == otherSectionRow) {
textView.setText(LocaleController.getString("PhoneOther", R.string.PhoneOther)); ((SettingsSectionLayout) view).setText(LocaleController.getString("PhoneOther", R.string.PhoneOther));
} else if (i == resetSectionRow) { } else if (i == resetSectionRow) {
textView.setText(LocaleController.getString("Reset", R.string.Reset)); ((SettingsSectionLayout) view).setText(LocaleController.getString("Reset", R.string.Reset));
} }
} if (type == 1) { } if (type == 1) {
if (view == null) { if (view == null) {
......
...@@ -41,6 +41,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; ...@@ -41,6 +41,7 @@ import org.telegram.ui.Views.ActionBar.ActionBarMenuItem;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.IdenticonView; import org.telegram.ui.Views.IdenticonView;
import org.telegram.ui.Views.SettingsSectionLayout;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -539,16 +540,14 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen ...@@ -539,16 +540,14 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen
return view; return view;
} else if (type == 1) { } else if (type == 1) {
if (view == null) { if (view == null) {
LayoutInflater li = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = new SettingsSectionLayout(mContext);
view = li.inflate(R.layout.settings_section_layout, viewGroup, false);
} }
TextView textView = (TextView)view.findViewById(R.id.settings_section_text);
if (i == phoneSectionRow) { if (i == phoneSectionRow) {
textView.setText(LocaleController.getString("Info", R.string.Info)); ((SettingsSectionLayout) view).setText(LocaleController.getString("Info", R.string.Info));
} else if (i == settingsSectionRow) { } else if (i == settingsSectionRow) {
textView.setText(LocaleController.getString("SETTINGS", R.string.SETTINGS)); ((SettingsSectionLayout) view).setText(LocaleController.getString("SETTINGS", R.string.SETTINGS));
} else if (i == sharedMediaSectionRow) { } else if (i == sharedMediaSectionRow) {
textView.setText(LocaleController.getString("SHAREDMEDIA", R.string.SHAREDMEDIA)); ((SettingsSectionLayout) view).setText(LocaleController.getString("SHAREDMEDIA", R.string.SHAREDMEDIA));
} }
} else if (type == 2) { } else if (type == 2) {
final TLRPC.User user = MessagesController.getInstance().getUser(user_id); final TLRPC.User user = MessagesController.getInstance().getUser(user_id);
...@@ -621,7 +620,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen ...@@ -621,7 +620,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen
if (user.phone != null && user.phone.length() != 0) { if (user.phone != null && user.phone.length() != 0) {
textView.setText(PhoneFormat.getInstance().format("+" + user.phone)); textView.setText(PhoneFormat.getInstance().format("+" + user.phone));
} else { } else {
textView.setText(LocaleController.getString("Unknown", R.string.Unknown)); textView.setText(LocaleController.getString("NumberUnknown", R.string.NumberUnknown));
} }
divider.setVisibility(usernameRow != -1 ? View.VISIBLE : View.INVISIBLE); divider.setVisibility(usernameRow != -1 ? View.VISIBLE : View.INVISIBLE);
detailTextView.setText(LocaleController.getString("PhoneMobile", R.string.PhoneMobile)); detailTextView.setText(LocaleController.getString("PhoneMobile", R.string.PhoneMobile));
......
...@@ -91,6 +91,6 @@ public class BackupImageView extends View { ...@@ -91,6 +91,6 @@ public class BackupImageView extends View {
@Override @Override
protected void onDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
imageReceiver.setImageCoords(0, 0, getWidth(), getHeight()); imageReceiver.setImageCoords(0, 0, getWidth(), getHeight());
imageReceiver.draw(canvas, 0, 0, getWidth(), getHeight()); imageReceiver.draw(canvas);
} }
} }
/*
* 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.Views;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import org.telegram.android.AndroidUtilities;
import org.telegram.android.LocaleController;
public class SettingsSectionLayout extends LinearLayout {
private TextView textView;
private void init() {
setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
setOrientation(LinearLayout.VERTICAL);
textView = new TextView(getContext());
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
textView.setTextColor(0xff3b84c0);
addView(textView);
LayoutParams layoutParams = (LayoutParams)textView.getLayoutParams();
layoutParams.width = LayoutParams.WRAP_CONTENT;
layoutParams.height = LayoutParams.WRAP_CONTENT;
layoutParams.leftMargin = AndroidUtilities.dp(8);
layoutParams.rightMargin = AndroidUtilities.dp(8);
layoutParams.topMargin = AndroidUtilities.dp(6);
layoutParams.bottomMargin = AndroidUtilities.dp(4);
if (LocaleController.isRTL) {
textView.setGravity(Gravity.RIGHT);
layoutParams.gravity = Gravity.RIGHT;
}
textView.setLayoutParams(layoutParams);
View view = new View(getContext());
view.setBackgroundColor(0xff6caae4);
addView(view);
layoutParams = (LayoutParams)view.getLayoutParams();
layoutParams.weight = LayoutParams.MATCH_PARENT;
layoutParams.height = AndroidUtilities.dp(1);
view.setLayoutParams(layoutParams);
}
public SettingsSectionLayout(Context context) {
super(context);
init();
}
public SettingsSectionLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public SettingsSectionLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public SettingsSectionLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
public void setText(String text) {
textView.setText(text);
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/holo_textfield_default_holo_light" /> <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/textfield_default" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/holo_textfield_disabled_holo_light" /> <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_disabled2" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/holo_textfield_activated_holo_light" /> <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_activated" />
<item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/holo_textfield_focused_holo_light" /> <item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_focused" />
<item android:state_enabled="true" android:drawable="@drawable/holo_textfield_default_holo_light" /> <item android:state_enabled="true" android:drawable="@drawable/textfield_default" />
<item android:state_focused="true" android:drawable="@drawable/holo_textfield_disabled_focused_holo_light" /> <item android:state_focused="true" android:drawable="@drawable/textfield_disabled" />
<item android:drawable="@drawable/holo_textfield_disabled_holo_light" /> <item android:drawable="@drawable/textfield_disabled2" />
</selector> </selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp">
<include layout="@layout/settings_section_layout"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/first_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:maxLines="3"
android:inputType="textCapSentences|textAutoCorrect|textMultiLine"
android:imeOptions="actionDone"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:gravity="right"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:clipToPadding="false" android:clipToPadding="false"
android:fadingEdge="none" android:fadingEdge="none"
android:divider="@drawable/messages_list_divider" android:divider="@null"
android:dividerHeight="1px" android:dividerHeight="0px"
android:fadingEdgeLength="0dp" android:fadingEdgeLength="0dp"
android:verticalScrollbarPosition="left"/> android:verticalScrollbarPosition="left"/>
......
<org.telegram.ui.Views.NotificationView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/container_view"
android:orientation="vertical">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff">
<org.telegram.ui.Views.BackupImageView
android:layout_height="48dp"
android:layout_width="48dp"
android:id="@+id/avatar_image"
android:layout_gravity="right|top"/>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="40dp"
android:orientation="vertical"
android:layout_marginRight="56dp"
android:layout_gravity="top|right"
android:id="@+id/text_layout">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="right|center"
android:textSize="15dp"
android:textColor="#000000"
android:id="@+id/name_text_view"
android:paddingTop="4dp"
android:ellipsize="end"
android:layout_gravity="top|right"
android:singleLine="true"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="right|center"
android:textColor="#000000"
android:textSize="15dp"
android:id="@+id/message_text_view"
android:paddingTop="24dp"
android:ellipsize="end"
android:layout_gravity="top|right"
android:singleLine="true"/>
</FrameLayout>
<ImageView
android:layout_height="40dp"
android:layout_width="40dp"
android:layout_gravity="left|center"
android:src="@drawable/ic_profile_cross"
android:scaleType="center"
android:id="@+id/close_button"/>
</FrameLayout>
</org.telegram.ui.Views.NotificationView>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp">
<include layout="@layout/settings_section_layout"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/first_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:lines="1"
android:singleLine="true"
android:inputType="textCapSentences|textAutoCorrect"
android:imeOptions="actionNext"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:gravity="right"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/last_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:lines="1"
android:singleLine="true"
android:inputType="textCapSentences|textAutoCorrect"
android:imeOptions="actionDone"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:gravity="right"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/settings_section_view"
android:layout_gravity="top">
<TextView android:textSize="14dp"
android:textStyle="bold"
android:textColor="#3b84c0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="6dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
android:id="@+id/settings_section_text"
android:layout_gravity="top|right"
android:gravity="right"/>
<View android:background="#6caae4"
android:layout_width="fill_parent"
android:layout_height="1dip" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp">
<include
layout="@layout/settings_section_layout"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/first_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:maxLines="3"
android:inputType="textCapSentences|textAutoCorrect|textMultiLine"
android:imeOptions="actionDone"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
...@@ -9,11 +9,10 @@ ...@@ -9,11 +9,10 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:clipToPadding="false"
android:fadingEdge="none" android:fadingEdge="none"
android:fadingEdgeLength="0dp" android:fadingEdgeLength="0dp"
android:divider="@drawable/messages_list_divider" android:divider="@null"
android:dividerHeight="1px" android:dividerHeight="0px"
android:animationCache="false"/> android:animationCache="false"/>
<TextView android:layout_width="match_parent" <TextView android:layout_width="match_parent"
......
<org.telegram.ui.Views.NotificationView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/container_view"
android:orientation="vertical">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff">
<org.telegram.ui.Views.BackupImageView
android:layout_height="48dp"
android:layout_width="48dp"
android:id="@+id/avatar_image"/>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="56dp"
android:orientation="vertical"
android:layout_marginRight="40dp"
android:layout_gravity="top|left"
android:id="@+id/text_layout">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="left|center"
android:textSize="15dp"
android:textColor="#000000"
android:id="@+id/name_text_view"
android:paddingTop="4dp"
android:ellipsize="end"
android:singleLine="true"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="left|center"
android:textColor="#000000"
android:textSize="15dp"
android:id="@+id/message_text_view"
android:paddingTop="24dp"
android:ellipsize="end"
android:singleLine="true"/>
</FrameLayout>
<ImageView
android:layout_height="40dp"
android:layout_width="40dp"
android:layout_gravity="right|center"
android:src="@drawable/ic_profile_cross"
android:scaleType="center"
android:id="@+id/close_button"/>
</FrameLayout>
</org.telegram.ui.Views.NotificationView>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp">
<include layout="@layout/settings_section_layout"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/first_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:lines="1"
android:singleLine="true"
android:inputType="textCapSentences|textAutoCorrect"
android:imeOptions="actionNext"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
<EditText
android:textSize="19dp"
android:textColorHint="#a3a3a3"
android:layout_gravity="center_vertical"
android:id="@+id/last_name_field"
android:paddingBottom="15dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:lines="1"
android:singleLine="true"
android:inputType="textCapSentences|textAutoCorrect"
android:imeOptions="actionDone"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:textCursorDrawable="@null"
android:textColor="#000000"/>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/settings_section_view"
android:layout_gravity="top">
<TextView
android:textSize="14dp"
android:textStyle="bold"
android:textColor="#3b84c0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="6dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
android:id="@+id/settings_section_text"
android:layout_gravity="top"/>
<View
android:background="#6caae4"
android:layout_width="fill_parent"
android:layout_height="1dp" />
</LinearLayout>
\ No newline at end of file
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Löschen und beenden</string> <string name="DeleteChat">Löschen und beenden</string>
<string name="HiddenName">Versteckter Name</string> <string name="HiddenName">Versteckter Name</string>
<string name="SelectChat">Chat auswählen</string> <string name="SelectChat">Chat auswählen</string>
<string name="CompatibilityChat">%1$s benutzt eine ältere Version von Telegram, sodass Fotos in Geheimen Chats im Kompatibilitätsmodus angezeigt werden.\n\nSobald %2$s Telegram aktualisiert, werden Fotos mit Timern von 1 Minute und kürzer per \"Tippen und Halten\" angezeigt. Du wirst benachrichtigt, sobald dein Chatpartner ein Bildschirmfoto macht.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Broadcast Liste</string> <string name="BroadcastList">Broadcast Liste</string>
<string name="NewBroadcastList">Neue Broadcast Liste</string> <string name="NewBroadcastList">Neue Broadcast Liste</string>
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<string name="LastSeen">zul. online</string> <string name="LastSeen">zul. online</string>
<string name="LastSeenDate">zul. online</string> <string name="LastSeenDate">zul. online</string>
<string name="InviteFriends">Freunde einladen</string> <string name="InviteFriends">Freunde einladen</string>
<string name="GlobalSearch">GLOBAL SEARCH</string> <string name="GlobalSearch">GLOBALE SUCHE</string>
<!--group create view--> <!--group create view-->
<string name="SendMessageTo">Sende Nachricht an…</string> <string name="SendMessageTo">Sende Nachricht an…</string>
<string name="EnterGroupNamePlaceholder">Gruppenname</string> <string name="EnterGroupNamePlaceholder">Gruppenname</string>
...@@ -198,16 +199,19 @@ ...@@ -198,16 +199,19 @@
<string name="MessageLifetime">Selbstzerstörungs-Timer</string> <string name="MessageLifetime">Selbstzerstörungs-Timer</string>
<string name="ShortMessageLifetimeForever">Aus</string> <string name="ShortMessageLifetimeForever">Aus</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Unbekannt</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">Telefon</string> <string name="Phone">Telefon</string>
<string name="Username">Username</string> <string name="Username">Benutzername</string>
<string name="UsernamePlaceholder">Your Username</string> <string name="UsernamePlaceholder">Dein Benutzername</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Leider ist dieser Benutzername vergeben.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Benutzername leider nicht erlaubt.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">Ein Benutzername benötigt mindestens 5 Zeichen.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">Ein Benutzername darf maximal 32 Zeichen haben.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Benutzernamen dürfen leider nicht mit einer Zahl anfangen.</string>
<string name="UsernameHelp">Wähle einen Benutzernamen, wenn du von anderen bei<![CDATA[<b>]]>Telegram<![CDATA[</b>]]>gefunden werden willst – ohne, dass sie deine Nummer kennen müssen.<![CDATA[<br><br>]]>Erlaubt sind <![CDATA[<b>]]>a–z<![CDATA[<b>]]>, <![CDATA[<b>]]>0–9<![CDATA[<b>]]> und Unterstriche. Die Mindestlänge beträgt <![CDATA[<b>]]>5<![CDATA[<b>]]> Zeichen.</string>
<string name="UsernameChecking">Prüfe Benutzername...</string>
<string name="UsernameAvailable">%1$s ist verfügbar.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Alle Einstellungen für Mitteilungen zurücksetzen</string> <string name="ResetNotificationsText">Alle Einstellungen für Mitteilungen zurücksetzen</string>
<string name="TextSize">Textgröße für Nachrichten</string> <string name="TextSize">Textgröße für Nachrichten</string>
...@@ -247,8 +251,8 @@ ...@@ -247,8 +251,8 @@
<string name="Language">Sprache</string> <string name="Language">Sprache</string>
<string name="AskAQuestionInfo">Bedenke bitte, dass der Telegram Support von einem ehrenamtlichen Team betreut wird. Wir versuchen so schnell wie möglich zu antworten, dies kann jedoch manchmal ein bisschen dauern.<![CDATA[<br><br>]]>Bitte schau auch in den <![CDATA[<a href=\"http://telegram.org/faq/de\">Fragen und Antworten </a>]]> nach. Dort findest du Antworten auf die meisten Fragen und wichtige Tipps zur <![CDATA[<a href=\"https://telegram.org/faq/de#problembehandlung\">Problembehandlung</a>]]>.</string> <string name="AskAQuestionInfo">Bedenke bitte, dass der Telegram Support von einem ehrenamtlichen Team betreut wird. Wir versuchen so schnell wie möglich zu antworten, dies kann jedoch manchmal ein bisschen dauern.<![CDATA[<br><br>]]>Bitte schau auch in den <![CDATA[<a href=\"http://telegram.org/faq/de\">Fragen und Antworten </a>]]> nach. Dort findest du Antworten auf die meisten Fragen und wichtige Tipps zur <![CDATA[<a href=\"https://telegram.org/faq/de#problembehandlung\">Problembehandlung</a>]]>.</string>
<string name="AskButton">Frage einen Freiwilligen</string> <string name="AskButton">Frage einen Freiwilligen</string>
<string name="TelegramFaq">Fragen und Antworten zu Telegram</string> <string name="TelegramFaq">Fragen und Antworten</string>
<string name="TelegramFaqUrl">https://telegram.org/faq</string> <string name="TelegramFaqUrl">https://telegram.org/faq/ko</string>
<string name="DeleteLocalization">Lokalisierung löschen?</string> <string name="DeleteLocalization">Lokalisierung löschen?</string>
<string name="IncorrectLocalization">Falsche Sprachdatei</string> <string name="IncorrectLocalization">Falsche Sprachdatei</string>
<string name="Enabled">Aktiviert</string> <string name="Enabled">Aktiviert</string>
...@@ -432,36 +436,36 @@ ...@@ -432,36 +436,36 @@
<string name="FromContacts_few">von %1$d Kontakten</string> <string name="FromContacts_few">von %1$d Kontakten</string>
<string name="FromContacts_many">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="FromContacts_other">von %1$d Kontakten</string>
<string name="Seconds_zero">%1$d seconds</string> <string name="Seconds_zero">%1$d Sekunden</string>
<string name="Seconds_one">%1$d second</string> <string name="Seconds_one">%1$d Sekunde</string>
<string name="Seconds_two">%1$d seconds</string> <string name="Seconds_two">%1$d Sekunden</string>
<string name="Seconds_few">%1$d seconds</string> <string name="Seconds_few">%1$d Sekunden</string>
<string name="Seconds_many">%1$d seconds</string> <string name="Seconds_many">%1$d Sekunden</string>
<string name="Seconds_other">%1$d seconds</string> <string name="Seconds_other">%1$d Sekunden</string>
<string name="Minutes_zero">%1$d minutes</string> <string name="Minutes_zero">%1$d Minuten</string>
<string name="Minutes_one">%1$d minute</string> <string name="Minutes_one">%1$d Minute</string>
<string name="Minutes_two">%1$d minutes</string> <string name="Minutes_two">%1$d Minuten</string>
<string name="Minutes_few">%1$d minutes</string> <string name="Minutes_few">%1$d Minuten</string>
<string name="Minutes_many">%1$d minutes</string> <string name="Minutes_many">%1$d Minuten</string>
<string name="Minutes_other">%1$d minutes</string> <string name="Minutes_other">%1$d Minuten</string>
<string name="Hours_zero">%1$d hours</string> <string name="Hours_zero">%1$d Stunden</string>
<string name="Hours_one">%1$d hour</string> <string name="Hours_one">%1$d Stunde</string>
<string name="Hours_two">%1$d hours</string> <string name="Hours_two">%1$d Stunden</string>
<string name="Hours_few">%1$d hours</string> <string name="Hours_few">%1$d Stunden</string>
<string name="Hours_many">%1$d hours</string> <string name="Hours_many">%1$d Stunden</string>
<string name="Hours_other">%1$d hours</string> <string name="Hours_other">%1$d Stunden</string>
<string name="Days_zero">%1$d days</string> <string name="Days_zero">%1$d Tage</string>
<string name="Days_one">%1$d day</string> <string name="Days_one">%1$d Tag</string>
<string name="Days_two">%1$d days</string> <string name="Days_two">%1$d Tage</string>
<string name="Days_few">%1$d days</string> <string name="Days_few">%1$d Tage</string>
<string name="Days_many">%1$d days</string> <string name="Days_many">%1$d Tage</string>
<string name="Days_other">%1$d days</string> <string name="Days_other">%1$d Tage</string>
<string name="Weeks_zero">%1$d weeks</string> <string name="Weeks_zero">%1$d Wochen</string>
<string name="Weeks_one">%1$d week</string> <string name="Weeks_one">%1$d Woche</string>
<string name="Weeks_two">%1$d weeks</string> <string name="Weeks_two">%1$d Wochen</string>
<string name="Weeks_few">%1$d weeks</string> <string name="Weeks_few">%1$d Wochen</string>
<string name="Weeks_many">%1$d weeks</string> <string name="Weeks_many">%1$d Wochen</string>
<string name="Weeks_other">%1$d weeks</string> <string name="Weeks_other">%1$d Wochen</string>
<!--date formatters--> <!--date formatters-->
<string name="formatterMonth">dd MMM</string> <string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string> <string name="formatterYear">dd.MM.yy</string>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Elimina ed esci</string> <string name="DeleteChat">Elimina ed esci</string>
<string name="HiddenName">Nome nascosto</string> <string name="HiddenName">Nome nascosto</string>
<string name="SelectChat">Seleziona chat</string> <string name="SelectChat">Seleziona chat</string>
<string name="CompatibilityChat">%1$s sta usando una versione vecchia di Telegram, quindi le foto segrete verranno visualizzate in modalità di compatibilità.\n\nUna volta che %2$s avrà aggiornato Telegram, le foto con il timer minore di 1 minuto funzioneranno in modalità \'Tieni premuto per vedere\' , e verrai notificato ogni volta che l\'altro esegue uno screenshot.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Lista broadcast</string> <string name="BroadcastList">Lista broadcast</string>
<string name="NewBroadcastList">Nuova lista broadcast</string> <string name="NewBroadcastList">Nuova lista broadcast</string>
...@@ -152,7 +153,7 @@ ...@@ -152,7 +153,7 @@
<!--contacts view--> <!--contacts view-->
<string name="SelectContact">Seleziona contatto</string> <string name="SelectContact">Seleziona contatto</string>
<string name="NoContacts">Ancora nessun contatto</string> <string name="NoContacts">Ancora nessun contatto</string>
<string name="InviteText">Ciao, passa a Telegram: http://telegram.org/dl2</string> <string name="InviteText">Ehi, è il momento di passare a Telegram: http://telegram.org/dl2</string>
<string name="TodayAt">oggi alle</string> <string name="TodayAt">oggi alle</string>
<string name="YesterdayAt">ieri alle</string> <string name="YesterdayAt">ieri alle</string>
<string name="Online">in linea</string> <string name="Online">in linea</string>
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<string name="LastSeen">ultimo accesso</string> <string name="LastSeen">ultimo accesso</string>
<string name="LastSeenDate">ultimo accesso</string> <string name="LastSeenDate">ultimo accesso</string>
<string name="InviteFriends">Invita amici</string> <string name="InviteFriends">Invita amici</string>
<string name="GlobalSearch">GLOBAL SEARCH</string> <string name="GlobalSearch">RICERCA GLOBALE</string>
<!--group create view--> <!--group create view-->
<string name="SendMessageTo">Invia messaggio a...</string> <string name="SendMessageTo">Invia messaggio a...</string>
<string name="EnterGroupNamePlaceholder">Immetti il nome del gruppo</string> <string name="EnterGroupNamePlaceholder">Immetti il nome del gruppo</string>
...@@ -198,16 +199,19 @@ ...@@ -198,16 +199,19 @@
<string name="MessageLifetime">Timer di autodistruzione</string> <string name="MessageLifetime">Timer di autodistruzione</string>
<string name="ShortMessageLifetimeForever">Spento</string> <string name="ShortMessageLifetimeForever">Spento</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Sconosciuto</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">Telefono</string> <string name="Phone">Telefono</string>
<string name="Username">Username</string> <string name="Username">Nome utente</string>
<string name="UsernamePlaceholder">Your Username</string> <string name="UsernamePlaceholder">Il tuo Nome Utente</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Nome utente già preso.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Nome utente non valido.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">Il minimo per un nome utente è 5 caratteri.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">Il massimo per un nome utente è 32 caratteri.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Un nome utente non può iniziare con numeri.</string>
<string name="UsernameHelp">Puoi scegliere un nome utente su <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Se lo fai, le altre persone potranno trovarti tramite questo nome utente e contattarti senza conoscere il tuo numero di telefono.<![CDATA[<br><br>]]>Puoi usare <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underscore. La lunghezza minima è di <![CDATA[<b>]]>5<![CDATA[</b>]]> caratteri.</string>
<string name="UsernameChecking">Controllando il nome utente...</string>
<string name="UsernameAvailable">%1$s è disponibile.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Ripristina tutte le impostazioni di notifica predefinite</string> <string name="ResetNotificationsText">Ripristina tutte le impostazioni di notifica predefinite</string>
<string name="TextSize">Dimensione testo messaggi</string> <string name="TextSize">Dimensione testo messaggi</string>
...@@ -387,7 +391,7 @@ ...@@ -387,7 +391,7 @@
<string name="Page5Title">Potente</string> <string name="Page5Title">Potente</string>
<string name="Page6Title">Basato sul cloud</string> <string name="Page6Title">Basato sul cloud</string>
<string name="Page7Title">Privato</string> <string name="Page7Title">Privato</string>
<string name="Page1Message">L\'app di messaggi <![CDATA[<b>più veloce</b>]]>al mondo.<![CDATA[<br/>]]>È <![CDATA[<b>gratuita</b>]]> e <![CDATA[<b>sicura</b>]]>.</string> <string name="Page1Message">L\'app di messaggi <![CDATA[<b>più veloce</b>]]> al mondo.<![CDATA[<br/>]]>È <![CDATA[<b>gratuita</b>]]> e <![CDATA[<b>sicura</b>]]>.</string>
<string name="Page2Message"><![CDATA[<b>Telegram</b>]]> consegna i messaggi più<![CDATA[<br/>]]>velocemente di qualsiasi altra app.</string> <string name="Page2Message"><![CDATA[<b>Telegram</b>]]> consegna i messaggi più<![CDATA[<br/>]]>velocemente di qualsiasi altra app.</string>
<string name="Page3Message"><![CDATA[<b>Telegram</b>]]> sarà sempre gratuito.<![CDATA[<br/>]]>Nessuna pubblicità. Nessun abbonamento.</string> <string name="Page3Message"><![CDATA[<b>Telegram</b>]]> sarà sempre gratuito.<![CDATA[<br/>]]>Nessuna pubblicità. Nessun abbonamento.</string>
<string name="Page4Message"><![CDATA[<b>Telegram</b>]]> protegge i tuoi messaggi<![CDATA[<br/>]]>dagli attacchi degli hacker.</string> <string name="Page4Message"><![CDATA[<b>Telegram</b>]]> protegge i tuoi messaggi<![CDATA[<br/>]]>dagli attacchi degli hacker.</string>
...@@ -432,36 +436,36 @@ ...@@ -432,36 +436,36 @@
<string name="FromContacts_few">da %1$d contatti</string> <string name="FromContacts_few">da %1$d contatti</string>
<string name="FromContacts_many">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="FromContacts_other">da %1$d contatti</string>
<string name="Seconds_zero">%1$d seconds</string> <string name="Seconds_zero">%1$d secondi</string>
<string name="Seconds_one">%1$d second</string> <string name="Seconds_one">%1$d secondo</string>
<string name="Seconds_two">%1$d seconds</string> <string name="Seconds_two">%1$d secondi</string>
<string name="Seconds_few">%1$d seconds</string> <string name="Seconds_few">%1$d secondi</string>
<string name="Seconds_many">%1$d seconds</string> <string name="Seconds_many">%1$d secondi</string>
<string name="Seconds_other">%1$d seconds</string> <string name="Seconds_other">%1$d secondi</string>
<string name="Minutes_zero">%1$d minutes</string> <string name="Minutes_zero">%1$d minuti</string>
<string name="Minutes_one">%1$d minute</string> <string name="Minutes_one">%1$d minuto</string>
<string name="Minutes_two">%1$d minutes</string> <string name="Minutes_two">%1$d minuti</string>
<string name="Minutes_few">%1$d minutes</string> <string name="Minutes_few">%1$d minuti</string>
<string name="Minutes_many">%1$d minutes</string> <string name="Minutes_many">%1$d minuti</string>
<string name="Minutes_other">%1$d minutes</string> <string name="Minutes_other">%1$d minuti</string>
<string name="Hours_zero">%1$d hours</string> <string name="Hours_zero">%1$d ore</string>
<string name="Hours_one">%1$d hour</string> <string name="Hours_one">%1$d ora</string>
<string name="Hours_two">%1$d hours</string> <string name="Hours_two">%1$d ore</string>
<string name="Hours_few">%1$d hours</string> <string name="Hours_few">%1$d ore</string>
<string name="Hours_many">%1$d hours</string> <string name="Hours_many">%1$d ore</string>
<string name="Hours_other">%1$d hours</string> <string name="Hours_other">%1$d ore</string>
<string name="Days_zero">%1$d days</string> <string name="Days_zero">%1$d giorni</string>
<string name="Days_one">%1$d day</string> <string name="Days_one">%1$d giorno</string>
<string name="Days_two">%1$d days</string> <string name="Days_two">%1$d giorni</string>
<string name="Days_few">%1$d days</string> <string name="Days_few">%1$d giorni</string>
<string name="Days_many">%1$d days</string> <string name="Days_many">%1$d giorni</string>
<string name="Days_other">%1$d days</string> <string name="Days_other">%1$d giorni</string>
<string name="Weeks_zero">%1$d weeks</string> <string name="Weeks_zero">%1$d settimane</string>
<string name="Weeks_one">%1$d week</string> <string name="Weeks_one">%1$d settimana</string>
<string name="Weeks_two">%1$d weeks</string> <string name="Weeks_two">%1$d settimane</string>
<string name="Weeks_few">%1$d weeks</string> <string name="Weeks_few">%1$d settimane</string>
<string name="Weeks_many">%1$d weeks</string> <string name="Weeks_many">%1$d settimane</string>
<string name="Weeks_other">%1$d weeks</string> <string name="Weeks_other">%1$d settimane</string>
<!--date formatters--> <!--date formatters-->
<string name="formatterMonth">dd MMM</string> <string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string> <string name="formatterYear">dd.MM.yy</string>
......
...@@ -198,7 +198,7 @@ ...@@ -198,7 +198,7 @@
<string name="MessageLifetime">자동삭제 타이머</string> <string name="MessageLifetime">자동삭제 타이머</string>
<string name="ShortMessageLifetimeForever">해제</string> <string name="ShortMessageLifetimeForever">해제</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Unknown</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">전화번호</string> <string name="Phone">전화번호</string>
<string name="Username">Username</string> <string name="Username">Username</string>
...@@ -206,8 +206,11 @@ ...@@ -206,8 +206,11 @@
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Sorry, this username is already taken.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Sorry, this username is invalid.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">A username must have at least 5 characters.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">A username must have maximum 32 characters.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Sorry, a username can\'t start with a number.</string>
<string name="UsernameHelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.<![CDATA[<br><br>]]>You can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string>
<string name="UsernameChecking">Checking username...</string>
<string name="UsernameAvailable">%1$s is available.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string> <string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string>
<string name="TextSize">채팅 글자 크기</string> <string name="TextSize">채팅 글자 크기</string>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Verwijderen en verlaten</string> <string name="DeleteChat">Verwijderen en verlaten</string>
<string name="HiddenName">Verborgen naam</string> <string name="HiddenName">Verborgen naam</string>
<string name="SelectChat">Kies een gesprek</string> <string name="SelectChat">Kies een gesprek</string>
<string name="CompatibilityChat">%1$s gebruikt een oudere versie van Telegram, dus worden geheime foto\'s weergegeven in de compatibiliteitsmodus.\n\nZodra %2$s Telegram update werken foto\'s met timers voor 1 minuut of minder in de \'Houd ingedrukt om te bekijken\'-modus en krijg je een bericht wanneer de andere partij een schermafbeelding maakt.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Verzendlijst</string> <string name="BroadcastList">Verzendlijst</string>
<string name="NewBroadcastList">Nieuwe verzendlijst</string> <string name="NewBroadcastList">Nieuwe verzendlijst</string>
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<string name="LastSeen">gezien</string> <string name="LastSeen">gezien</string>
<string name="LastSeenDate">gezien</string> <string name="LastSeenDate">gezien</string>
<string name="InviteFriends">Vrienden uitnodigen</string> <string name="InviteFriends">Vrienden uitnodigen</string>
<string name="GlobalSearch">GLOBAL SEARCH</string> <string name="GlobalSearch">WERELDWIJD ZOEKEN</string>
<!--group create view--> <!--group create view-->
<string name="SendMessageTo">Bericht verzenden naar…</string> <string name="SendMessageTo">Bericht verzenden naar…</string>
<string name="EnterGroupNamePlaceholder">Groepsnaam...</string> <string name="EnterGroupNamePlaceholder">Groepsnaam...</string>
...@@ -198,16 +199,19 @@ ...@@ -198,16 +199,19 @@
<string name="MessageLifetime">Zelfvernietigingstimer</string> <string name="MessageLifetime">Zelfvernietigingstimer</string>
<string name="ShortMessageLifetimeForever">Uit</string> <string name="ShortMessageLifetimeForever">Uit</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Onbekend</string>
<string name="Info">INFO</string> <string name="Info">INFORMATIE</string>
<string name="Phone">Telefoon</string> <string name="Phone">Telefoon</string>
<string name="Username">Username</string> <string name="Username">Gebruikersnaam</string>
<string name="UsernamePlaceholder">Your Username</string> <string name="UsernamePlaceholder">Kies een naam</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Sorry, deze gebruikersnaam is al bezet.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Sorry, deze gebruikersnaam is ongeldig.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">Je naam moet minimaal 5 tekens hebben.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">Je naam mag niet langer zijn dan 32 tekens.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Sorry, begincijfers zijn niet toegestaan.</string>
<string name="UsernameHelp">Je kan een gebruikersnaam kiezen voor <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Hiermee kunnen anderen je vinden en contact met je opnemen zonder je telefoonnummer te weten.<![CDATA[<br><br>]]>Je mag <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> en liggend streepje gebruiken. De minimale lengte is <![CDATA[<b>]]>5<![CDATA[</b>]]> tekens.</string>
<string name="UsernameChecking">Gebruikersnaam controleren.</string>
<string name="UsernameAvailable">%1$s is beschikbaar.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Alle meldingsinstellingen herstellen</string> <string name="ResetNotificationsText">Alle meldingsinstellingen herstellen</string>
<string name="TextSize">Tekstgrootte berichten</string> <string name="TextSize">Tekstgrootte berichten</string>
...@@ -432,36 +436,36 @@ ...@@ -432,36 +436,36 @@
<string name="FromContacts_few">van %1$d contactpersonen</string> <string name="FromContacts_few">van %1$d contactpersonen</string>
<string name="FromContacts_many">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="FromContacts_other">van %1$d contactpersonen</string>
<string name="Seconds_zero">%1$d seconds</string> <string name="Seconds_zero">%1$d seconden</string>
<string name="Seconds_one">%1$d second</string> <string name="Seconds_one">%1$d seconde</string>
<string name="Seconds_two">%1$d seconds</string> <string name="Seconds_two">%1$d seconden</string>
<string name="Seconds_few">%1$d seconds</string> <string name="Seconds_few">%1$d seconden</string>
<string name="Seconds_many">%1$d seconds</string> <string name="Seconds_many">%1$d seconden</string>
<string name="Seconds_other">%1$d seconds</string> <string name="Seconds_other">%1$d seconden</string>
<string name="Minutes_zero">%1$d minutes</string> <string name="Minutes_zero">%1$d minuten</string>
<string name="Minutes_one">%1$d minute</string> <string name="Minutes_one">%1$d minuut</string>
<string name="Minutes_two">%1$d minutes</string> <string name="Minutes_two">%1$d minuten</string>
<string name="Minutes_few">%1$d minutes</string> <string name="Minutes_few">%1$d minuten</string>
<string name="Minutes_many">%1$d minutes</string> <string name="Minutes_many">%1$d minuten</string>
<string name="Minutes_other">%1$d minutes</string> <string name="Minutes_other">%1$d minuten</string>
<string name="Hours_zero">%1$d hours</string> <string name="Hours_zero">%1$d uren</string>
<string name="Hours_one">%1$d hour</string> <string name="Hours_one">%1$d uur</string>
<string name="Hours_two">%1$d hours</string> <string name="Hours_two">%1$d uren</string>
<string name="Hours_few">%1$d hours</string> <string name="Hours_few">%1$d uren</string>
<string name="Hours_many">%1$d hours</string> <string name="Hours_many">%1$d uren</string>
<string name="Hours_other">%1$d hours</string> <string name="Hours_other">%1$d uren</string>
<string name="Days_zero">%1$d days</string> <string name="Days_zero">%1$d dagen</string>
<string name="Days_one">%1$d day</string> <string name="Days_one">%1$d dag</string>
<string name="Days_two">%1$d days</string> <string name="Days_two">%1$d dagen</string>
<string name="Days_few">%1$d days</string> <string name="Days_few">%1$d dagen</string>
<string name="Days_many">%1$d days</string> <string name="Days_many">%1$d dagen</string>
<string name="Days_other">%1$d days</string> <string name="Days_other">%1$d dagen</string>
<string name="Weeks_zero">%1$d weeks</string> <string name="Weeks_zero">%1$d weken</string>
<string name="Weeks_one">%1$d week</string> <string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string> <string name="Weeks_two">%1$d weken</string>
<string name="Weeks_few">%1$d weeks</string> <string name="Weeks_few">%1$d weken</string>
<string name="Weeks_many">%1$d weeks</string> <string name="Weeks_many">%1$d weken</string>
<string name="Weeks_other">%1$d weeks</string> <string name="Weeks_other">%1$d weken</string>
<!--date formatters--> <!--date formatters-->
<string name="formatterMonth">dd MMM</string> <string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd-MM-yy</string> <string name="formatterYear">dd-MM-yy</string>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Apagar e sair</string> <string name="DeleteChat">Apagar e sair</string>
<string name="HiddenName">Nome oculto</string> <string name="HiddenName">Nome oculto</string>
<string name="SelectChat">Selecione uma Conversa</string> <string name="SelectChat">Selecione uma Conversa</string>
<string name="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Lista de Broadcast</string> <string name="BroadcastList">Lista de Broadcast</string>
<string name="NewBroadcastList">Nova Lista de Broadcast</string> <string name="NewBroadcastList">Nova Lista de Broadcast</string>
...@@ -114,7 +115,7 @@ ...@@ -114,7 +115,7 @@
<!--notification--> <!--notification-->
<string name="EncryptedChatRequested">Conversa secreta solicitada</string> <string name="EncryptedChatRequested">Conversa secreta solicitada</string>
<string name="EncryptedChatAccepted">Conversa secreta iniciada</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="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="MessageLifetimeRemoved">%1$s desativou o temporizador de autodestruição</string>
<string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string> <string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string>
...@@ -146,8 +147,8 @@ ...@@ -146,8 +147,8 @@
<string name="NotificationUnrecognizedDevice">%1$s,\nNós detectamos um login na sua conta de um novo dispositivo %2$s\n\nDispositivo: %3$s\nLocalização: %4$s\nSe não foi você, você pode ir em Configurações - Terminar todas as sessões.\n\nAtenciosamente,\nTime do Telegram</string> <string name="NotificationUnrecognizedDevice">%1$s,\nNós detectamos um login na sua conta de um novo dispositivo %2$s\n\nDispositivo: %3$s\nLocalização: %4$s\nSe não foi você, você pode ir em Configurações - Terminar todas as sessões.\n\nAtenciosamente,\nTime do Telegram</string>
<string name="NotificationContactNewPhoto">%1$s atualizou a foto do perfil</string> <string name="NotificationContactNewPhoto">%1$s atualizou a foto do perfil</string>
<string name="Reply">Responder</string> <string name="Reply">Responder</string>
<string name="ReplyToGroup">Reply to %1$s</string> <string name="ReplyToGroup">Responder para %1$s</string>
<string name="ReplyToUser">Reply to %1$s</string> <string name="ReplyToUser">Responder para %1$s</string>
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string> <string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
<!--contacts view--> <!--contacts view-->
<string name="SelectContact">Selecionar Contato</string> <string name="SelectContact">Selecionar Contato</string>
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<string name="LastSeen">visto</string> <string name="LastSeen">visto</string>
<string name="LastSeenDate">visto</string> <string name="LastSeenDate">visto</string>
<string name="InviteFriends">Convidar Amigos</string> <string name="InviteFriends">Convidar Amigos</string>
<string name="GlobalSearch">GLOBAL SEARCH</string> <string name="GlobalSearch">BUSCA GLOBAL</string>
<!--group create view--> <!--group create view-->
<string name="SendMessageTo">Enviar mensagem para...</string> <string name="SendMessageTo">Enviar mensagem para...</string>
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string> <string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
...@@ -198,16 +199,19 @@ ...@@ -198,16 +199,19 @@
<string name="MessageLifetime">Tempo de autodestruição</string> <string name="MessageLifetime">Tempo de autodestruição</string>
<string name="ShortMessageLifetimeForever">Desativado</string> <string name="ShortMessageLifetimeForever">Desativado</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Desconhecido</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">Telefone</string> <string name="Phone">Telefone</string>
<string name="Username">Username</string> <string name="Username">Nome de Usuário</string>
<string name="UsernamePlaceholder">Your Username</string> <string name="UsernamePlaceholder">Seu nome de usuário</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Desculpe, este usuário já existe.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Desculpe, este usuário é inválido.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">O nome de usuário deve ter pelo menos 5 caracteres.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">O nome de usuário não pode exceder 32 caracteres.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Desculpe, o nome de usuário não pode começar com um número.</string>
<string name="UsernameHelp">Você pode escolher um nome de usuário no <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Assim, outras pessoas poderão te encontrar pelo nome de usuário e entrar em contato sem precisar saber seu telefone. <![CDATA[<br><br>]]>Você pode usar <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underline. O tamanho mínimo é <![CDATA[<b>]]>5<![CDATA[</b>]]> caracteres.</string>
<string name="UsernameChecking">Verificando nome de usuário...</string>
<string name="UsernameAvailable">%1$s está disponível.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string> <string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
<string name="TextSize">Tamanho do texto nas mensagens</string> <string name="TextSize">Tamanho do texto nas mensagens</string>
...@@ -395,7 +399,7 @@ ...@@ -395,7 +399,7 @@
<string name="Page6Message"><![CDATA[<b>Telegram</b>]]> permite você acessar suas<![CDATA[<br/>]]> mensagens de múltiplos dispositivos.</string> <string name="Page6Message"><![CDATA[<b>Telegram</b>]]> permite você acessar suas<![CDATA[<br/>]]> mensagens de múltiplos dispositivos.</string>
<string name="Page7Message"><![CDATA[<b>Telegram</b>]]> possui mensagens fortemente<![CDATA[<br/>]]>encriptadas e podem se auto-destruir.</string> <string name="Page7Message"><![CDATA[<b>Telegram</b>]]> possui mensagens fortemente<![CDATA[<br/>]]>encriptadas e podem se auto-destruir.</string>
<string name="StartMessaging">Comece a conversar</string> <string name="StartMessaging">Comece a conversar</string>
<!--plurals--> <!--plural-->
<string name="Online_zero">%1$d online</string> <string name="Online_zero">%1$d online</string>
<string name="Online_one">%1$d online</string> <string name="Online_one">%1$d online</string>
<string name="Online_two">%1$d online</string> <string name="Online_two">%1$d online</string>
...@@ -432,42 +436,42 @@ ...@@ -432,42 +436,42 @@
<string name="FromContacts_few">de %1$d contatos</string> <string name="FromContacts_few">de %1$d contatos</string>
<string name="FromContacts_many">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="FromContacts_other">de %1$d contatos</string>
<string name="Seconds_zero">%1$d seconds</string> <string name="Seconds_zero">%1$d segundos</string>
<string name="Seconds_one">%1$d second</string> <string name="Seconds_one">%1$d segundo</string>
<string name="Seconds_two">%1$d seconds</string> <string name="Seconds_two">%1$d segundos</string>
<string name="Seconds_few">%1$d seconds</string> <string name="Seconds_few">%1$d segundos</string>
<string name="Seconds_many">%1$d seconds</string> <string name="Seconds_many">%1$d segundos</string>
<string name="Seconds_other">%1$d seconds</string> <string name="Seconds_other">%1$d segundos</string>
<string name="Minutes_zero">%1$d minutes</string> <string name="Minutes_zero">%1$d minutos</string>
<string name="Minutes_one">%1$d minute</string> <string name="Minutes_one">%1$d minuto</string>
<string name="Minutes_two">%1$d minutes</string> <string name="Minutes_two">%1$d minutos</string>
<string name="Minutes_few">%1$d minutes</string> <string name="Minutes_few">%1$d minutos</string>
<string name="Minutes_many">%1$d minutes</string> <string name="Minutes_many">%1$d minutos</string>
<string name="Minutes_other">%1$d minutes</string> <string name="Minutes_other">%1$d minutos</string>
<string name="Hours_zero">%1$d hours</string> <string name="Hours_zero">%1$d horas</string>
<string name="Hours_one">%1$d hour</string> <string name="Hours_one">%1$d hora</string>
<string name="Hours_two">%1$d hours</string> <string name="Hours_two">%1$d horas</string>
<string name="Hours_few">%1$d hours</string> <string name="Hours_few">%1$d horas</string>
<string name="Hours_many">%1$d hours</string> <string name="Hours_many">%1$d horas</string>
<string name="Hours_other">%1$d hours</string> <string name="Hours_other">%1$d horas</string>
<string name="Days_zero">%1$d days</string> <string name="Days_zero">%1$d dias</string>
<string name="Days_one">%1$d day</string> <string name="Days_one">%1$d dia</string>
<string name="Days_two">%1$d days</string> <string name="Days_two">%1$d dias</string>
<string name="Days_few">%1$d days</string> <string name="Days_few">%1$d dias</string>
<string name="Days_many">%1$d days</string> <string name="Days_many">%1$d dias</string>
<string name="Days_other">%1$d days</string> <string name="Days_other">%1$d dias</string>
<string name="Weeks_zero">%1$d weeks</string> <string name="Weeks_zero">%1$d semanas</string>
<string name="Weeks_one">%1$d week</string> <string name="Weeks_one">%1$d semana</string>
<string name="Weeks_two">%1$d weeks</string> <string name="Weeks_two">%1$d semanas</string>
<string name="Weeks_few">%1$d weeks</string> <string name="Weeks_few">%1$d semanas</string>
<string name="Weeks_many">%1$d weeks</string> <string name="Weeks_many">%1$d semanas</string>
<string name="Weeks_other">%1$d weeks</string> <string name="Weeks_other">%1$d semanas</string>
<!--date formatters--> <!--date formatters-->
<string name="formatterMonth">dd MMM</string> <string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string> <string name="formatterYear">dd.MM.yy</string>
<string name="formatterYearMax">dd.MM.yyyy</string> <string name="formatterYearMax">dd.MM.yyyy</string>
<string name="chatDate">d MMMM</string> <string name="chatDate">d MMMM</string>
<string name="chatFullDate">d MMMM yyyy</string> <string name="chatFullDate">MMMM d, yyyy</string>
<string name="formatterWeek">EEE</string> <string name="formatterWeek">EEE</string>
<string name="formatterDay24H">HH:mm</string> <string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string> <string name="formatterDay12H">h:mm a</string>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Apagar e sair</string> <string name="DeleteChat">Apagar e sair</string>
<string name="HiddenName">Nome oculto</string> <string name="HiddenName">Nome oculto</string>
<string name="SelectChat">Selecione uma Conversa</string> <string name="SelectChat">Selecione uma Conversa</string>
<string name="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Lista de Broadcast</string> <string name="BroadcastList">Lista de Broadcast</string>
<string name="NewBroadcastList">Nova Lista de Broadcast</string> <string name="NewBroadcastList">Nova Lista de Broadcast</string>
...@@ -114,7 +115,7 @@ ...@@ -114,7 +115,7 @@
<!--notification--> <!--notification-->
<string name="EncryptedChatRequested">Conversa secreta solicitada</string> <string name="EncryptedChatRequested">Conversa secreta solicitada</string>
<string name="EncryptedChatAccepted">Conversa secreta iniciada</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="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="MessageLifetimeRemoved">%1$s desativou o temporizador de autodestruição</string>
<string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string> <string name="MessageLifetimeYouRemoved">Você desativou o temporizador de autodestruição</string>
...@@ -146,8 +147,8 @@ ...@@ -146,8 +147,8 @@
<string name="NotificationUnrecognizedDevice">%1$s,\nNós detectamos um login na sua conta de um novo dispositivo %2$s\n\nDispositivo: %3$s\nLocalização: %4$s\nSe não foi você, você pode ir em Configurações - Terminar todas as sessões.\n\nAtenciosamente,\nTime do Telegram</string> <string name="NotificationUnrecognizedDevice">%1$s,\nNós detectamos um login na sua conta de um novo dispositivo %2$s\n\nDispositivo: %3$s\nLocalização: %4$s\nSe não foi você, você pode ir em Configurações - Terminar todas as sessões.\n\nAtenciosamente,\nTime do Telegram</string>
<string name="NotificationContactNewPhoto">%1$s atualizou a foto do perfil</string> <string name="NotificationContactNewPhoto">%1$s atualizou a foto do perfil</string>
<string name="Reply">Responder</string> <string name="Reply">Responder</string>
<string name="ReplyToGroup">Reply to %1$s</string> <string name="ReplyToGroup">Responder para %1$s</string>
<string name="ReplyToUser">Reply to %1$s</string> <string name="ReplyToUser">Responder para %1$s</string>
<string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string> <string name="NotificationMessagesPeopleDisplayOrder">%1$s %2$s</string>
<!--contacts view--> <!--contacts view-->
<string name="SelectContact">Selecionar Contato</string> <string name="SelectContact">Selecionar Contato</string>
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<string name="LastSeen">visto</string> <string name="LastSeen">visto</string>
<string name="LastSeenDate">visto</string> <string name="LastSeenDate">visto</string>
<string name="InviteFriends">Convidar Amigos</string> <string name="InviteFriends">Convidar Amigos</string>
<string name="GlobalSearch">GLOBAL SEARCH</string> <string name="GlobalSearch">BUSCA GLOBAL</string>
<!--group create view--> <!--group create view-->
<string name="SendMessageTo">Enviar mensagem para...</string> <string name="SendMessageTo">Enviar mensagem para...</string>
<string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string> <string name="EnterGroupNamePlaceholder">Digite o nome do grupo</string>
...@@ -198,16 +199,19 @@ ...@@ -198,16 +199,19 @@
<string name="MessageLifetime">Tempo de autodestruição</string> <string name="MessageLifetime">Tempo de autodestruição</string>
<string name="ShortMessageLifetimeForever">Desativado</string> <string name="ShortMessageLifetimeForever">Desativado</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Desconhecido</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">Telefone</string> <string name="Phone">Telefone</string>
<string name="Username">Username</string> <string name="Username">Nome de Usuário</string>
<string name="UsernamePlaceholder">Your Username</string> <string name="UsernamePlaceholder">Seu nome de usuário</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Desculpe, este usuário já existe.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Desculpe, este usuário é inválido.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">O nome de usuário deve ter pelo menos 5 caracteres.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">O nome de usuário não pode exceder 32 caracteres.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Desculpe, o nome de usuário não pode começar com um número.</string>
<string name="UsernameHelp">Você pode escolher um nome de usuário no <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Assim, outras pessoas poderão te encontrar pelo nome de usuário e entrar em contato sem precisar saber seu telefone. <![CDATA[<br><br>]]>Você pode usar <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underline. O tamanho mínimo é <![CDATA[<b>]]>5<![CDATA[</b>]]> caracteres.</string>
<string name="UsernameChecking">Verificando nome de usuário...</string>
<string name="UsernameAvailable">%1$s está disponível.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string> <string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
<string name="TextSize">Tamanho do texto nas mensagens</string> <string name="TextSize">Tamanho do texto nas mensagens</string>
...@@ -395,7 +399,7 @@ ...@@ -395,7 +399,7 @@
<string name="Page6Message"><![CDATA[<b>Telegram</b>]]> permite você acessar suas<![CDATA[<br/>]]> mensagens de múltiplos dispositivos.</string> <string name="Page6Message"><![CDATA[<b>Telegram</b>]]> permite você acessar suas<![CDATA[<br/>]]> mensagens de múltiplos dispositivos.</string>
<string name="Page7Message"><![CDATA[<b>Telegram</b>]]> possui mensagens fortemente<![CDATA[<br/>]]>encriptadas e podem se auto-destruir.</string> <string name="Page7Message"><![CDATA[<b>Telegram</b>]]> possui mensagens fortemente<![CDATA[<br/>]]>encriptadas e podem se auto-destruir.</string>
<string name="StartMessaging">Comece a conversar</string> <string name="StartMessaging">Comece a conversar</string>
<!--plurals--> <!--plural-->
<string name="Online_zero">%1$d online</string> <string name="Online_zero">%1$d online</string>
<string name="Online_one">%1$d online</string> <string name="Online_one">%1$d online</string>
<string name="Online_two">%1$d online</string> <string name="Online_two">%1$d online</string>
...@@ -432,42 +436,42 @@ ...@@ -432,42 +436,42 @@
<string name="FromContacts_few">de %1$d contatos</string> <string name="FromContacts_few">de %1$d contatos</string>
<string name="FromContacts_many">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="FromContacts_other">de %1$d contatos</string>
<string name="Seconds_zero">%1$d seconds</string> <string name="Seconds_zero">%1$d segundos</string>
<string name="Seconds_one">%1$d second</string> <string name="Seconds_one">%1$d segundo</string>
<string name="Seconds_two">%1$d seconds</string> <string name="Seconds_two">%1$d segundos</string>
<string name="Seconds_few">%1$d seconds</string> <string name="Seconds_few">%1$d segundos</string>
<string name="Seconds_many">%1$d seconds</string> <string name="Seconds_many">%1$d segundos</string>
<string name="Seconds_other">%1$d seconds</string> <string name="Seconds_other">%1$d segundos</string>
<string name="Minutes_zero">%1$d minutes</string> <string name="Minutes_zero">%1$d minutos</string>
<string name="Minutes_one">%1$d minute</string> <string name="Minutes_one">%1$d minuto</string>
<string name="Minutes_two">%1$d minutes</string> <string name="Minutes_two">%1$d minutos</string>
<string name="Minutes_few">%1$d minutes</string> <string name="Minutes_few">%1$d minutos</string>
<string name="Minutes_many">%1$d minutes</string> <string name="Minutes_many">%1$d minutos</string>
<string name="Minutes_other">%1$d minutes</string> <string name="Minutes_other">%1$d minutos</string>
<string name="Hours_zero">%1$d hours</string> <string name="Hours_zero">%1$d horas</string>
<string name="Hours_one">%1$d hour</string> <string name="Hours_one">%1$d hora</string>
<string name="Hours_two">%1$d hours</string> <string name="Hours_two">%1$d horas</string>
<string name="Hours_few">%1$d hours</string> <string name="Hours_few">%1$d horas</string>
<string name="Hours_many">%1$d hours</string> <string name="Hours_many">%1$d horas</string>
<string name="Hours_other">%1$d hours</string> <string name="Hours_other">%1$d horas</string>
<string name="Days_zero">%1$d days</string> <string name="Days_zero">%1$d dias</string>
<string name="Days_one">%1$d day</string> <string name="Days_one">%1$d dia</string>
<string name="Days_two">%1$d days</string> <string name="Days_two">%1$d dias</string>
<string name="Days_few">%1$d days</string> <string name="Days_few">%1$d dias</string>
<string name="Days_many">%1$d days</string> <string name="Days_many">%1$d dias</string>
<string name="Days_other">%1$d days</string> <string name="Days_other">%1$d dias</string>
<string name="Weeks_zero">%1$d weeks</string> <string name="Weeks_zero">%1$d semanas</string>
<string name="Weeks_one">%1$d week</string> <string name="Weeks_one">%1$d semana</string>
<string name="Weeks_two">%1$d weeks</string> <string name="Weeks_two">%1$d semanas</string>
<string name="Weeks_few">%1$d weeks</string> <string name="Weeks_few">%1$d semanas</string>
<string name="Weeks_many">%1$d weeks</string> <string name="Weeks_many">%1$d semanas</string>
<string name="Weeks_other">%1$d weeks</string> <string name="Weeks_other">%1$d semanas</string>
<!--date formatters--> <!--date formatters-->
<string name="formatterMonth">dd MMM</string> <string name="formatterMonth">dd MMM</string>
<string name="formatterYear">dd.MM.yy</string> <string name="formatterYear">dd.MM.yy</string>
<string name="formatterYearMax">dd.MM.yyyy</string> <string name="formatterYearMax">dd.MM.yyyy</string>
<string name="chatDate">d MMMM</string> <string name="chatDate">d MMMM</string>
<string name="chatFullDate">d MMMM yyyy</string> <string name="chatFullDate">MMMM d, yyyy</string>
<string name="formatterWeek">EEE</string> <string name="formatterWeek">EEE</string>
<string name="formatterDay24H">HH:mm</string> <string name="formatterDay24H">HH:mm</string>
<string name="formatterDay12H">h:mm a</string> <string name="formatterDay12H">h:mm a</string>
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<!--EDIT TEXT--> <!--EDIT TEXT-->
<style name="Theme.TMessages.EditText" parent="android:Widget.Material.Light.EditText"> <style name="Theme.TMessages.EditText" parent="android:Widget.Material.Light.EditText">
<item name="android:background">@drawable/holo_edit_text_light</item> <item name="android:background">@drawable/edit_text</item>
<item name="android:textColor">#000000</item> <item name="android:textColor">#000000</item>
</style> </style>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<string name="DeleteChat">Delete and exit</string> <string name="DeleteChat">Delete and exit</string>
<string name="HiddenName">Hidden Name</string> <string name="HiddenName">Hidden Name</string>
<string name="SelectChat">Select Chat</string> <string name="SelectChat">Select Chat</string>
<string name="CompatibilityChat">%1$s is using an older version of Telegram, so secret photos will be shown in compatibility mode.\n\nOnce %2$s updates Telegram, photos with timers for 1 minute or less will start working in \'Tap and hold to view\' mode, and you will be notified whenever the other party takes a screenshot.</string>
<!--broadcasts--> <!--broadcasts-->
<string name="BroadcastList">Broadcast List</string> <string name="BroadcastList">Broadcast List</string>
<string name="NewBroadcastList">New Broadcast List</string> <string name="NewBroadcastList">New Broadcast List</string>
...@@ -198,7 +199,7 @@ ...@@ -198,7 +199,7 @@
<string name="MessageLifetime">Self-Destruct Timer</string> <string name="MessageLifetime">Self-Destruct Timer</string>
<string name="ShortMessageLifetimeForever">Off</string> <string name="ShortMessageLifetimeForever">Off</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> <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>
<string name="Unknown">Unknown</string> <string name="NumberUnknown">Unknown</string>
<string name="Info">INFO</string> <string name="Info">INFO</string>
<string name="Phone">Phone</string> <string name="Phone">Phone</string>
<string name="Username">Username</string> <string name="Username">Username</string>
...@@ -206,8 +207,11 @@ ...@@ -206,8 +207,11 @@
<string name="UsernameInUse">Sorry, this username is already taken.</string> <string name="UsernameInUse">Sorry, this username is already taken.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string> <string name="UsernameInvalid">Sorry, this username is invalid.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string> <string name="UsernameInvalidShort">A username must have at least 5 characters.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can't start with a number.</string> <string name="UsernameInvalidLong">The username must not exceed 32 characters.</string>
<string name="Usernamehelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string> <string name="UsernameInvalidStartNumber">Sorry, a username can\'t start with a number.</string>
<string name="UsernameHelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.<![CDATA[<br><br>]]>You can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string>
<string name="UsernameChecking">Checking username...</string>
<string name="UsernameAvailable">%1$s is available.</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Reset all notification settings to default</string> <string name="ResetNotificationsText">Reset all notification settings to default</string>
<string name="TextSize">Messages Text Size</string> <string name="TextSize">Messages Text Size</string>
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<!--EDIT TEXT--> <!--EDIT TEXT-->
<style name="Theme.TMessages.EditText" parent="android:Widget.EditText"> <style name="Theme.TMessages.EditText" parent="android:Widget.EditText">
<item name="android:background">@drawable/holo_edit_text_light</item> <item name="android:background">@drawable/edit_text</item>
<item name="android:textColor">#000000</item> <item name="android:textColor">#000000</item>
</style> </style>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment