mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-22 06:25:14 +01:00
Update to 5.14.0 (1847)
This commit is contained in:
parent
30d603778d
commit
29aa3efe1e
10 changed files with 3144 additions and 3137 deletions
|
@ -278,12 +278,12 @@ android {
|
||||||
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
|
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
|
||||||
}
|
}
|
||||||
ext {
|
ext {
|
||||||
abiVersionCode = 0
|
abiVersionCode = 9
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig.versionCode = 1846
|
defaultConfig.versionCode = 1847
|
||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
|
|
|
@ -533,9 +533,7 @@ int32_t ConnectionSocket::checkSocketError(int32_t *error) {
|
||||||
|
|
||||||
void ConnectionSocket::closeSocket(int32_t reason, int32_t error) {
|
void ConnectionSocket::closeSocket(int32_t reason, int32_t error) {
|
||||||
lastEventTime = ConnectionsManager::getInstance(instanceNum).getCurrentTimeMonotonicMillis();
|
lastEventTime = ConnectionsManager::getInstance(instanceNum).getCurrentTimeMonotonicMillis();
|
||||||
if (reason != 2) {
|
ConnectionsManager::getInstance(instanceNum).detachConnection(this);
|
||||||
ConnectionsManager::getInstance(instanceNum).detachConnection(this);
|
|
||||||
}
|
|
||||||
if (socketFd >= 0) {
|
if (socketFd >= 0) {
|
||||||
epoll_ctl(ConnectionsManager::getInstance(instanceNum).epolFd, EPOLL_CTL_DEL, socketFd, nullptr);
|
epoll_ctl(ConnectionsManager::getInstance(instanceNum).epolFd, EPOLL_CTL_DEL, socketFd, nullptr);
|
||||||
if (close(socketFd) != 0) {
|
if (close(socketFd) != 0) {
|
||||||
|
|
|
@ -197,12 +197,10 @@ void ConnectionsManager::select() {
|
||||||
EventObject *eventObject = (EventObject *) epollEvents[a].data.ptr;
|
EventObject *eventObject = (EventObject *) epollEvents[a].data.ptr;
|
||||||
eventObject->onEvent(epollEvents[a].events);
|
eventObject->onEvent(epollEvents[a].events);
|
||||||
}
|
}
|
||||||
for (std::vector<ConnectionSocket *>::iterator iter = activeConnections.begin(); iter != activeConnections.end();) {
|
activeConnectionsCopy.resize(activeConnections.size());
|
||||||
if ((*iter)->checkTimeout(now)) {
|
std::copy(std::begin(activeConnections), std::end(activeConnections), std::begin(activeConnectionsCopy));
|
||||||
iter = activeConnections.erase(iter);
|
for (auto connection : activeConnectionsCopy) {
|
||||||
} else {
|
connection->checkTimeout(now);
|
||||||
iter++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Datacenter *datacenter = getDatacenterWithId(currentDatacenterId);
|
Datacenter *datacenter = getDatacenterWithId(currentDatacenterId);
|
||||||
|
|
|
@ -191,6 +191,7 @@ private:
|
||||||
bool networkSlow = false;
|
bool networkSlow = false;
|
||||||
bool ipv6Enabled = false;
|
bool ipv6Enabled = false;
|
||||||
std::vector<ConnectionSocket *> activeConnections;
|
std::vector<ConnectionSocket *> activeConnections;
|
||||||
|
std::vector<ConnectionSocket *> activeConnectionsCopy;
|
||||||
int epolFd;
|
int epolFd;
|
||||||
int eventFd;
|
int eventFd;
|
||||||
int *pipeFd;
|
int *pipeFd;
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class BuildVars {
|
||||||
public static boolean USE_CLOUD_STRINGS = true;
|
public static boolean USE_CLOUD_STRINGS = true;
|
||||||
public static boolean CHECK_UPDATES = true;
|
public static boolean CHECK_UPDATES = true;
|
||||||
public static boolean TON_WALLET_STANDALONE = false;
|
public static boolean TON_WALLET_STANDALONE = false;
|
||||||
public static int BUILD_VERSION = 1846;
|
public static int BUILD_VERSION = 1847;
|
||||||
public static String BUILD_VERSION_STRING = "5.14.0";
|
public static String BUILD_VERSION_STRING = "5.14.0";
|
||||||
public static int APP_ID = 4;
|
public static int APP_ID = 4;
|
||||||
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
||||||
|
|
|
@ -496,11 +496,20 @@ public class ConnectionsManager extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getInitFlags() {
|
public static int getInitFlags() {
|
||||||
|
int flags = 0;
|
||||||
EmuDetector detector = EmuDetector.with(ApplicationLoader.applicationContext);
|
EmuDetector detector = EmuDetector.with(ApplicationLoader.applicationContext);
|
||||||
if (detector.detect()) {
|
if (detector.detect()) {
|
||||||
return 1024;
|
flags |= 1024;
|
||||||
}
|
}
|
||||||
return 0;
|
try {
|
||||||
|
String installer = ApplicationLoader.applicationContext.getPackageManager().getInstallerPackageName(ApplicationLoader.applicationContext.getPackageName());
|
||||||
|
if ("com.android.vending".equals(installer)) {
|
||||||
|
flags |= 2048;
|
||||||
|
}
|
||||||
|
} catch (Throwable ignore) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onBytesSent(int amount, int networkType, final int currentAccount) {
|
public static void onBytesSent(int amount, int networkType, final int currentAccount) {
|
||||||
|
|
|
@ -9143,7 +9143,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
needSelectFromMessageId = needSelect;
|
needSelectFromMessageId = needSelect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
loadsCount++;
|
loadsCount++;
|
||||||
long did = (Long) args[0];
|
long did = (Long) args[0];
|
||||||
int loadIndex = did == dialog_id ? 0 : 1;
|
int loadIndex = did == dialog_id ? 0 : 1;
|
||||||
|
@ -12407,13 +12407,16 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
public void onAnimationUpdate(ValueAnimator animation) {
|
public void onAnimationUpdate(ValueAnimator animation) {
|
||||||
float translationY = (float) animation.getAnimatedValue();
|
float translationY = (float) animation.getAnimatedValue();
|
||||||
if (!wasManualScroll && unreadMessageObject != null && chatListView != null) {
|
if (!wasManualScroll && unreadMessageObject != null && chatListView != null) {
|
||||||
if (position < 0 || position >= chatAdapter.getItemCount() || messages.get(position - chatAdapter.messagesStartRow) != unreadMessageObject) {
|
int msgIndex = position - chatAdapter.messagesStartRow;
|
||||||
|
if (msgIndex < 0 || msgIndex >= messages.size() || messages.get(msgIndex) != unreadMessageObject) {
|
||||||
position = chatAdapter.messagesStartRow + messages.indexOf(unreadMessageObject);
|
position = chatAdapter.messagesStartRow + messages.indexOf(unreadMessageObject);
|
||||||
}
|
}
|
||||||
View v = chatLayoutManager.findViewByPosition(position);
|
if (position >= 0) {
|
||||||
float top = pinnedMessageView.getBottom() + translationY - chatListView.getTop();
|
View v = chatLayoutManager.findViewByPosition(position);
|
||||||
if (v != null && top > v.getTop() + AndroidUtilities.dp(9)) {
|
float top = pinnedMessageView.getBottom() + translationY - chatListView.getTop();
|
||||||
chatListView.scrollBy(0, (int) (v.getTop() + AndroidUtilities.dp(9) - top));
|
if (v != null && top > v.getTop() + AndroidUtilities.dp(9)) {
|
||||||
|
chatListView.scrollBy(0, (int) (v.getTop() + AndroidUtilities.dp(9) - top));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pinnedMessageView.setTranslationY(translationY);
|
pinnedMessageView.setTranslationY(translationY);
|
||||||
|
|
|
@ -177,13 +177,15 @@ public class RecyclerAnimationScrollHelper {
|
||||||
}
|
}
|
||||||
child.setTranslationY(0);
|
child.setTranslationY(0);
|
||||||
}
|
}
|
||||||
if (animationCallback != null) {
|
|
||||||
animationCallback.onEndAnimation();
|
|
||||||
}
|
|
||||||
if (finalAnimatableAdapter != null) {
|
if (finalAnimatableAdapter != null) {
|
||||||
finalAnimatableAdapter.onAnimationEnd();
|
finalAnimatableAdapter.onAnimationEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (animationCallback != null) {
|
||||||
|
animationCallback.onEndAnimation();
|
||||||
|
}
|
||||||
|
|
||||||
animator = null;
|
animator = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -264,7 +266,7 @@ public class RecyclerAnimationScrollHelper {
|
||||||
if (!animationRunning) {
|
if (!animationRunning) {
|
||||||
super.notifyDataSetChanged();
|
super.notifyDataSetChanged();
|
||||||
} else {
|
} else {
|
||||||
shouldNotifyDataSetChanged = false;
|
shouldNotifyDataSetChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -297,20 +299,8 @@ public class RecyclerAnimationScrollHelper {
|
||||||
|
|
||||||
public void onAnimationEnd() {
|
public void onAnimationEnd() {
|
||||||
animationRunning = false;
|
animationRunning = false;
|
||||||
if (shouldNotifyDataSetChanged) {
|
if (shouldNotifyDataSetChanged || !rangeInserted.isEmpty() || !rangeRemoved.isEmpty()) {
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
} else {
|
|
||||||
if (!rangeInserted.isEmpty()) {
|
|
||||||
for (int i = 0; i < rangeInserted.size(); i += 2) {
|
|
||||||
notifyItemRangeInserted(rangeInserted.get(i), rangeInserted.get(i + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!rangeRemoved.isEmpty()) {
|
|
||||||
for (int i = 0; i < rangeRemoved.size(); i += 2) {
|
|
||||||
notifyItemRangeRemoved(rangeRemoved.get(i), rangeRemoved.get(i + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -712,28 +712,30 @@ public class PollCreateActivity extends BaseFragment {
|
||||||
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(p);
|
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(p);
|
||||||
if (holder != null) {
|
if (holder != null) {
|
||||||
int position = holder.getAdapterPosition();
|
int position = holder.getAdapterPosition();
|
||||||
int index = position - answerStartRow;
|
if (position != RecyclerView.NO_POSITION) {
|
||||||
listAdapter.notifyItemRemoved(holder.getAdapterPosition());
|
int index = position - answerStartRow;
|
||||||
System.arraycopy(answers, index + 1, answers, index, answers.length - 1 - index);
|
listAdapter.notifyItemRemoved(position);
|
||||||
System.arraycopy(answersChecks, index + 1, answersChecks, index, answersChecks.length - 1 - index);
|
System.arraycopy(answers, index + 1, answers, index, answers.length - 1 - index);
|
||||||
answers[answers.length - 1] = null;
|
System.arraycopy(answersChecks, index + 1, answersChecks, index, answersChecks.length - 1 - index);
|
||||||
answersChecks[answersChecks.length - 1] = false;
|
answers[answers.length - 1] = null;
|
||||||
answersCount--;
|
answersChecks[answersChecks.length - 1] = false;
|
||||||
if (answersCount == answers.length - 1) {
|
answersCount--;
|
||||||
listAdapter.notifyItemInserted(answerStartRow + answers.length - 1);
|
if (answersCount == answers.length - 1) {
|
||||||
|
listAdapter.notifyItemInserted(answerStartRow + answers.length - 1);
|
||||||
|
}
|
||||||
|
holder = listView.findViewHolderForAdapterPosition(position - 1);
|
||||||
|
EditTextBoldCursor editText = p.getTextView();
|
||||||
|
if (holder != null && holder.itemView instanceof PollEditTextCell) {
|
||||||
|
PollEditTextCell editTextCell = (PollEditTextCell) holder.itemView;
|
||||||
|
editTextCell.getTextView().requestFocus();
|
||||||
|
} else if (editText.isFocused()) {
|
||||||
|
AndroidUtilities.hideKeyboard(editText);
|
||||||
|
}
|
||||||
|
editText.clearFocus();
|
||||||
|
checkDoneButton();
|
||||||
|
updateRows();
|
||||||
|
listAdapter.notifyItemChanged(answerSectionRow);
|
||||||
}
|
}
|
||||||
holder = listView.findViewHolderForAdapterPosition(position - 1);
|
|
||||||
EditTextBoldCursor editText = p.getTextView();
|
|
||||||
if (holder != null && holder.itemView instanceof PollEditTextCell) {
|
|
||||||
PollEditTextCell editTextCell = (PollEditTextCell) holder.itemView;
|
|
||||||
editTextCell.getTextView().requestFocus();
|
|
||||||
} else if (editText.isFocused()) {
|
|
||||||
AndroidUtilities.hideKeyboard(editText);
|
|
||||||
}
|
|
||||||
editText.clearFocus();
|
|
||||||
checkDoneButton();
|
|
||||||
updateRows();
|
|
||||||
listAdapter.notifyItemChanged(answerSectionRow);
|
|
||||||
}
|
}
|
||||||
}) {
|
}) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -772,8 +774,10 @@ public class PollCreateActivity extends BaseFragment {
|
||||||
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(editText);
|
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(editText);
|
||||||
if (holder != null) {
|
if (holder != null) {
|
||||||
int position = holder.getAdapterPosition();
|
int position = holder.getAdapterPosition();
|
||||||
int index = position - answerStartRow;
|
if (position != RecyclerView.NO_POSITION) {
|
||||||
answersChecks[index] = checked;
|
int index = position - answerStartRow;
|
||||||
|
answersChecks[index] = checked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
checkDoneButton();
|
checkDoneButton();
|
||||||
}
|
}
|
||||||
|
@ -783,8 +787,10 @@ public class PollCreateActivity extends BaseFragment {
|
||||||
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(editText);
|
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(editText);
|
||||||
if (holder != null) {
|
if (holder != null) {
|
||||||
int position = holder.getAdapterPosition();
|
int position = holder.getAdapterPosition();
|
||||||
int index = position - answerStartRow;
|
if (position != RecyclerView.NO_POSITION) {
|
||||||
return answersChecks[index];
|
int index = position - answerStartRow;
|
||||||
|
return answersChecks[index];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -824,17 +830,19 @@ public class PollCreateActivity extends BaseFragment {
|
||||||
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(cell);
|
RecyclerView.ViewHolder holder = listView.findContainingViewHolder(cell);
|
||||||
if (holder != null) {
|
if (holder != null) {
|
||||||
int position = holder.getAdapterPosition();
|
int position = holder.getAdapterPosition();
|
||||||
int index = position - answerStartRow;
|
if (position != RecyclerView.NO_POSITION) {
|
||||||
if (index == answersCount - 1 && answersCount < 10) {
|
int index = position - answerStartRow;
|
||||||
addNewField();
|
if (index == answersCount - 1 && answersCount < 10) {
|
||||||
} else {
|
addNewField();
|
||||||
if (index == answersCount - 1) {
|
|
||||||
AndroidUtilities.hideKeyboard(cell.getTextView());
|
|
||||||
} else {
|
} else {
|
||||||
holder = listView.findViewHolderForAdapterPosition(position + 1);
|
if (index == answersCount - 1) {
|
||||||
if (holder != null && holder.itemView instanceof PollEditTextCell) {
|
AndroidUtilities.hideKeyboard(cell.getTextView());
|
||||||
PollEditTextCell editTextCell = (PollEditTextCell) holder.itemView;
|
} else {
|
||||||
editTextCell.getTextView().requestFocus();
|
holder = listView.findViewHolderForAdapterPosition(position + 1);
|
||||||
|
if (holder != null && holder.itemView instanceof PollEditTextCell) {
|
||||||
|
PollEditTextCell editTextCell = (PollEditTextCell) holder.itemView;
|
||||||
|
editTextCell.getTextView().requestFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue