Commit 5bbfba20 authored by DrKLO's avatar DrKLO

UI improvements

parent 288fceeb
...@@ -80,7 +80,7 @@ android { ...@@ -80,7 +80,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 357 versionCode 358
versionName "1.9.5" versionName "1.9.5"
} }
} }
...@@ -3551,7 +3551,15 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -3551,7 +3551,15 @@ public class MessagesController implements NotificationCenter.NotificationCenter
} }
if (object instanceof TLRPC.TL_decryptedMessageLayer) { if (object instanceof TLRPC.TL_decryptedMessageLayer) {
object = ((TLRPC.TL_decryptedMessageLayer) object).message; final TLRPC.TL_decryptedMessageLayer layer = (TLRPC.TL_decryptedMessageLayer)object;
AndroidUtilities.RunOnUIThread(new Runnable() {
@Override
public void run() {
chat.seq_in = layer.out_seq_no;
MessagesStorage.getInstance().updateEncryptedChatSeq(chat);
}
});
object = layer.message;
} }
if (object instanceof TLRPC.TL_decryptedMessage) { if (object instanceof TLRPC.TL_decryptedMessage) {
...@@ -3890,6 +3898,8 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -3890,6 +3898,8 @@ public class MessagesController implements NotificationCenter.NotificationCenter
salt[a] = (byte) ((byte) (Utilities.random.nextDouble() * 256) ^ res.random[a]); salt[a] = (byte) ((byte) (Utilities.random.nextDouble() * 256) ^ res.random[a]);
} }
encryptedChat.a_or_b = salt; encryptedChat.a_or_b = salt;
encryptedChat.seq_in = 1;
encryptedChat.seq_out = 0;
BigInteger p = new BigInteger(1, MessagesStorage.secretPBytes); BigInteger p = new BigInteger(1, MessagesStorage.secretPBytes);
BigInteger g_b = BigInteger.valueOf(MessagesStorage.secretG); BigInteger g_b = BigInteger.valueOf(MessagesStorage.secretG);
g_b = g_b.modPow(new BigInteger(1, salt), p); g_b = g_b.modPow(new BigInteger(1, salt), p);
...@@ -4033,8 +4043,10 @@ public class MessagesController implements NotificationCenter.NotificationCenter ...@@ -4033,8 +4043,10 @@ public class MessagesController implements NotificationCenter.NotificationCenter
} }
TLRPC.EncryptedChat chat = (TLRPC.EncryptedChat) response; TLRPC.EncryptedChat chat = (TLRPC.EncryptedChat) response;
chat.user_id = chat.participant_id; chat.user_id = chat.participant_id;
putEncryptedChat(chat, false); chat.seq_in = 0;
chat.seq_out = 1;
chat.a_or_b = salt; chat.a_or_b = salt;
putEncryptedChat(chat, false);
TLRPC.TL_dialog dialog = new TLRPC.TL_dialog(); TLRPC.TL_dialog dialog = new TLRPC.TL_dialog();
dialog.id = ((long) chat.id) << 32; dialog.id = ((long) chat.id) << 32;
dialog.unread_count = 0; dialog.unread_count = 0;
......
...@@ -9330,6 +9330,8 @@ public class TLRPC { ...@@ -9330,6 +9330,8 @@ public class TLRPC {
public int user_id; public int user_id;
public int ttl; public int ttl;
public int layer; public int layer;
public int seq_in;
public int seq_out;
} }
public static class FileLocation extends TLObject { public static class FileLocation extends TLObject {
......
...@@ -44,9 +44,9 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -44,9 +44,9 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
private int buttonState = 0; private int buttonState = 0;
private int buttonX; private int buttonX;
private int buttonY; private int buttonY;
private int buttonPressed = 0; private boolean buttonPressed = false;
private int avatarPressed = 0; private boolean avatarPressed = false;
private StaticLayout timeLayout; private StaticLayout timeLayout;
private int timeX; private int timeX;
...@@ -56,7 +56,6 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -56,7 +56,6 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
public TLRPC.User audioUser; public TLRPC.User audioUser;
private TLRPC.FileLocation currentPhoto; private TLRPC.FileLocation currentPhoto;
private String currentNameString;
public ChatAudioCell(Context context) { public ChatAudioCell(Context context) {
super(context); super(context);
...@@ -115,40 +114,40 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -115,40 +114,40 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
int side = AndroidUtilities.dp(36); int side = AndroidUtilities.dp(36);
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side) { if (x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side) {
buttonPressed = 1; buttonPressed = true;
invalidate(); invalidate();
result = true; result = true;
} else if (avatarImage.isInsideImage(x, y)) { } else if (avatarImage.isInsideImage(x, y)) {
avatarPressed = 1; avatarPressed = true;
result = true; result = true;
} }
} else if (buttonPressed == 1) { } else if (buttonPressed) {
if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getAction() == MotionEvent.ACTION_UP) {
buttonPressed = 0; buttonPressed = false;
playSoundEffect(SoundEffectConstants.CLICK); playSoundEffect(SoundEffectConstants.CLICK);
didPressedButton(); didPressedButton();
invalidate(); invalidate();
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) { } else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
buttonPressed = 0; buttonPressed = false;
invalidate(); invalidate();
} else if (event.getAction() == MotionEvent.ACTION_MOVE) { } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (!(x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side)) { if (!(x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side)) {
buttonPressed = 0; buttonPressed = false;
invalidate(); invalidate();
} }
} }
} else if (avatarPressed == 1) { } else if (avatarPressed) {
if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getAction() == MotionEvent.ACTION_UP) {
avatarPressed = 0; avatarPressed = false;
playSoundEffect(SoundEffectConstants.CLICK); playSoundEffect(SoundEffectConstants.CLICK);
if (delegate != null) { if (delegate != null) {
delegate.didPressedUserAvatar(this, audioUser); delegate.didPressedUserAvatar(this, audioUser);
} }
} else if (event.getAction() == MotionEvent.ACTION_CANCEL) { } else if (event.getAction() == MotionEvent.ACTION_CANCEL) {
avatarPressed = 0; avatarPressed = false;
} else if (event.getAction() == MotionEvent.ACTION_MOVE) { } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (!avatarImage.isInsideImage(x, y)) { if (!avatarImage.isInsideImage(x, y)) {
avatarPressed = 0; avatarPressed = false;
} }
} }
} }
...@@ -301,7 +300,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -301,7 +300,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
int x; int x;
if (currentMessageObject.isOut()) { if (currentMessageObject.isOut()) {
x = layoutWidth - backgroundWidth + AndroidUtilities.dp(9); x = layoutWidth - backgroundWidth + AndroidUtilities.dp(8);
seekBarX = layoutWidth - backgroundWidth + AndroidUtilities.dp(97); seekBarX = layoutWidth - backgroundWidth + AndroidUtilities.dp(97);
buttonX = layoutWidth - backgroundWidth + AndroidUtilities.dp(67); buttonX = layoutWidth - backgroundWidth + AndroidUtilities.dp(67);
timeX = layoutWidth - backgroundWidth + AndroidUtilities.dp(71); timeX = layoutWidth - backgroundWidth + AndroidUtilities.dp(71);
...@@ -356,7 +355,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -356,7 +355,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
} }
avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false);
} else { } else {
avatarImage.setImage((TLRPC.FileLocation)null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); avatarImage.setImage(null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false);
} }
if (messageObject.isOut()) { if (messageObject.isOut()) {
...@@ -380,7 +379,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -380,7 +379,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
return; return;
} }
avatarImage.draw(canvas, avatarImage.getImageX(), avatarImage.getImageY(), AndroidUtilities.dp(50), AndroidUtilities.dp(50)); avatarImage.draw(canvas, avatarImage.getImageX(), avatarImage.getImageY(), avatarImage.getImageHeight(), avatarImage.getImageHeight());
canvas.save(); canvas.save();
if (buttonState == 0 || buttonState == 1) { if (buttonState == 0 || buttonState == 1) {
...@@ -399,7 +398,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega ...@@ -399,7 +398,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega
} else { } else {
timePaint.setColor(0xff70b15c); timePaint.setColor(0xff70b15c);
} }
Drawable buttonDrawable = statesDrawable[state][buttonPressed]; Drawable buttonDrawable = statesDrawable[state][buttonPressed ? 1 : 0];
int side = AndroidUtilities.dp(36); int side = AndroidUtilities.dp(36);
int x = (side - buttonDrawable.getIntrinsicWidth()) / 2; int x = (side - buttonDrawable.getIntrinsicWidth()) / 2;
int y = (side - buttonDrawable.getIntrinsicHeight()) / 2; int y = (side - buttonDrawable.getIntrinsicHeight()) / 2;
......
...@@ -94,7 +94,7 @@ public class ChatBaseCell extends BaseCell { ...@@ -94,7 +94,7 @@ public class ChatBaseCell extends BaseCell {
private StaticLayout timeLayout; private StaticLayout timeLayout;
protected int timeWidth; protected int timeWidth;
protected int timeX; private int timeX;
private TextPaint currentTimePaint; private TextPaint currentTimePaint;
private String currentTimeString; private String currentTimeString;
protected boolean drawTime = true; protected boolean drawTime = true;
......
...@@ -569,7 +569,11 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -569,7 +569,11 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
} }
if (currentMessageObject.isSecretMedia()) { if (currentMessageObject.isSecretMedia()) {
w = h = (int) (Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) * 0.5f); if (AndroidUtilities.isTablet()) {
w = h = (int) (AndroidUtilities.getMinTabletSide() * 0.5f);
} else {
w = h = (int) (Math.min(AndroidUtilities.displaySize.x, AndroidUtilities.displaySize.y) * 0.5f);
}
} }
photoWidth = w; photoWidth = w;
......
...@@ -670,7 +670,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa ...@@ -670,7 +670,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
} }
} else { } else {
actionBarLayout.presentFragment(fragment, true); actionBarLayout.presentFragment(fragment, true);
fragment.processSendingVideo(videoPath, 0, 0, 0, 0, null); SendMessagesHelper.prepareSendingVideo(videoPath, 0, 0, 0, 0, null, dialog_id);
} }
} else { } else {
actionBarLayout.presentFragment(fragment, true); actionBarLayout.presentFragment(fragment, true);
...@@ -678,10 +678,10 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa ...@@ -678,10 +678,10 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
fragment.processSendingText(sendingText); fragment.processSendingText(sendingText);
} }
if (photoPathsArray != null) { if (photoPathsArray != null) {
fragment.processSendingPhotos(null, photoPathsArray); SendMessagesHelper.prepareSendingPhotos(null, photoPathsArray, dialog_id);
} }
if (documentsPathsArray != null) { if (documentsPathsArray != null) {
fragment.processSendingDocuments(documentsPathsArray, documentsOriginalPathsArray); SendMessagesHelper.prepareSendingDocuments(documentsPathsArray, documentsOriginalPathsArray, dialog_id);
} }
if (contactsToSend != null && !contactsToSend.isEmpty()) { if (contactsToSend != null && !contactsToSend.isEmpty()) {
for (TLRPC.User user : contactsToSend) { for (TLRPC.User user : contactsToSend) {
...@@ -1190,7 +1190,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa ...@@ -1190,7 +1190,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
buttonLayoutTablet.setVisibility(View.VISIBLE); buttonLayoutTablet.setVisibility(View.VISIBLE);
backgroundTablet.setVisibility(View.VISIBLE); backgroundTablet.setVisibility(View.VISIBLE);
} }
} else if (layout == layersActionBarLayout && actionBarLayout.fragmentsStack.isEmpty()) { } else if (layout == layersActionBarLayout && actionBarLayout.fragmentsStack.isEmpty() && layersActionBarLayout.fragmentsStack.size() == 1) {
onFinish(); onFinish();
finish(); finish();
return false; return false;
......
...@@ -853,7 +853,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ...@@ -853,7 +853,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) {
textView.setText(PhoneFormat.getInstance().format("+" + user.phone)); textView.setText(PhoneFormat.getInstance().format("+" + user.phone));
} else { } else {
textView.setText("Unknown"); textView.setText(LocaleController.getString("Unknown", R.string.Unknown));
} }
divider.setVisibility(View.INVISIBLE); divider.setVisibility(View.INVISIBLE);
} else if (i == notificationRow) { } else if (i == notificationRow) {
......
...@@ -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) : "Unknown"); ((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));
} 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);
......
...@@ -608,7 +608,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen ...@@ -608,7 +608,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("Unknown"); textView.setText(LocaleController.getString("Unknown", R.string.Unknown));
} }
divider.setVisibility(View.INVISIBLE); divider.setVisibility(View.INVISIBLE);
detailTextView.setText(LocaleController.getString("PhoneMobile", R.string.PhoneMobile)); detailTextView.setText(LocaleController.getString("PhoneMobile", R.string.PhoneMobile));
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="1dp"
android:paddingTop="1dp"
android:layout_gravity="top">
<org.telegram.ui.Views.BackupImageView
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginLeft="6dp"
android:id="@+id/chat_group_avatar_image"
android:layout_marginBottom="2dp"
android:layout_marginRight="4dp"
android:layout_gravity="bottom"/>
<LinearLayout
android:orientation="horizontal"
android:layout_height="69dp"
android:layout_width="wrap_content"
android:layout_marginRight="40dp"
android:layout_gravity="top"
android:baselineAligned="false"
android:id="@+id/chat_bubble_layout">
<FrameLayout
android:layout_height="58dp"
android:layout_width="0dp"
android:id="@+id/shared_layout"
android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp"
android:id="@+id/contact_avatar"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:scrollHorizontally="true"
android:paddingLeft="51dp"
android:layout_marginTop="1dp"
android:textSize="15dp"
android:lines="1"
android:layout_gravity="top|left"
android:singleLine="true"
android:ellipsize="end"
android:id="@+id/chat_user_group_name"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="51dp"
android:layout_marginTop="20dp"
android:textSize="15dp"
android:layout_gravity="top|left"
android:maxLines="1"
android:id="@+id/phone_text_view"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chat_time_text"
android:textColor="#a1aab3"
android:textSize="12dp"
android:layout_gravity="bottom|right"/>
</FrameLayout>
<FrameLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_gravity="top"
android:id="@+id/add_contact_view">
<FrameLayout android:layout_height="54dp"
android:layout_width="1dp"
android:background="#e8e8e8"
android:paddingRight="8dp"/>
<ImageView android:layout_width="38dp"
android:layout_height="54dp"
android:src="@drawable/ic_ab_add_member"
android:scaleType="center"
android:layout_marginLeft="8dp"
android:paddingRight="4dp"
android:id="@+id/add_contact_button"/>
</FrameLayout>
</LinearLayout>
</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="wrap_content"
android:paddingBottom="1dp"
android:paddingTop="1dp"
android:layout_gravity="top">
<LinearLayout
android:orientation="horizontal"
android:layout_height="69dp"
android:layout_width="wrap_content"
android:layout_marginRight="40dp"
android:layout_gravity="top"
android:id="@+id/chat_bubble_layout">
<FrameLayout android:layout_height="58dp"
android:layout_width="0dp"
android:id="@+id/shared_layout"
android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp"
android:id="@+id/contact_avatar"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:scrollHorizontally="true"
android:paddingLeft="51dp"
android:layout_marginTop="1dp"
android:textSize="15dp"
android:lines="1"
android:singleLine="true"
android:ellipsize="end"
android:layout_gravity="top"
android:id="@+id/chat_user_group_name"/>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="51dp"
android:layout_marginTop="20dp"
android:textSize="15dp"
android:maxLines="1"
android:layout_gravity="top"
android:id="@+id/phone_text_view"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chat_time_text"
android:textColor="#a1aab3"
android:textSize="12dp"
android:layout_gravity="bottom|right"/>
</FrameLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_gravity="top"
android:id="@+id/add_contact_view">
<FrameLayout
android:layout_height="54dp"
android:layout_width="1dp"
android:background="#e8e8e8"
android:paddingRight="8dp"/>
<ImageView
android:layout_width="38dp"
android:layout_height="54dp"
android:src="@drawable/ic_ab_add_member"
android:scaleType="center"
android:layout_marginLeft="8dp"
android:paddingRight="4dp"
android:id="@+id/add_contact_button"/>
</FrameLayout>
</LinearLayout>
</FrameLayout>
\ 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="wrap_content"
android:paddingBottom="1dp"
android:paddingTop="1dp"
android:layout_gravity="top">
<LinearLayout
android:orientation="horizontal"
android:layout_height="69dp"
android:layout_width="wrap_content"
android:layout_marginLeft="40dp"
android:layout_gravity="top|right"
android:id="@+id/chat_bubble_layout">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_gravity="top"
android:id="@+id/add_contact_view">
<FrameLayout
android:layout_height="54dp"
android:layout_width="1dp"
android:background="#aa70b15c"
android:paddingLeft="8dp"
android:layout_gravity="right"/>
<ImageView
android:layout_width="40dp"
android:layout_height="54dp"
android:src="@drawable/ic_ab_add_member"
android:scaleType="center"
android:layout_marginRight="8dp"
android:paddingLeft="4dp"
android:id="@+id/add_contact_button"/>
</FrameLayout>
<FrameLayout
android:layout_height="58dp"
android:layout_width="0dp"
android:id="@+id/shared_layout"
android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp"
android:id="@+id/contact_avatar"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:scrollHorizontally="true"
android:paddingLeft="51dp"
android:layout_marginTop="1dp"
android:textSize="15dp"
android:lines="1"
android:singleLine="true"
android:layout_gravity="top"
android:ellipsize="end"
android:id="@+id/chat_user_group_name"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="51dp"
android:layout_marginTop="20dp"
android:layout_gravity="top"
android:textSize="15dp"
android:maxLines="1"
android:id="@+id/phone_text_view"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chat_time_layout"
android:layout_gravity="bottom|right">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chat_time_text"
android:textColor="#70b15c"
android:textSize="12dp"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/msg_check"
android:layout_marginTop="2dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="-8dp"
android:id="@+id/chat_row_check"
android:visibility="visible"
android:layout_gravity="top"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/msg_halfcheck"
android:layout_marginTop="2dp"
android:id="@+id/chat_row_halfcheck"
android:visibility="visible"
android:layout_gravity="top"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,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>]]>, فمحادثتكم آمنة ٢٠٠٪.<![CDATA[<br><br>]]>للمزيد نرجو الذهاب إلى telegram.org</string> <string name="EncryptionKeyDescription">هذه الصورة هي تصور لمفتاح التشفير لهذه المحادثة السرية مع <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>إذا كانت مطابقة للصورة التي في جهاز <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, فمحادثتكم آمنة ٢٠٠٪.<![CDATA[<br><br>]]>للمزيد نرجو الذهاب إلى telegram.org</string>
<string name="Unknown">Unknown</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">تم تعيين كافة الإشعارات افتراضيا</string> <string name="ResetNotificationsText">تم تعيين كافة الإشعارات افتراضيا</string>
<string name="TextSize">حجم نص الرسائل</string> <string name="TextSize">حجم نص الرسائل</string>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<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>
<!--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>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<string name="MessageLifetime">Autodestrucción</string> <string name="MessageLifetime">Autodestrucción</string>
<string name="ShortMessageLifetimeForever">Apagada</string> <string name="ShortMessageLifetimeForever">Apagada</string>
<string name="EncryptionKeyDescription">Esta imagen es una visualización de la clave de cifrado para el chat secreto con <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Si esta imagen se ve igual en el teléfono de <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, tu chat es seguro en un 200%%.<![CDATA[<br><br>]]>Aprende más en telegram.org</string> <string name="EncryptionKeyDescription">Esta imagen es una visualización de la clave de cifrado para el chat secreto con <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.<![CDATA[<br><br>]]>Si esta imagen se ve igual en el teléfono de <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>, tu chat es seguro en un 200%%.<![CDATA[<br><br>]]>Aprende más en telegram.org</string>
<string name="Unknown">Unknown</string>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">Restablecer las notificaciones</string> <string name="ResetNotificationsText">Restablecer las notificaciones</string>
<string name="TextSize">Tamaño del texto</string> <string name="TextSize">Tamaño del texto</string>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<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>
<!--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>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,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>
<!--settings view--> <!--settings view-->
<string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string> <string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string>
<string name="TextSize">채팅 글자 크기</string> <string name="TextSize">채팅 글자 크기</string>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<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>
<!--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>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<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>
<!--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>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,7 @@
<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>
<!--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>
......
...@@ -197,6 +197,7 @@ ...@@ -197,6 +197,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>
<!--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>
......
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