Removed jnigraphics use from native lib(not found on some devices), bug fixes

This commit is contained in:
DrKLO 2014-06-15 03:23:36 +04:00
parent 8c9616cb00
commit 68aeaeefc3
37 changed files with 221 additions and 252 deletions

View file

@ -81,7 +81,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 255 versionCode 256
versionName "1.5.3" versionName "1.5.3"
} }
} }

View file

@ -7,7 +7,7 @@ LOCAL_CFLAGS := -w -std=gnu99 -O3 -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_U
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno
LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT
LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -O3 -funroll-loops LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -O3 -funroll-loops
LOCAL_LDLIBS := -llog -lm -ljnigraphics LOCAL_LDLIBS := -llog -lm
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
./opus/src/opus.c \ ./opus/src/opus.c \

View file

@ -1,7 +1,6 @@
#include <jni.h> #include <jni.h>
#include <stdio.h> #include <stdio.h>
#include <setjmp.h> #include <setjmp.h>
#include <android/bitmap.h>
#include <libjpeg/jpeglib.h> #include <libjpeg/jpeglib.h>
#include "utils.h" #include "utils.h"
@ -17,23 +16,23 @@ METHODDEF(void) my_error_exit(j_common_ptr cinfo) {
longjmp(myerr->setjmp_buffer, 1); longjmp(myerr->setjmp_buffer, 1);
} }
JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jobject bitmap, int scale) { JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jintArray bitmap, int scale, int format, int width, int height) {
AndroidBitmapInfo info;
int i; int i;
if ((i = AndroidBitmap_getInfo(env, bitmap, &info)) >= 0) { char *fileName = (*env)->GetStringUTFChars(env, path, NULL);
char *fileName = (*env)->GetStringUTFChars(env, path, NULL); FILE *infile;
FILE *infile;
if ((infile = fopen(fileName, "rb"))) {
struct my_error_mgr jerr;
struct jpeg_decompress_struct cinfo;
if ((infile = fopen(fileName, "rb"))) { cinfo.err = jpeg_std_error(&jerr.pub);
struct my_error_mgr jerr; jerr.pub.error_exit = my_error_exit;
struct jpeg_decompress_struct cinfo;
if (!setjmp(jerr.setjmp_buffer)) {
cinfo.err = jpeg_std_error(&jerr.pub); unsigned char *bitmapBuf = (*env)->GetPrimitiveArrayCritical(env, bitmap, 0);
jerr.pub.error_exit = my_error_exit; if (bitmapBuf) {
if (!setjmp(jerr.setjmp_buffer)) {
jpeg_create_decompress(&cinfo); jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo, infile); jpeg_stdio_src(&cinfo, infile);
@ -45,60 +44,60 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jcl
jpeg_start_decompress(&cinfo); jpeg_start_decompress(&cinfo);
int row_stride = cinfo.output_width * cinfo.output_components; int row_stride = cinfo.output_width * cinfo.output_components;
JSAMPARRAY buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); JSAMPARRAY buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
int stride = width;
if (format == 0) {
stride *= 4;
} else if (format == 1) {
stride *= 2;
}
unsigned char *pixels = bitmapBuf;
int rowCount = min(cinfo.output_height, height);
int colCount = min(cinfo.output_width, width);
unsigned char *pixels; while (cinfo.output_scanline < rowCount) {
if ((i = AndroidBitmap_lockPixels(env, bitmap, &pixels)) >= 0) { jpeg_read_scanlines(&cinfo, buffer, 1);
int rowCount = min(cinfo.output_height, info.height); if (format == 0) {
int colCount = min(cinfo.output_width, info.width); if (cinfo.out_color_space == JCS_GRAYSCALE) {
for (i = 0; i < colCount; i++) {
while (cinfo.output_scanline < rowCount) { float alpha = buffer[0][i] / 255.0f;
jpeg_read_scanlines(&cinfo, buffer, 1); pixels[i * 4] *= alpha;
pixels[i * 4 + 1] *= alpha;
if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) { pixels[i * 4 + 2] *= alpha;
if (cinfo.out_color_space == JCS_GRAYSCALE) { pixels[i * 4 + 3] = buffer[0][i];
for (i = 0; i < colCount; i++) { }
float alpha = buffer[0][i] / 255.0f; } else {
pixels[i * 4] *= alpha; int c = 0;
pixels[i * 4 + 1] *= alpha; for (i = 0; i < colCount; i++) {
pixels[i * 4 + 2] *= alpha; pixels[i * 4] = buffer[0][i * 3 + 2];
pixels[i * 4 + 3] = buffer[0][i]; pixels[i * 4 + 1] = buffer[0][i * 3 + 1];
} pixels[i * 4 + 2] = buffer[0][i * 3];
} else { pixels[i * 4 + 3] = 255;
int c = 0; c += 4;
for (i = 0; i < colCount; i++) {
pixels[i * 4] = buffer[0][i * 3];
pixels[i * 4 + 1] = buffer[0][i * 3 + 1];
pixels[i * 4 + 2] = buffer[0][i * 3 + 2];
pixels[i * 4 + 3] = 255;
c += 4;
}
} }
} else if (info.format == ANDROID_BITMAP_FORMAT_RGB_565) {
} }
} else if (format == 1) {
pixels += info.stride;
} }
AndroidBitmap_unlockPixels(env, bitmap); pixels += stride;
} else {
throwException(env, "AndroidBitmap_lockPixels() failed ! error=%d", i);
} }
(*env)->ReleasePrimitiveArrayCritical(env, bitmap, bitmapBuf, 0);
jpeg_finish_decompress(&cinfo); jpeg_finish_decompress(&cinfo);
} else { } else {
throwException(env, "the JPEG code has signaled an error"); throwException(env, "can't get bitmap buff");
} }
jpeg_destroy_decompress(&cinfo);
fclose(infile);
} else { } else {
throwException(env, "can't open %s\n", fileName); throwException(env, "the JPEG code has signaled an error");
} }
(*env)->ReleaseStringUTFChars(env, path, fileName); jpeg_destroy_decompress(&cinfo);
fclose(infile);
} else { } else {
throwException(env, "AndroidBitmap_getInfo() failed ! error=%d", i); throwException(env, "can't open %s", fileName);
} }
(*env)->ReleaseStringUTFChars(env, path, fileName);
} }

