Commit 70882c5d authored by DrKLO's avatar DrKLO

Avoid sending file twice (photos, documents, videos), move notifications...

Avoid sending file twice (photos, documents, videos), move notifications settings from profiles to other view
parent f6eac5cb
...@@ -81,7 +81,7 @@ android { ...@@ -81,7 +81,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 261 versionCode 262
versionName "1.5.6" versionName "1.5.7"
} }
} }
...@@ -211,10 +211,10 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. ...@@ -211,10 +211,10 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
if (paused) { if (paused) {
lastPauseTime = System.currentTimeMillis(); lastPauseTime = System.currentTimeMillis();
nextSleepTimeout = 30000; nextSleepTimeout = 30000;
FileLog.e("tmessages", "wakeup network in background by received push"); FileLog.e("tmessages", "wakeup network in background");
} else if (lastPauseTime != 0) { } else if (lastPauseTime != 0) {
lastPauseTime = System.currentTimeMillis(); lastPauseTime = System.currentTimeMillis();
FileLog.e("tmessages", "reset sleep timeout by received push"); FileLog.e("tmessages", "reset sleep timeout");
} }
} }
}); });
...@@ -641,9 +641,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. ...@@ -641,9 +641,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
if (exist.downloadConnection != null) { if (exist.downloadConnection != null) {
exist.downloadConnection.suspendConnection(true); exist.downloadConnection.suspendConnection(true);
} }
if (dc == 1) { updateDcSettings(dc);
updateDcSettings(1);
}
} }
} }
}); });
...@@ -1062,7 +1060,8 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. ...@@ -1062,7 +1060,8 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
for (int i = 0; i < runningRequests.size(); i++) { for (int i = 0; i < runningRequests.size(); i++) {
RPCRequest request = runningRequests.get(i); RPCRequest request = runningRequests.get(i);
if (updatingDcSettings && datacenters.size() > 1 && request.rawRequest instanceof TLRPC.TL_help_getConfig) { if (datacenters.size() > 1) {
if (updatingDcSettings && request.rawRequest instanceof TLRPC.TL_help_getConfig) {
if (updatingDcStartTime < currentTime - 60) { if (updatingDcStartTime < currentTime - 60) {
FileLog.e("tmessages", "move TL_help_getConfig to requestQueue"); FileLog.e("tmessages", "move TL_help_getConfig to requestQueue");
requestQueue.add(request); requestQueue.add(request);
...@@ -1070,6 +1069,9 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. ...@@ -1070,6 +1069,9 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
i--; i--;
continue; continue;
} }
} else if (request.rawRequest instanceof TLRPC.TL_auth_sendCode || request.rawRequest instanceof TLRPC.TL_auth_signIn || request.rawRequest instanceof TLRPC.TL_auth_signUp) {
}
} }
int datacenterId = request.runningDatacenterId; int datacenterId = request.runningDatacenterId;
......
...@@ -12,7 +12,6 @@ import android.graphics.Bitmap; ...@@ -12,7 +12,6 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.os.Build; import android.os.Build;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.util.Log;
import org.telegram.ui.ApplicationLoader; import org.telegram.ui.ApplicationLoader;
...@@ -79,12 +78,7 @@ public class FileLoadOperation { ...@@ -79,12 +78,7 @@ public class FileLoadOperation {
} }
public FileLoadOperation(TLRPC.Video videoLocation) { public FileLoadOperation(TLRPC.Video videoLocation) {
if (videoLocation instanceof TLRPC.TL_video) { if (videoLocation instanceof TLRPC.TL_videoEncrypted) {
location = new TLRPC.TL_inputVideoFileLocation();
datacenter_id = videoLocation.dc_id;
location.id = videoLocation.id;
location.access_hash = videoLocation.access_hash;
} else if (videoLocation instanceof TLRPC.TL_videoEncrypted) {
location = new TLRPC.TL_inputEncryptedFileLocation(); location = new TLRPC.TL_inputEncryptedFileLocation();
location.id = videoLocation.id; location.id = videoLocation.id;
location.access_hash = videoLocation.access_hash; location.access_hash = videoLocation.access_hash;
...@@ -92,6 +86,11 @@ public class FileLoadOperation { ...@@ -92,6 +86,11 @@ public class FileLoadOperation {
iv = new byte[32]; iv = new byte[32];
System.arraycopy(videoLocation.iv, 0, iv, 0, iv.length); System.arraycopy(videoLocation.iv, 0, iv, 0, iv.length);
key = videoLocation.key; key = videoLocation.key;
} else if (videoLocation instanceof TLRPC.TL_video) {
location = new TLRPC.TL_inputVideoFileLocation();
datacenter_id = videoLocation.dc_id;
location.id = videoLocation.id;
location.access_hash = videoLocation.access_hash;
} }
ext = ".mp4"; ext = ".mp4";
} }
...@@ -115,12 +114,7 @@ public class FileLoadOperation { ...@@ -115,12 +114,7 @@ public class FileLoadOperation {
} }
public FileLoadOperation(TLRPC.Document documentLocation) { public FileLoadOperation(TLRPC.Document documentLocation) {
if (documentLocation instanceof TLRPC.TL_document) { if (documentLocation instanceof TLRPC.TL_documentEncrypted) {
location = new TLRPC.TL_inputDocumentFileLocation();
datacenter_id = documentLocation.dc_id;
location.id = documentLocation.id;
location.access_hash = documentLocation.access_hash;
} else if (documentLocation instanceof TLRPC.TL_documentEncrypted) {
location = new TLRPC.TL_inputEncryptedFileLocation(); location = new TLRPC.TL_inputEncryptedFileLocation();
location.id = documentLocation.id; location.id = documentLocation.id;
location.access_hash = documentLocation.access_hash; location.access_hash = documentLocation.access_hash;
...@@ -128,6 +122,11 @@ public class FileLoadOperation { ...@@ -128,6 +122,11 @@ public class FileLoadOperation {
iv = new byte[32]; iv = new byte[32];
System.arraycopy(documentLocation.iv, 0, iv, 0, iv.length); System.arraycopy(documentLocation.iv, 0, iv, 0, iv.length);
key = documentLocation.key; key = documentLocation.key;
} else if (documentLocation instanceof TLRPC.TL_document) {
location = new TLRPC.TL_inputDocumentFileLocation();
datacenter_id = documentLocation.dc_id;
location.id = documentLocation.id;
location.access_hash = documentLocation.access_hash;
} }
ext = documentLocation.file_name; ext = documentLocation.file_name;
int idx = -1; int idx = -1;
...@@ -675,6 +674,9 @@ public class FileLoadOperation { ...@@ -675,6 +674,9 @@ public class FileLoadOperation {
delegate.didFailedLoadingFile(FileLoadOperation.this); delegate.didFailedLoadingFile(FileLoadOperation.this);
} }
} else { } else {
if (location != null) {
FileLog.e("tmessages", "" + location + " id = " + location.id + " access_hash = " + location.access_hash + " volume_id = " + location.local_id + " secret = " + location.secret);
}
cleanup(); cleanup();
delegate.didFailedLoadingFile(FileLoadOperation.this); delegate.didFailedLoadingFile(FileLoadOperation.this);
} }
......
...@@ -97,6 +97,8 @@ public class MessagesStorage { ...@@ -97,6 +97,8 @@ public class MessagesStorage {
database.executeFast("CREATE TABLE user_contacts_v6(uid INTEGER PRIMARY KEY, fname TEXT, sname TEXT)").stepThis().dispose(); database.executeFast("CREATE TABLE user_contacts_v6(uid INTEGER PRIMARY KEY, fname TEXT, sname TEXT)").stepThis().dispose();
database.executeFast("CREATE TABLE user_phones_v6(uid INTEGER, phone TEXT, sphone TEXT, deleted INTEGER, PRIMARY KEY (uid, phone))").stepThis().dispose(); database.executeFast("CREATE TABLE user_phones_v6(uid INTEGER, phone TEXT, sphone TEXT, deleted INTEGER, PRIMARY KEY (uid, phone))").stepThis().dispose();
database.executeFast("CREATE TABLE sent_files_v2(uid TEXT, type INTEGER, data BLOB, PRIMARY KEY (uid, type))").stepThis().dispose();
database.executeFast("CREATE INDEX IF NOT EXISTS mid_idx_randoms ON randoms(mid);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS mid_idx_randoms ON randoms(mid);").stepThis().dispose();
database.executeFast("CREATE INDEX IF NOT EXISTS sphone_deleted_idx_user_phones ON user_phones_v6(sphone, deleted);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS sphone_deleted_idx_user_phones ON user_phones_v6(sphone, deleted);").stepThis().dispose();
...@@ -166,6 +168,8 @@ public class MessagesStorage { ...@@ -166,6 +168,8 @@ public class MessagesStorage {
database.executeFast("CREATE INDEX IF NOT EXISTS sphone_deleted_idx_user_phones ON user_phones_v6(sphone, deleted);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS sphone_deleted_idx_user_phones ON user_phones_v6(sphone, deleted);").stepThis().dispose();
database.executeFast("CREATE INDEX IF NOT EXISTS mid_idx_randoms ON randoms(mid);").stepThis().dispose(); database.executeFast("CREATE INDEX IF NOT EXISTS mid_idx_randoms ON randoms(mid);").stepThis().dispose();
database.executeFast("CREATE TABLE IF NOT EXISTS sent_files_v2(uid TEXT, type INTEGER, data BLOB, PRIMARY KEY (uid, type))").stepThis().dispose();
} }
} catch (Exception e) { } catch (Exception e) {
FileLog.e("tmessages", e); FileLog.e("tmessages", e);
...@@ -1435,6 +1439,73 @@ public class MessagesStorage { ...@@ -1435,6 +1439,73 @@ public class MessagesStorage {
} }
} }
public TLObject getSentFile(final String path, final int type) {
if (path == null) {
return null;
}
final Semaphore semaphore = new Semaphore(0);
final ArrayList<TLObject> result = new ArrayList<TLObject>();
storageQueue.postRunnable(new Runnable() {
@Override
public void run() {
try {
String id = Utilities.MD5(path);
if (id != null) {
SQLiteCursor cursor = database.queryFinalized(String.format(Locale.US, "SELECT data FROM sent_files_v2 WHERE uid = '%s' AND type = %d", id, type));
if (cursor.next()) {
byte[] fileData = cursor.byteArrayValue(0);
if (fileData != null) {
SerializedData data = new SerializedData(fileData);
TLObject file = TLClassStore.Instance().TLdeserialize(data, data.readInt32());
if (file != null) {
result.add(file);
}
}
}
cursor.dispose();
}
} catch (Exception e) {
FileLog.e("tmessages", e);
} finally {
semaphore.release();
}
}
});
try {
semaphore.acquire();
} catch (Exception e) {
FileLog.e("tmessages", e);
}
return !result.isEmpty() ? result.get(0) : null;
}
public void putSentFile(final String path, final TLObject file, final int type) {
if (path == null || file == null) {
return;
}
storageQueue.postRunnable(new Runnable() {
@Override
public void run() {
try {
String id = Utilities.MD5(path);
if (id != null) {
SQLitePreparedStatement state = database.executeFast("REPLACE INTO sent_files_v2 VALUES(?, ?, ?)");
state.requery();
SerializedData data = new SerializedData();
file.serializeToStream(data);
state.bindString(1, id);
state.bindInteger(2, type);
state.bindByteArray(3, data.toByteArray());
state.step();
state.dispose();
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
});
}
public void updateEncryptedChatTTL(final TLRPC.EncryptedChat chat) { public void updateEncryptedChatTTL(final TLRPC.EncryptedChat chat) {
if (chat == null) { if (chat == null) {
return; return;
......
...@@ -8826,7 +8826,7 @@ public class TLRPC { ...@@ -8826,7 +8826,7 @@ public class TLRPC {
} }
} }
public static class TL_documentEncrypted extends Document { public static class TL_documentEncrypted extends TL_document {
public static int constructor = 0x55555556; public static int constructor = 0x55555556;
...@@ -8860,7 +8860,7 @@ public class TLRPC { ...@@ -8860,7 +8860,7 @@ public class TLRPC {
} }
} }
public static class TL_videoEncrypted extends Video { public static class TL_videoEncrypted extends TL_video {
public static int constructor = 0x55555553; public static int constructor = 0x55555553;
......
...@@ -1003,4 +1003,8 @@ public class Utilities { ...@@ -1003,4 +1003,8 @@ public class Utilities {
UpdateManager.register(context, BuildVars.HOCKEY_APP_HASH); UpdateManager.register(context, BuildVars.HOCKEY_APP_HASH);
} }
} }
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
} }
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
package org.telegram.ui.Adapters; package org.telegram.ui.Adapters;
import android.database.DataSetObserver;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
...@@ -38,4 +39,11 @@ public class BaseFragmentAdapter extends BaseAdapter { ...@@ -38,4 +39,11 @@ public class BaseFragmentAdapter extends BaseAdapter {
public View getView(int i, View view, ViewGroup viewGroup) { public View getView(int i, View view, ViewGroup viewGroup) {
return null; return null;
} }
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
} }
...@@ -22,6 +22,7 @@ import org.telegram.messenger.FileLog; ...@@ -22,6 +22,7 @@ import org.telegram.messenger.FileLog;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
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.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenu;
import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem;
...@@ -321,7 +322,7 @@ public class CountrySelectActivity extends BaseFragment { ...@@ -321,7 +322,7 @@ public class CountrySelectActivity extends BaseFragment {
}); });
} }
private class SearchAdapter extends BaseAdapter { private class SearchAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public SearchAdapter(Context context) { public SearchAdapter(Context context) {
......
...@@ -20,7 +20,6 @@ import android.view.LayoutInflater; ...@@ -20,7 +20,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
...@@ -28,6 +27,7 @@ import org.telegram.messenger.FileLog; ...@@ -28,6 +27,7 @@ import org.telegram.messenger.FileLog;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
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.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenu;
import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem;
...@@ -387,7 +387,7 @@ public class DocumentSelectActivity extends BaseFragment { ...@@ -387,7 +387,7 @@ public class DocumentSelectActivity extends BaseFragment {
return LocaleController.formatString("FreeOfTotal", R.string.FreeOfTotal, Utilities.formatFileSize(free), Utilities.formatFileSize(total)); return LocaleController.formatString("FreeOfTotal", R.string.FreeOfTotal, Utilities.formatFileSize(free), Utilities.formatFileSize(total));
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -10,6 +10,7 @@ package org.telegram.ui; ...@@ -10,6 +10,7 @@ package org.telegram.ui;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.database.DataSetObserver;
import android.os.Bundle; import android.os.Bundle;
import android.os.Parcelable; import android.os.Parcelable;
import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerAdapter;
...@@ -283,5 +284,12 @@ public class IntroActivity extends Activity { ...@@ -283,5 +284,12 @@ public class IntroActivity extends Activity {
@Override @Override
public void startUpdate(View arg0) { public void startUpdate(View arg0) {
} }
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
} }
} }
...@@ -16,7 +16,6 @@ import android.view.View; ...@@ -16,7 +16,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
...@@ -25,6 +24,7 @@ import org.telegram.messenger.FileLog; ...@@ -25,6 +24,7 @@ import org.telegram.messenger.FileLog;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
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.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenu;
import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem;
...@@ -35,11 +35,11 @@ import java.util.Timer; ...@@ -35,11 +35,11 @@ import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
public class LanguageSelectActivity extends BaseFragment { public class LanguageSelectActivity extends BaseFragment {
private BaseAdapter listAdapter; private BaseFragmentAdapter listAdapter;
private ListView listView; private ListView listView;
private boolean searchWas; private boolean searchWas;
private boolean searching; private boolean searching;
private BaseAdapter searchListViewAdapter; private BaseFragmentAdapter searchListViewAdapter;
private TextView emptyTextView; private TextView emptyTextView;
private Timer searchTimer; private Timer searchTimer;
...@@ -265,7 +265,7 @@ public class LanguageSelectActivity extends BaseFragment { ...@@ -265,7 +265,7 @@ public class LanguageSelectActivity extends BaseFragment {
}); });
} }
private class SearchAdapter extends BaseAdapter { private class SearchAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public SearchAdapter(Context context) { public SearchAdapter(Context context) {
...@@ -341,7 +341,7 @@ public class LanguageSelectActivity extends BaseFragment { ...@@ -341,7 +341,7 @@ public class LanguageSelectActivity extends BaseFragment {
} }
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -20,7 +20,6 @@ import android.view.ViewTreeObserver; ...@@ -20,7 +20,6 @@ import android.view.ViewTreeObserver;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView; import android.widget.GridView;
import android.widget.TextView; import android.widget.TextView;
...@@ -32,6 +31,7 @@ import org.telegram.messenger.MessagesController; ...@@ -32,6 +31,7 @@ import org.telegram.messenger.MessagesController;
import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.objects.PhotoObject; import org.telegram.objects.PhotoObject;
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.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
...@@ -347,7 +347,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -347,7 +347,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
} }
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -17,7 +17,6 @@ import android.view.View; ...@@ -17,7 +17,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
...@@ -33,6 +32,7 @@ import org.telegram.messenger.NotificationCenter; ...@@ -33,6 +32,7 @@ import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Adapters.BaseFragmentAdapter;
import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Cells.ChatOrUserCell;
import org.telegram.ui.Cells.DialogCell; import org.telegram.ui.Cells.DialogCell;
import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarLayer;
...@@ -558,7 +558,7 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter ...@@ -558,7 +558,7 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter
} }
} }
private class MessagesAdapter extends BaseAdapter { private class MessagesAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public MessagesAdapter(Context context) { public MessagesAdapter(Context context) {
......
...@@ -18,7 +18,6 @@ import android.view.ViewGroup; ...@@ -18,7 +18,6 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver; import android.view.ViewTreeObserver;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.GridView; import android.widget.GridView;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -32,6 +31,7 @@ import org.telegram.messenger.R; ...@@ -32,6 +31,7 @@ import org.telegram.messenger.R;
import org.telegram.messenger.TLRPC; import org.telegram.messenger.TLRPC;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.objects.MessageObject; import org.telegram.objects.MessageObject;
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.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenu;
import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
...@@ -441,7 +441,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen ...@@ -441,7 +441,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen
} }
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -1723,7 +1723,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat ...@@ -1723,7 +1723,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
if (velocityTracker != null) { if (velocityTracker != null) {
velocityTracker.addMovement(ev); velocityTracker.addMovement(ev);
} }
if (canDragDown && !draggingDown && scale == 1 && Math.abs(ev.getY() - dragY) >= Utilities.dp(30)) { float dx = Math.abs(ev.getX() - moveStartX);
float dy = Math.abs(ev.getY() - dragY);
if (canDragDown && !draggingDown && scale == 1 && dy >= Utilities.dp(30) && dy / 2 > dx) {
draggingDown = true; draggingDown = true;
moving = false; moving = false;
dragY = ev.getY(); dragY = ev.getY();
......
...@@ -28,7 +28,6 @@ import android.view.MotionEvent; ...@@ -28,7 +28,6 @@ import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
...@@ -53,6 +52,7 @@ import org.telegram.messenger.UserConfig; ...@@ -53,6 +52,7 @@ import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.objects.MessageObject; import org.telegram.objects.MessageObject;
import org.telegram.objects.PhotoObject; import org.telegram.objects.PhotoObject;
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.AvatarUpdater; import org.telegram.ui.Views.AvatarUpdater;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
...@@ -636,7 +636,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ...@@ -636,7 +636,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
} }
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -16,7 +16,6 @@ import android.view.LayoutInflater; ...@@ -16,7 +16,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
...@@ -30,6 +29,7 @@ import org.telegram.messenger.NotificationCenter; ...@@ -30,6 +29,7 @@ import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Adapters.BaseFragmentAdapter;
import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Cells.ChatOrUserCell;
import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarLayer;
import org.telegram.ui.Views.ActionBar.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenu;
...@@ -276,7 +276,7 @@ public class SettingsBlockedUsers extends BaseFragment implements NotificationCe ...@@ -276,7 +276,7 @@ public class SettingsBlockedUsers extends BaseFragment implements NotificationCe
}, null, true, RPCRequest.RPCRequestClassGeneric); }, null, true, RPCRequest.RPCRequestClassGeneric);
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -22,7 +22,6 @@ import android.view.LayoutInflater; ...@@ -22,7 +22,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
...@@ -37,6 +36,7 @@ import org.telegram.messenger.MessagesController; ...@@ -37,6 +36,7 @@ import org.telegram.messenger.MessagesController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
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;
...@@ -396,7 +396,7 @@ public class SettingsNotificationsActivity extends BaseFragment { ...@@ -396,7 +396,7 @@ public class SettingsNotificationsActivity extends BaseFragment {
} }
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -24,7 +24,6 @@ import android.view.View; ...@@ -24,7 +24,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewTreeObserver; import android.view.ViewTreeObserver;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
...@@ -42,6 +41,7 @@ import org.telegram.messenger.R; ...@@ -42,6 +41,7 @@ import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.objects.PhotoObject; import org.telegram.objects.PhotoObject;
import org.telegram.ui.Adapters.BaseFragmentAdapter;
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.HorizontalListView; import org.telegram.ui.Views.HorizontalListView;
...@@ -111,7 +111,14 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica ...@@ -111,7 +111,14 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica
boolean done; boolean done;
TLRPC.WallPaper wallPaper = wallpappersByIds.get(selectedBackground); TLRPC.WallPaper wallPaper = wallpappersByIds.get(selectedBackground);
if (wallPaper != null && wallPaper.id != 1000001 && wallPaper instanceof TLRPC.TL_wallPaper) { if (wallPaper != null && wallPaper.id != 1000001 && wallPaper instanceof TLRPC.TL_wallPaper) {
TLRPC.PhotoSize size = PhotoObject.getClosestPhotoSizeWithSize(wallPaper.sizes, Utilities.dp(320), Utilities.dp(480)); int width = Utilities.displaySize.x;
int height = Utilities.displaySize.y;
if (width > height) {
int temp = width;
width = height;
height = temp;
}
TLRPC.PhotoSize size = PhotoObject.getClosestPhotoSizeWithSize(wallPaper.sizes, width, height);
String fileName = size.location.volume_id + "_" + size.location.local_id + ".jpg"; String fileName = size.location.volume_id + "_" + size.location.local_id + ".jpg";
File f = new File(Utilities.getCacheDir(), fileName); File f = new File(Utilities.getCacheDir(), fileName);
File toFile = new File(ApplicationLoader.applicationContext.getFilesDir(), "wallpaper.jpg"); File toFile = new File(ApplicationLoader.applicationContext.getFilesDir(), "wallpaper.jpg");
...@@ -254,7 +261,14 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica ...@@ -254,7 +261,14 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica
private void processSelectedBackground() { private void processSelectedBackground() {
TLRPC.WallPaper wallPaper = wallpappersByIds.get(selectedBackground); TLRPC.WallPaper wallPaper = wallpappersByIds.get(selectedBackground);
if (selectedBackground != -1 && selectedBackground != 1000001 && wallPaper != null && wallPaper instanceof TLRPC.TL_wallPaper) { if (selectedBackground != -1 && selectedBackground != 1000001 && wallPaper != null && wallPaper instanceof TLRPC.TL_wallPaper) {
TLRPC.PhotoSize size = PhotoObject.getClosestPhotoSizeWithSize(wallPaper.sizes, Utilities.dp(320), Utilities.dp(480)); int width = Utilities.displaySize.x;
int height = Utilities.displaySize.y;
if (width > height) {
int temp = width;
width = height;
height = temp;
}
TLRPC.PhotoSize size = PhotoObject.getClosestPhotoSizeWithSize(wallPaper.sizes, width, height);
String fileName = size.location.volume_id + "_" + size.location.local_id + ".jpg"; String fileName = size.location.volume_id + "_" + size.location.local_id + ".jpg";
File f = new File(Utilities.getCacheDir(), fileName); File f = new File(Utilities.getCacheDir(), fileName);
if (!f.exists()) { if (!f.exists()) {
...@@ -435,7 +449,7 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica ...@@ -435,7 +449,7 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica
fixLayout(); fixLayout();
} }
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseFragmentAdapter {
private Context mContext; private Context mContext;
public ListAdapter(Context context) { public ListAdapter(Context context) {
......
...@@ -170,7 +170,7 @@ public class ActionBar extends FrameLayout { ...@@ -170,7 +170,7 @@ public class ActionBar extends FrameLayout {
@Override @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Utilities.dp(40), MeasureSpec.EXACTLY)); super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Utilities.dp(40), MeasureSpec.EXACTLY));
} else { } else {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Utilities.dp(48), MeasureSpec.EXACTLY)); super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(Utilities.dp(48), MeasureSpec.EXACTLY));
......
...@@ -64,6 +64,7 @@ public class ActionBarActivity extends Activity { ...@@ -64,6 +64,7 @@ public class ActionBarActivity extends Activity {
private boolean maybeStartTracking = false; private boolean maybeStartTracking = false;
protected boolean startedTracking = false; protected boolean startedTracking = false;
private int startedTrackingX; private int startedTrackingX;
private int startedTrackingY;
protected boolean animationInProgress = false; protected boolean animationInProgress = false;
private VelocityTracker velocityTracker = null; private VelocityTracker velocityTracker = null;
private boolean beginTrackingSent = false; private boolean beginTrackingSent = false;
...@@ -272,6 +273,7 @@ public class ActionBarActivity extends Activity { ...@@ -272,6 +273,7 @@ public class ActionBarActivity extends Activity {
startedTrackingPointerId = ev.getPointerId(0); startedTrackingPointerId = ev.getPointerId(0);
maybeStartTracking = true; maybeStartTracking = true;
startedTrackingX = (int) ev.getX(); startedTrackingX = (int) ev.getX();
startedTrackingY = (int) ev.getY();
if (velocityTracker != null) { if (velocityTracker != null) {
velocityTracker.clear(); velocityTracker.clear();
} }
...@@ -280,8 +282,9 @@ public class ActionBarActivity extends Activity { ...@@ -280,8 +282,9 @@ public class ActionBarActivity extends Activity {
velocityTracker = VelocityTracker.obtain(); velocityTracker = VelocityTracker.obtain();
} }
int dx = Math.max(0, (int) (ev.getX() - startedTrackingX)); int dx = Math.max(0, (int) (ev.getX() - startedTrackingX));
int dy = Math.abs((int)ev.getY() - startedTrackingY);
velocityTracker.addMovement(ev); velocityTracker.addMovement(ev);
if (maybeStartTracking && !startedTracking && dx >= Utilities.dp(10)) { if (maybeStartTracking && !startedTracking && dx >= Utilities.dp(10) && Math.abs(dx) / 3 > dy) {
prepareForMoving(ev); prepareForMoving(ev);
} else if (startedTracking) { } else if (startedTracking) {
if (!beginTrackingSent) { if (!beginTrackingSent) {
...@@ -435,7 +438,7 @@ public class ActionBarActivity extends Activity { ...@@ -435,7 +438,7 @@ public class ActionBarActivity extends Activity {
int height = 0; int height = 0;
if (actionBar.getVisibility() == View.VISIBLE) { if (actionBar.getVisibility() == View.VISIBLE) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(this) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
height = Utilities.dp(40); height = Utilities.dp(40);
} else { } else {
height = Utilities.dp(48); height = Utilities.dp(48);
...@@ -660,7 +663,6 @@ public class ActionBarActivity extends Activity { ...@@ -660,7 +663,6 @@ public class ActionBarActivity extends Activity {
public boolean onKeyUp(int keyCode, KeyEvent event) { public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU && !checkTransitionAnimation() && !startedTracking) { if (keyCode == KeyEvent.KEYCODE_MENU && !checkTransitionAnimation() && !startedTracking) {
actionBar.onMenuButtonPressed(); actionBar.onMenuButtonPressed();
return true;
} }
return super.onKeyUp(keyCode, event); return super.onKeyUp(keyCode, event);
} }
......
...@@ -107,7 +107,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -107,7 +107,7 @@ public class ActionBarLayer extends FrameLayout {
private void positionLogoImage(int height) { private void positionLogoImage(int height) {
if (logoImageView != null) { if (logoImageView != null) {
LayoutParams layoutParams = (LayoutParams) logoImageView.getLayoutParams(); LayoutParams layoutParams = (LayoutParams) logoImageView.getLayoutParams();
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
layoutParams.width = (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f); layoutParams.width = (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f);
layoutParams.height = (int)(logoImageView.getDrawable().getIntrinsicHeight() / 1.3f); layoutParams.height = (int)(logoImageView.getDrawable().getIntrinsicHeight() / 1.3f);
layoutParams.setMargins(Utilities.dp(12), (height - layoutParams.height) / 2, 0, 0); layoutParams.setMargins(Utilities.dp(12), (height - layoutParams.height) / 2, 0, 0);
...@@ -123,7 +123,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -123,7 +123,7 @@ public class ActionBarLayer extends FrameLayout {
private void positionTitle(int width, int height) { private void positionTitle(int width, int height) {
int offset = Utilities.dp(2); int offset = Utilities.dp(2);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
offset = Utilities.dp(1); offset = Utilities.dp(1);
} }
int maxTextWidth = 0; int maxTextWidth = 0;
...@@ -131,7 +131,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -131,7 +131,7 @@ public class ActionBarLayer extends FrameLayout {
LayoutParams layoutParams = null; LayoutParams layoutParams = null;
if (titleTextView != null && titleTextView.getVisibility() == VISIBLE) { if (titleTextView != null && titleTextView.getVisibility() == VISIBLE) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
titleTextView.setTextSize(16); titleTextView.setTextSize(16);
} else { } else {
titleTextView.setTextSize(18); titleTextView.setTextSize(18);
...@@ -146,7 +146,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -146,7 +146,7 @@ public class ActionBarLayer extends FrameLayout {
maxTextWidth = titleTextView.getMeasuredWidth(); maxTextWidth = titleTextView.getMeasuredWidth();
} }
if (subTitleTextView != null && subTitleTextView.getVisibility() == VISIBLE) { if (subTitleTextView != null && subTitleTextView.getVisibility() == VISIBLE) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
subTitleTextView.setTextSize(12); subTitleTextView.setTextSize(12);
} else { } else {
subTitleTextView.setTextSize(14); subTitleTextView.setTextSize(14);
...@@ -165,7 +165,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -165,7 +165,7 @@ public class ActionBarLayer extends FrameLayout {
if (logoImageView == null || logoImageView.getVisibility() == GONE) { if (logoImageView == null || logoImageView.getVisibility() == GONE) {
x = Utilities.dp(16); x = Utilities.dp(16);
} else { } else {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { if (!Utilities.isTablet(getContext()) && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
x = Utilities.dp(22) + (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f); x = Utilities.dp(22) + (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f);
} else { } else {
x = Utilities.dp(22) + logoImageView.getDrawable().getIntrinsicWidth(); x = Utilities.dp(22) + logoImageView.getDrawable().getIntrinsicWidth();
...@@ -243,6 +243,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -243,6 +243,7 @@ public class ActionBarLayer extends FrameLayout {
if (value != null && subTitleTextView == null) { if (value != null && subTitleTextView == null) {
subTitleTextView = new TextView(getContext()); subTitleTextView = new TextView(getContext());
backButtonFrameLayout.addView(subTitleTextView); backButtonFrameLayout.addView(subTitleTextView);
subTitleTextView.setGravity(Gravity.LEFT);
subTitleTextView.setTextColor(0xffd7e8f7); subTitleTextView.setTextColor(0xffd7e8f7);
subTitleTextView.setSingleLine(true); subTitleTextView.setSingleLine(true);
subTitleTextView.setLines(1); subTitleTextView.setLines(1);
...@@ -260,6 +261,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -260,6 +261,7 @@ public class ActionBarLayer extends FrameLayout {
if (resourceId != 0 && subTitleTextView == null) { if (resourceId != 0 && subTitleTextView == null) {
subTitleTextView = new TextView(getContext()); subTitleTextView = new TextView(getContext());
backButtonFrameLayout.addView(subTitleTextView); backButtonFrameLayout.addView(subTitleTextView);
subTitleTextView.setGravity(Gravity.LEFT);
subTitleTextView.setTextColor(0xffd7e8f7); subTitleTextView.setTextColor(0xffd7e8f7);
subTitleTextView.setSingleLine(true); subTitleTextView.setSingleLine(true);
subTitleTextView.setLines(1); subTitleTextView.setLines(1);
...@@ -276,7 +278,10 @@ public class ActionBarLayer extends FrameLayout { ...@@ -276,7 +278,10 @@ public class ActionBarLayer extends FrameLayout {
public void setTitle(CharSequence value) { public void setTitle(CharSequence value) {
if (value != null && titleTextView == null) { if (value != null && titleTextView == null) {
titleTextView = new TextView(getContext()); titleTextView = new TextView(getContext());
titleTextView.setGravity(Gravity.LEFT);
titleTextView.setSingleLine(true); titleTextView.setSingleLine(true);
titleTextView.setLines(1);
titleTextView.setMaxLines(1);
titleTextView.setEllipsize(TextUtils.TruncateAt.END); titleTextView.setEllipsize(TextUtils.TruncateAt.END);
backButtonFrameLayout.addView(titleTextView); backButtonFrameLayout.addView(titleTextView);
titleTextView.setTextColor(0xffffffff); titleTextView.setTextColor(0xffffffff);
...@@ -291,6 +296,7 @@ public class ActionBarLayer extends FrameLayout { ...@@ -291,6 +296,7 @@ public class ActionBarLayer extends FrameLayout {
public void setTitleIcon(int resourceId, int padding) { public void setTitleIcon(int resourceId, int padding) {
if (resourceId != 0 && titleTextView == null) { if (resourceId != 0 && titleTextView == null) {
titleTextView = new TextView(getContext()); titleTextView = new TextView(getContext());
titleTextView.setGravity(Gravity.LEFT);
backButtonFrameLayout.addView(titleTextView); backButtonFrameLayout.addView(titleTextView);
titleTextView.setTextColor(0xffffffff); titleTextView.setTextColor(0xffffffff);
titleTextView.setSingleLine(true); titleTextView.setSingleLine(true);
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
package org.telegram.ui.Views; package org.telegram.ui.Views;
import android.content.Context; import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable;
import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
...@@ -247,6 +248,13 @@ public class EmojiView extends LinearLayout { ...@@ -247,6 +248,13 @@ public class EmojiView extends LinearLayout {
localObject.setTag(this.data[paramInt]); localObject.setTag(this.data[paramInt]);
return localObject; return localObject;
} }
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
} }
private class EmojiPagesAdapter extends PagerAdapter implements PagerSlidingTabStrip.IconTabProvider { private class EmojiPagesAdapter extends PagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
...@@ -286,6 +294,13 @@ public class EmojiView extends LinearLayout { ...@@ -286,6 +294,13 @@ public class EmojiView extends LinearLayout {
public boolean isViewFromObject(View paramView, Object paramObject) { public boolean isViewFromObject(View paramView, Object paramObject) {
return paramView == paramObject; return paramView == paramObject;
} }
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
} }
public static abstract interface Listener { public static abstract interface Listener {
......
...@@ -113,7 +113,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> { ...@@ -113,7 +113,7 @@ public class HorizontalListView extends AdapterView<ListAdapter> {
@Override @Override
public void setAdapter(ListAdapter adapter) { public void setAdapter(ListAdapter adapter) {
if(mAdapter != null) { if(mAdapter != null && mDataObserver != null) {
mAdapter.unregisterDataSetObserver(mDataObserver); mAdapter.unregisterDataSetObserver(mDataObserver);
} }
mAdapter = adapter; mAdapter = adapter;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
package org.telegram.ui.Views; package org.telegram.ui.Views;
import android.database.DataSetObserver;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -222,4 +223,11 @@ public abstract class SectionedBaseAdapter extends BaseFragmentAdapter implement ...@@ -222,4 +223,11 @@ public abstract class SectionedBaseAdapter extends BaseFragmentAdapter implement
mSectionCount = getSectionCount(); mSectionCount = getSectionCount();
return mSectionCount; return mSectionCount;
} }
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
} }
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