View file

@ -65,6 +65,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
private long lastPingTime = System.currentTimeMillis(); private long lastPingTime = System.currentTimeMillis();
private long lastPushPingTime = System.currentTimeMillis(); private long lastPushPingTime = System.currentTimeMillis();
private int nextSleepTimeout = 30000; private int nextSleepTimeout = 30000;
private long nextPingId = 0;
private static volatile ConnectionsManager Instance = null; private static volatile ConnectionsManager Instance = null;
public static ConnectionsManager getInstance() { public static ConnectionsManager getInstance() {
@ -2337,7 +2338,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
} }
} }
static long nextPingId = 0;
private ByteBufferDesc generatePingData(TcpConnection connection) { private ByteBufferDesc generatePingData(TcpConnection connection) {
if (connection == null) { if (connection == null) {
return null; return null;
@ -2347,6 +2347,17 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
ping.ping_id = nextPingId++; ping.ping_id = nextPingId++;
ping.disconnect_delay = 35; ping.disconnect_delay = 35;
pingIdToDate.put(ping.ping_id, (int)(System.currentTimeMillis() / 1000)); pingIdToDate.put(ping.ping_id, (int)(System.currentTimeMillis() / 1000));
if (pingIdToDate.size() > 20) {
ArrayList<Long> itemsToDelete = new ArrayList<Long>();
for (Long pid : pingIdToDate.keySet()) {
if (pid < nextPingId - 10) {
itemsToDelete.add(pid);
}
}
for (Long pid : itemsToDelete) {
pingIdToDate.remove(pid);
}
}
NetworkMessage networkMessage = new NetworkMessage(); NetworkMessage networkMessage = new NetworkMessage();
networkMessage.protoMessage = wrapMessage(ping, connection, false); networkMessage.protoMessage = wrapMessage(ping, connection, false);

View file

@ -13,7 +13,6 @@ import java.io.InputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.ColorFilter; import android.graphics.ColorFilter;
@ -34,8 +33,21 @@ public class Emoji {
private static int drawImgSize, bigImgSize; private static int drawImgSize, bigImgSize;
private static boolean inited = false; private static boolean inited = false;
private static Paint placeholderPaint; private static Paint placeholderPaint;
private static Bitmap emojiBmp[] = new Bitmap[5]; private static EmojiBitmap emojiBmp[] = new EmojiBitmap[5];
private static boolean loadingEmoji[] = new boolean[5]; private static boolean loadingEmoji[] = new boolean[5];
private static int emojiFullSize;
private static class EmojiBitmap {
public int[] colors;
public int width;
public int height;
public EmojiBitmap(int[] colors, int width, int height) {
this.colors = colors;
this.width = width;
this.height = height;
}
}
private static final int[] cols = { private static final int[] cols = {
13, 10, 15, 10, 14 13, 10, 15, 10, 14
@ -190,22 +202,21 @@ public class Emoji {
0x00000000D83DDD34L, 0x00000000D83DDD35L, 0x00000000D83DDD3BL, 0x00000000D83DDD36L, 0x00000000D83DDD37L, 0x00000000D83DDD38L, 0x00000000D83DDD39L}}; 0x00000000D83DDD34L, 0x00000000D83DDD35L, 0x00000000D83DDD3BL, 0x00000000D83DDD36L, 0x00000000D83DDD37L, 0x00000000D83DDD38L, 0x00000000D83DDD39L}};
static { static {
int imgSize = 30;
if (Utilities.density <= 1.0f) { if (Utilities.density <= 1.0f) {
imgSize = 30; emojiFullSize = 30;
} else if (Utilities.density <= 1.5f) { } else if (Utilities.density <= 1.5f) {
imgSize = 45; emojiFullSize = 45;
} else if (Utilities.density <= 2.0f) { } else if (Utilities.density <= 2.0f) {
imgSize = 60; emojiFullSize = 60;
} else { } else {
imgSize = 90; emojiFullSize = 90;
} }
drawImgSize = Utilities.dp(20); drawImgSize = Utilities.dp(20);
bigImgSize = Utilities.dp(30); bigImgSize = Utilities.dp(30);
for (int j = 1; j < data.length; j++) { for (int j = 1; j < data.length; j++) {
for (int i = 0; i < data[j].length; i++) { for (int i = 0; i < data[j].length; i++) {
Rect rect = new Rect((i % cols[j - 1]) * imgSize, (i / cols[j - 1]) * imgSize, (i % cols[j - 1] + 1) * imgSize, (i / cols[j - 1] + 1) * imgSize); Rect rect = new Rect((i % cols[j - 1]) * emojiFullSize, (i / cols[j - 1]) * emojiFullSize, emojiFullSize, emojiFullSize);
rects.put(data[j][i], new DrawableInfo(rect, (byte)(j - 1))); rects.put(data[j][i], new DrawableInfo(rect, (byte)(j - 1)));
} }
} }
@ -213,7 +224,7 @@ public class Emoji {
placeholderPaint.setColor(0x00000000); placeholderPaint.setColor(0x00000000);
} }
private static Bitmap loadEmoji(final int page) { private static void loadEmoji(final int page) {
try { try {
float scale = 1.0f; float scale = 1.0f;
int imageResize = 1; int imageResize = 1;
@ -241,8 +252,10 @@ public class Emoji {
opts.inJustDecodeBounds = true; opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imageFile.getAbsolutePath(), opts); BitmapFactory.decodeFile(imageFile.getAbsolutePath(), opts);
final Bitmap colorsBitmap = Bitmap.createBitmap(opts.outWidth / imageResize, opts.outHeight / imageResize, Bitmap.Config.ARGB_8888); int width = opts.outWidth / imageResize;
Utilities.loadBitmap(imageFile.getAbsolutePath(), colorsBitmap, imageResize); int height = opts.outHeight / imageResize;
int[] bitmap = new int[width * height];
Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize, 0, width, height);
imageName = String.format(Locale.US, "emoji%.01fx_a_%d.jpg", scale, page); imageName = String.format(Locale.US, "emoji%.01fx_a_%d.jpg", scale, page);
imageFile = ApplicationLoader.applicationContext.getFileStreamPath(imageName); imageFile = ApplicationLoader.applicationContext.getFileStreamPath(imageName);
@ -252,21 +265,19 @@ public class Emoji {
is.close(); is.close();
} }
Utilities.loadBitmap(imageFile.getAbsolutePath(), colorsBitmap, imageResize); Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize, 0, width, height);
final EmojiBitmap emojiBitmap = new EmojiBitmap(bitmap, width, height);
Utilities.RunOnUIThread(new Runnable() { Utilities.RunOnUIThread(new Runnable() {
@Override @Override
public void run() { public void run() {
emojiBmp[page] = colorsBitmap; emojiBmp[page] = emojiBitmap;
NotificationCenter.getInstance().postNotificationName(999); NotificationCenter.getInstance().postNotificationName(999);
} }
}); });
return colorsBitmap;
} catch(Throwable x) { } catch(Throwable x) {
FileLog.e("tmessages", "Error loading emoji", x); FileLog.e("tmessages", "Error loading emoji", x);
} }
return null;
} }
private static void loadEmojiAsync(final int page) { private static void loadEmojiAsync(final int page) {
@ -318,7 +329,7 @@ public class Emoji {
private DrawableInfo info; private DrawableInfo info;
boolean fullSize = false; boolean fullSize = false;
private static Paint paint; private static Paint paint;
static { static {
paint = new Paint(); paint = new Paint();
paint.setFlags(Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG); paint.setFlags(Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG);
@ -330,20 +341,20 @@ public class Emoji {
@Override @Override
public void draw(Canvas canvas) { public void draw(Canvas canvas) {
if (emojiBmp[info.page] == null) { EmojiBitmap bitmap = emojiBmp[info.page];
if (bitmap == null) {
loadEmojiAsync(info.page); loadEmojiAsync(info.page);
canvas.drawRect(getBounds(), placeholderPaint); canvas.drawRect(getBounds(), placeholderPaint);
return; return;
} }
Rect b = copyBounds(); int size = fullSize ? bigImgSize : drawImgSize;
int cX = b.centerX(), cY = b.centerY(); float scale = (float)size / (float)emojiFullSize;
b.left = cX - (fullSize ? bigImgSize : drawImgSize) / 2; int offset = (getBounds().width() - size) / 2;
b.right = cX + (fullSize ? bigImgSize : drawImgSize) / 2;
b.top = cY - (fullSize ? bigImgSize : drawImgSize) / 2; canvas.save();
b.bottom = cY + (fullSize ? bigImgSize : drawImgSize) / 2; canvas.scale(scale, scale);
if (!canvas.quickReject(b.left, b.top, b.right, b.bottom, Canvas.EdgeType.AA)) { canvas.drawBitmap(bitmap.colors, info.rect.top * bitmap.width + info.rect.left, bitmap.width, offset, offset, info.rect.right, info.rect.bottom, true, paint);
canvas.drawBitmap(emojiBmp[info.page], info.rect, b, paint); canvas.restore();
}
} }
@Override @Override

View file

@ -54,12 +54,6 @@ public class NativeLoader {
return; return;
} }
try {
System.loadLibrary("jnigraphics");
} catch (Error e) {
FileLog.e("tmessages", e);
}
try { try {
String folder = null; String folder = null;
long libSize = 0; long libSize = 0;

View file

@ -17,7 +17,6 @@ import android.content.SharedPreferences;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Point; import android.graphics.Point;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.net.Uri; import android.net.Uri;
@ -156,7 +155,7 @@ public class Utilities {
public native static long doPQNative(long _what); public native static long doPQNative(long _what);
public native static byte[] aesIgeEncryption(byte[] _what, byte[] _key, byte[] _iv, boolean encrypt, boolean changeIv, int len); public native static byte[] aesIgeEncryption(byte[] _what, byte[] _key, byte[] _iv, boolean encrypt, boolean changeIv, int len);
public native static void aesIgeEncryption2(ByteBuffer _what, byte[] _key, byte[] _iv, boolean encrypt, boolean changeIv, int len); public native static void aesIgeEncryption2(ByteBuffer _what, byte[] _key, byte[] _iv, boolean encrypt, boolean changeIv, int len);
public native static void loadBitmap(String path, Bitmap bitmap, int scale); public native static void loadBitmap(String path, int[] bitmap, int scale, int format, int width, int height);
public static void lockOrientation(Activity activity) { public static void lockOrientation(Activity activity) {
if (prevOrientation != -10) { if (prevOrientation != -10) {

View file

@ -2335,9 +2335,7 @@ public class ChatActivity extends BaseFragment implements SizeNotifierRelativeLa
dayArr.remove(obj); dayArr.remove(obj);
if (dayArr.isEmpty()) { if (dayArr.isEmpty()) {
messagesByDays.remove(obj.dateKey); messagesByDays.remove(obj.dateKey);
if (index != -1) { messages.remove(index);
messages.remove(index);
}
} }
updated = true; updated = true;
} }

View file

@ -31,6 +31,7 @@ import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.MessagesStorage;
import org.telegram.messenger.TLRPC; import org.telegram.messenger.TLRPC;
import org.telegram.messenger.ConnectionsManager; import org.telegram.messenger.ConnectionsManager;
import org.telegram.messenger.FileLog; import org.telegram.messenger.FileLog;
@ -51,6 +52,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.Semaphore;
public class ChatProfileActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, ContactsActivity.ContactsActivityDelegate, PhotoViewer.PhotoViewerProvider { public class ChatProfileActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, ContactsActivity.ContactsActivityDelegate, PhotoViewer.PhotoViewerProvider {
private ListView listView; private ListView listView;
@ -63,6 +65,7 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen
private int totalMediaCount = -1; private int totalMediaCount = -1;
private int onlineCount = -1; private int onlineCount = -1;
private ArrayList<Integer> sortedUsers = new ArrayList<Integer>(); private ArrayList<Integer> sortedUsers = new ArrayList<Integer>();
private TLRPC.Chat currentChat;
private int avatarRow; private int avatarRow;
private int settingsSectionRow; private int settingsSectionRow;
@ -85,12 +88,35 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen
@Override @Override
public boolean onFragmentCreate() { public boolean onFragmentCreate() {
super.onFragmentCreate(); super.onFragmentCreate();
chat_id = getArguments().getInt("chat_id", 0);
currentChat = MessagesController.getInstance().chats.get(chat_id);
if (currentChat == null) {
final Semaphore semaphore = new Semaphore(0);
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
@Override
public void run() {
currentChat = MessagesStorage.getInstance().getChat(chat_id);
semaphore.release();
}
});
try {
semaphore.acquire();
} catch (Exception e) {
FileLog.e("tmessages", e);
}
if (currentChat != null) {
MessagesController.getInstance().chats.put(currentChat.id, currentChat);
} else {
return false;
}
}
NotificationCenter.getInstance().addObserver(this, MessagesController.updateInterfaces); NotificationCenter.getInstance().addObserver(this, MessagesController.updateInterfaces);
NotificationCenter.getInstance().addObserver(this, MessagesController.chatInfoDidLoaded); NotificationCenter.getInstance().addObserver(this, MessagesController.chatInfoDidLoaded);
NotificationCenter.getInstance().addObserver(this, MessagesController.mediaCountDidLoaded); NotificationCenter.getInstance().addObserver(this, MessagesController.mediaCountDidLoaded);
NotificationCenter.getInstance().addObserver(this, MessagesController.closeChats); NotificationCenter.getInstance().addObserver(this, MessagesController.closeChats);
chat_id = getArguments().getInt("chat_id", 0);
updateOnlineCount(); updateOnlineCount();
MessagesController.getInstance().getMediaCount(-chat_id, classGuid, true); MessagesController.getInstance().getMediaCount(-chat_id, classGuid, true);
avatarUpdater.delegate = new AvatarUpdater.AvatarUpdaterDelegate() { avatarUpdater.delegate = new AvatarUpdater.AvatarUpdaterDelegate() {

View file

@ -208,6 +208,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati
}); });
avatarImage = (BackupImageView)fragmentView.findViewById(R.id.settings_avatar_image); avatarImage = (BackupImageView)fragmentView.findViewById(R.id.settings_avatar_image);
avatarImage.setImageResource(R.drawable.group_blue);
nameTextView = (EditText)fragmentView.findViewById(R.id.bubble_input_text); nameTextView = (EditText)fragmentView.findViewById(R.id.bubble_input_text);
nameTextView.setHint(LocaleController.getString("EnterGroupNamePlaceholder", R.string.EnterGroupNamePlaceholder)); nameTextView.setHint(LocaleController.getString("EnterGroupNamePlaceholder", R.string.EnterGroupNamePlaceholder));
@ -304,7 +305,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati
} }
Bundle args2 = new Bundle(); Bundle args2 = new Bundle();
args2.putInt("chat_id", (Integer)args[0]); args2.putInt("chat_id", (Integer)args[0]);
presentFragment(new ChatActivity(args2)); presentFragment(new ChatActivity(args2), true);
} }
}); });
} }

View file

@ -48,7 +48,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
private Bundle currentParams; private Bundle currentParams;
private Timer timeTimer; private Timer timeTimer;
private final Integer timerSync = 1; private static final Integer timerSync = 1;
private volatile int time = 60000; private volatile int time = 60000;
private double lastCurrentTime; private double lastCurrentTime;
private boolean waitingForSms = false; private boolean waitingForSms = false;
@ -130,18 +130,17 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
Utilities.showKeyboard(codeField); Utilities.showKeyboard(codeField);
codeField.requestFocus(); codeField.requestFocus();
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
timeText.setText(String.format("%s 1:00", LocaleController.getString("CallText", R.string.CallText))); timeText.setText(String.format("%s 1:00", LocaleController.getString("CallText", R.string.CallText)));
lastCurrentTime = System.currentTimeMillis(); lastCurrentTime = System.currentTimeMillis();
createTimer();
}
private void createTimer() {
if (timeTimer != null) {
return;
}
timeTimer = new Timer(); timeTimer = new Timer();
timeTimer.schedule(new TimerTask() { timeTimer.schedule(new TimerTask() {
@Override @Override
@ -159,12 +158,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
timeText.setText(String.format("%s %d:%02d", LocaleController.getString("CallText", R.string.CallText), minutes, seconds)); timeText.setText(String.format("%s %d:%02d", LocaleController.getString("CallText", R.string.CallText), minutes, seconds));
} else { } else {
timeText.setText(LocaleController.getString("Calling", R.string.Calling)); timeText.setText(LocaleController.getString("Calling", R.string.Calling));
synchronized(timerSync) { destroyTimer();
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
TLRPC.TL_auth_sendCall req = new TLRPC.TL_auth_sendCall(); TLRPC.TL_auth_sendCall req = new TLRPC.TL_auth_sendCall();
req.phone_number = requestPhone; req.phone_number = requestPhone;
req.phone_code_hash = phoneHash; req.phone_code_hash = phoneHash;
@ -180,6 +174,19 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
}, 0, 1000); }, 0, 1000);
} }
private void destroyTimer() {
try {
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
@Override @Override
public void onNextPressed() { public void onNextPressed() {
if (nextPressed) { if (nextPressed) {
@ -193,16 +200,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
req.phone_number = requestPhone; req.phone_number = requestPhone;
req.phone_code = codeField.getText().toString(); req.phone_code = codeField.getText().toString();
req.phone_code_hash = phoneHash; req.phone_code_hash = phoneHash;
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
if (delegate != null) { if (delegate != null) {
delegate.needShowProgress(); delegate.needShowProgress();
} }
@ -215,19 +213,11 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
if (delegate == null) { if (delegate == null) {
return; return;
} }
delegate.needHideProgress();
nextPressed = false; nextPressed = false;
if (error == null) { if (error == null) {
TLRPC.TL_auth_authorization res = (TLRPC.TL_auth_authorization)response; TLRPC.TL_auth_authorization res = (TLRPC.TL_auth_authorization)response;
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
UserConfig.clearConfig(); UserConfig.clearConfig();
MessagesStorage.getInstance().cleanUp(); MessagesStorage.getInstance().cleanUp();
MessagesController.getInstance().cleanUp(); MessagesController.getInstance().cleanUp();
@ -248,55 +238,9 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
params.putString("phoneHash", phoneHash); params.putString("phoneHash", phoneHash);
params.putString("code", req.phone_code); params.putString("code", req.phone_code);
delegate.setPage(2, true, params, false); delegate.setPage(2, true, params, false);
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
} else { } else {
if (timeTimer == null) { createTimer();
timeTimer = new Timer();
timeTimer.schedule(new TimerTask() {
@Override
public void run() {
double currentTime = System.currentTimeMillis();
double diff = currentTime - lastCurrentTime;
time -= diff;
lastCurrentTime = currentTime;
Utilities.RunOnUIThread(new Runnable() {
@Override
public void run() {
if (time >= 1000) {
int minutes = time / 1000 / 60;
int seconds = time / 1000 - minutes * 60;
timeText.setText(String.format("%s %d:%02d", LocaleController.getString("CallText", R.string.CallText), minutes, seconds));
} else {
timeText.setText(LocaleController.getString("Calling", R.string.Calling));
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
TLRPC.TL_auth_sendCall req = new TLRPC.TL_auth_sendCall();
req.phone_number = requestPhone;
req.phone_code_hash = phoneHash;
ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
@Override
public void run(TLObject response, TLRPC.TL_error error) {
}
}, null, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors | RPCRequest.RPCRequestClassWithoutLogin);
}
}
});
}
}, 0, 1000);
}
if (error.text.contains("PHONE_NUMBER_INVALID")) { if (error.text.contains("PHONE_NUMBER_INVALID")) {
delegate.needShowAlert(LocaleController.getString("InvalidPhoneNumber", R.string.InvalidPhoneNumber)); delegate.needShowAlert(LocaleController.getString("InvalidPhoneNumber", R.string.InvalidPhoneNumber));
} else if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID")) { } else if (error.text.contains("PHONE_CODE_EMPTY") || error.text.contains("PHONE_CODE_INVALID")) {
@ -318,16 +262,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
@Override @Override
public void onBackPressed() { public void onBackPressed() {
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
currentParams = null; currentParams = null;
Utilities.setWaitingForSms(false); Utilities.setWaitingForSms(false);
NotificationCenter.getInstance().removeObserver(this, 998); NotificationCenter.getInstance().removeObserver(this, 998);
@ -339,16 +274,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente
super.onDestroyActivity(); super.onDestroyActivity();
Utilities.setWaitingForSms(false); Utilities.setWaitingForSms(false);
NotificationCenter.getInstance().removeObserver(this, 998); NotificationCenter.getInstance().removeObserver(this, 998);
try { destroyTimer();
synchronized(timerSync) {
if (timeTimer != null) {
timeTimer.cancel();
timeTimer = null;
}
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
waitingForSms = false; waitingForSms = false;
} }

View file

@ -455,6 +455,7 @@ public class ActionBarLayer extends FrameLayout {
LayoutInflater li = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater li = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
actionOverlay = li.inflate(resourceId, null); actionOverlay = li.inflate(resourceId, null);
addView(actionOverlay); addView(actionOverlay);
actionOverlay.setVisibility(GONE);
actionOverlay.setOnClickListener(new OnClickListener() { actionOverlay.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -484,9 +485,12 @@ public class ActionBarLayer extends FrameLayout {
actionOverlay.setVisibility(!isSearchFieldVisible && isBackOverlayVisible ? VISIBLE : GONE); actionOverlay.setVisibility(!isSearchFieldVisible && isBackOverlayVisible ? VISIBLE : GONE);
if (actionOverlay.getVisibility() == VISIBLE) { if (actionOverlay.getVisibility() == VISIBLE) {
ViewGroup.LayoutParams layoutParams = actionOverlay.getLayoutParams(); ViewGroup.LayoutParams layoutParams = actionOverlay.getLayoutParams();
layoutParams.width = widthMeasureSpec - (menu != null ? menu.getMeasuredWidth() : 0); layoutParams.width = LayoutParams.WRAP_CONTENT;
layoutParams.height = LayoutParams.MATCH_PARENT; layoutParams.height = LayoutParams.MATCH_PARENT;
actionOverlay.setLayoutParams(layoutParams); actionOverlay.setLayoutParams(layoutParams);
actionOverlay.measure(widthMeasureSpec, heightMeasureSpec);
layoutParams.width = Math.min(actionOverlay.getMeasuredWidth() + Utilities.dp(4), widthMeasureSpec - (menu != null ? menu.getMeasuredWidth() : 0));
actionOverlay.setLayoutParams(layoutParams);
} }
} }

View file

@ -232,11 +232,11 @@ public class EmojiView extends LinearLayout {
} }
}; };
localObject.setOnClickListener(new View.OnClickListener() { localObject.setOnClickListener(new View.OnClickListener() {
public void onClick(View paramAnonymousView) { public void onClick(View view) {
if (EmojiView.this.listener != null) { if (EmojiView.this.listener != null) {
EmojiView.this.listener.onEmojiSelected(EmojiView.this.convert((Long)paramAnonymousView.getTag())); EmojiView.this.listener.onEmojiSelected(EmojiView.this.convert((Long)view.getTag()));
} }
EmojiView.this.addToRecent((Long)paramAnonymousView.getTag()); EmojiView.this.addToRecent((Long)view.getTag());
} }
}); });
localObject.setBackgroundResource(R.drawable.list_selector); localObject.setBackgroundResource(R.drawable.list_selector);

View file

@ -69,7 +69,6 @@
android:id="@+id/docs_item_thumb" android:id="@+id/docs_item_thumb"
android:layout_width="55dp" android:layout_width="55dp"
android:layout_height="42dp" android:layout_height="42dp"
android:scaleType="centerCrop"
android:layout_marginTop="11dp" android:layout_marginTop="11dp"
android:layout_gravity="top|right"/> android:layout_gravity="top|right"/>

View file

@ -21,8 +21,7 @@
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:id="@+id/settings_avatar_image" android:id="@+id/settings_avatar_image"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"/>
android:src="@drawable/group_blue"/>
<ImageButton <ImageButton
android:id="@+id/settings_change_avatar_button" android:id="@+id/settings_change_avatar_button"

View file

@ -10,7 +10,6 @@
android:layout_width="50dp" android:layout_width="50dp"
android:layout_height="50dp" android:layout_height="50dp"
android:id="@+id/messages_list_row_avatar" android:id="@+id/messages_list_row_avatar"
android:contentDescription=""
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_gravity="top|right"/> android:layout_gravity="top|right"/>

View file

@ -22,7 +22,6 @@
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:layout_width="64dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="64dp"
android:contentDescription=""
android:id="@+id/location_avatar_view" android:id="@+id/location_avatar_view"
android:layout_marginRight="12dp" android:layout_marginRight="12dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"

View file

@ -5,17 +5,20 @@
android:id="@+id/container_view" android:id="@+id/container_view"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout android:layout_width="fill_parent" <FrameLayout
android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:background="#ffffff"> android:background="#ffffff">
<org.telegram.ui.Views.BackupImageView android:layout_height="48dp" <org.telegram.ui.Views.BackupImageView
android:layout_height="48dp"
android:layout_width="48dp" android:layout_width="48dp"
android:id="@+id/avatar_image" android:id="@+id/avatar_image"
android:layout_gravity="right|top"/> android:layout_gravity="right|top"/>
<FrameLayout android:layout_width="fill_parent" <FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_marginLeft="40dp" android:layout_marginLeft="40dp"
android:orientation="vertical" android:orientation="vertical"
@ -23,7 +26,8 @@
android:layout_gravity="top|right" android:layout_gravity="top|right"
android:id="@+id/text_layout"> android:id="@+id/text_layout">
<TextView android:layout_height="wrap_content" <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="right|center" android:gravity="right|center"
android:textSize="15dp" android:textSize="15dp"
@ -34,7 +38,8 @@
android:layout_gravity="top|right" android:layout_gravity="top|right"
android:singleLine="true"/> android:singleLine="true"/>
<TextView android:layout_height="wrap_content" <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="right|center" android:gravity="right|center"
android:textColor="#000000" android:textColor="#000000"
@ -47,7 +52,8 @@
</FrameLayout> </FrameLayout>
<ImageView android:layout_height="40dp" <ImageView
android:layout_height="40dp"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_gravity="left|center" android:layout_gravity="left|center"
android:src="@drawable/ic_profile_cross" android:src="@drawable/ic_profile_cross"

View file

@ -37,7 +37,6 @@
android:layout_width="64dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:scaleType="fitCenter"
android:id="@+id/chat_photo_image"/> android:id="@+id/chat_photo_image"/>
</LinearLayout> </LinearLayout>

View file

@ -14,7 +14,6 @@
android:layout_height="42dp" android:layout_height="42dp"
android:layout_marginLeft="6dp" android:layout_marginLeft="6dp"
android:id="@+id/chat_group_avatar_image" android:id="@+id/chat_group_avatar_image"
android:scaleType="fitCenter"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:layout_marginRight="4dp" android:layout_marginRight="4dp"
android:layout_gravity="bottom"/> android:layout_gravity="bottom"/>
@ -34,7 +33,8 @@
android:id="@+id/shared_layout" android:id="@+id/shared_layout"
android:layout_weight="1"> android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView android:layout_height="42dp" <org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp" android:layout_width="42dp"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>

View file

@ -13,7 +13,6 @@
android:layout_height="42dp" android:layout_height="42dp"
android:layout_marginLeft="6dp" android:layout_marginLeft="6dp"
android:id="@+id/chat_group_avatar_image" android:id="@+id/chat_group_avatar_image"
android:scaleType="fitCenter"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:layout_marginRight="4dp" android:layout_marginRight="4dp"
android:layout_gravity="bottom"/> android:layout_gravity="bottom"/>
@ -38,8 +37,6 @@
android:layout_width="42dp" android:layout_width="42dp"
android:layout_height="42dp" android:layout_height="42dp"
android:background="#40b7c9d7" android:background="#40b7c9d7"
android:src="@drawable/doc_blue"
android:scaleType="center"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>
<org.telegram.ui.Views.TightTextView <org.telegram.ui.Views.TightTextView

View file

@ -14,7 +14,6 @@
android:layout_height="42dp" android:layout_height="42dp"
android:layout_marginLeft="6dp" android:layout_marginLeft="6dp"
android:id="@+id/chat_group_avatar_image" android:id="@+id/chat_group_avatar_image"
android:scaleType="fitCenter"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:layout_gravity="bottom"/> android:layout_gravity="bottom"/>
@ -31,7 +30,6 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_margin="6dp" android:layout_margin="6dp"
android:layout_gravity="top" android:layout_gravity="top"
android:scaleType="centerCrop"
android:id="@+id/chat_photo_image"/> android:id="@+id/chat_photo_image"/>
<LinearLayout <LinearLayout

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout
android:layout_width="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_alignParentRight="true"> android:layout_height="wrap_content"
android:layout_alignParentRight="true">
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:layout_height="48dp" android:layout_height="48dp"

View file

@ -21,7 +21,8 @@
android:id="@+id/shared_layout" android:id="@+id/shared_layout"
android:layout_weight="1"> android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView android:layout_height="42dp" <org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp" android:layout_width="42dp"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>
@ -57,18 +58,21 @@
</FrameLayout> </FrameLayout>
<FrameLayout android:layout_width="wrap_content" <FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="8dp" android:layout_marginLeft="8dp"
android:layout_gravity="top" android:layout_gravity="top"
android:id="@+id/add_contact_view"> android:id="@+id/add_contact_view">
<FrameLayout android:layout_height="54dp" <FrameLayout
android:layout_height="54dp"
android:layout_width="1dp" android:layout_width="1dp"
android:background="#e8e8e8" android:background="#e8e8e8"
android:paddingRight="8dp"/> android:paddingRight="8dp"/>
<ImageView android:layout_width="38dp" <ImageView
android:layout_width="38dp"
android:layout_height="54dp" android:layout_height="54dp"
android:src="@drawable/ic_ab_add_member" android:src="@drawable/ic_ab_add_member"
android:scaleType="center" android:scaleType="center"
@ -79,4 +83,5 @@
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>

View file

@ -29,7 +29,6 @@
android:layout_height="42dp" android:layout_height="42dp"
android:background="#40b7c9d7" android:background="#40b7c9d7"
android:src="@drawable/doc_blue" android:src="@drawable/doc_blue"
android:scaleType="center"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>
<TextView <TextView

View file

@ -22,7 +22,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_margin="6dp" android:layout_margin="6dp"
android:layout_gravity="top" android:layout_gravity="top"
android:scaleType="centerCrop"
android:minHeight="100dp" android:minHeight="100dp"
android:minWidth="100dp" android:minWidth="100dp"
android:id="@+id/chat_photo_image"/> android:id="@+id/chat_photo_image"/>

View file

@ -16,19 +16,22 @@
android:layout_gravity="top|right" android:layout_gravity="top|right"
android:id="@+id/chat_bubble_layout"> android:id="@+id/chat_bubble_layout">
<FrameLayout android:layout_width="wrap_content" <FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"
android:layout_gravity="top" android:layout_gravity="top"
android:id="@+id/add_contact_view"> android:id="@+id/add_contact_view">
<FrameLayout android:layout_height="54dp" <FrameLayout
android:layout_height="54dp"
android:layout_width="1dp" android:layout_width="1dp"
android:background="#aa70b15c" android:background="#aa70b15c"
android:paddingLeft="8dp" android:paddingLeft="8dp"
android:layout_gravity="right"/> android:layout_gravity="right"/>
<ImageView android:layout_width="40dp" <ImageView
android:layout_width="40dp"
android:layout_height="54dp" android:layout_height="54dp"
android:src="@drawable/ic_ab_add_member" android:src="@drawable/ic_ab_add_member"
android:scaleType="center" android:scaleType="center"
@ -38,16 +41,19 @@
</FrameLayout> </FrameLayout>
<FrameLayout android:layout_height="58dp" <FrameLayout
android:layout_height="58dp"
android:layout_width="0dp" android:layout_width="0dp"
android:id="@+id/shared_layout" android:id="@+id/shared_layout"
android:layout_weight="1"> android:layout_weight="1">
<org.telegram.ui.Views.BackupImageView android:layout_height="42dp" <org.telegram.ui.Views.BackupImageView
android:layout_height="42dp"
android:layout_width="42dp" android:layout_width="42dp"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>
<TextView android:layout_height="wrap_content" <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:paddingLeft="51dp" android:paddingLeft="51dp"
@ -59,7 +65,8 @@
android:ellipsize="end" android:ellipsize="end"
android:id="@+id/chat_user_group_name"/> android:id="@+id/chat_user_group_name"/>
<TextView android:layout_height="wrap_content" <TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:paddingLeft="51dp" android:paddingLeft="51dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
@ -68,7 +75,8 @@
android:maxLines="1" android:maxLines="1"
android:id="@+id/phone_text_view"/> android:id="@+id/phone_text_view"/>
<LinearLayout android:layout_width="wrap_content" <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/chat_time_layout" android:id="@+id/chat_time_layout"
android:layout_gravity="bottom|right"> android:layout_gravity="bottom|right">

View file

@ -80,8 +80,6 @@
android:layout_width="42dp" android:layout_width="42dp"
android:layout_height="42dp" android:layout_height="42dp"
android:background="#408ed057" android:background="#408ed057"
android:src="@drawable/doc_green"
android:scaleType="center"
android:id="@+id/contact_avatar"/> android:id="@+id/contact_avatar"/>
<org.telegram.ui.Views.TightTextView <org.telegram.ui.Views.TightTextView

View file

@ -39,7 +39,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_margin="6dp" android:layout_margin="6dp"
android:layout_gravity="top" android:layout_gravity="top"
android:scaleType="centerCrop"
android:minHeight="100dp" android:minHeight="100dp"
android:minWidth="100dp" android:minWidth="100dp"
android:id="@+id/chat_photo_image"/> android:id="@+id/chat_photo_image"/>

View file

@ -59,7 +59,6 @@
android:id="@+id/docs_item_thumb" android:id="@+id/docs_item_thumb"
android:layout_width="55dp" android:layout_width="55dp"
android:layout_height="42dp" android:layout_height="42dp"
android:scaleType="centerCrop"
android:layout_marginTop="11dp" android:layout_marginTop="11dp"
android:layout_gravity="top|left"/> android:layout_gravity="top|left"/>

View file

@ -21,8 +21,7 @@
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:id="@+id/settings_avatar_image" android:id="@+id/settings_avatar_image"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"/>
android:src="@drawable/group_blue"/>
<ImageButton <ImageButton
android:id="@+id/settings_change_avatar_button" android:id="@+id/settings_change_avatar_button"

View file

@ -10,7 +10,6 @@
android:layout_width="50dp" android:layout_width="50dp"
android:layout_height="50dp" android:layout_height="50dp"
android:id="@+id/messages_list_row_avatar" android:id="@+id/messages_list_row_avatar"
android:contentDescription=""
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_gravity="top"/> android:layout_gravity="top"/>

View file

@ -22,7 +22,6 @@
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:layout_width="64dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="64dp"
android:contentDescription=""
android:id="@+id/location_avatar_view" android:id="@+id/location_avatar_view"
android:layout_marginLeft="12dp" android:layout_marginLeft="12dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"

View file

@ -6,7 +6,6 @@
<org.telegram.ui.Views.BackupImageView <org.telegram.ui.Views.BackupImageView
android:layout_height="100dp" android:layout_height="100dp"
android:layout_width="100dp" android:layout_width="100dp"
android:scaleType="centerCrop"
android:id="@+id/image" android:id="@+id/image"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="#5A475866"/> android:background="#5A475866"/>