mirror of
https://github.com/wrwrabbit/Partisan-Telegram-Android.git
synced 2026-05-05 23:51:00 +00:00
fix chat position
This commit is contained in:
parent
d182362a60
commit
2525460c38
2 changed files with 26 additions and 1 deletions
|
|
@ -1823,6 +1823,9 @@ public class ActionBarLayout extends FrameLayout implements INavigationLayout, F
|
|||
previousFragment.setParentLayout(this);
|
||||
View fragmentView = previousFragment.fragmentView;
|
||||
if (fragmentView == null) {
|
||||
if (!SharedConfig.isFakePasscodeActivated() && previousFragment instanceof ChatActivity) {
|
||||
((ChatActivity)previousFragment).restoreStartLoadFromMessage();
|
||||
}
|
||||
fragmentView = previousFragment.createView(parentActivity);
|
||||
} else {
|
||||
ViewGroup parent = (ViewGroup) fragmentView.getParent();
|
||||
|
|
|
|||
|
|
@ -732,6 +732,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
private boolean createUnreadMessageAfterIdLoading;
|
||||
private boolean loadingFromOldPosition;
|
||||
private float alertViewEnterProgress;
|
||||
private boolean startLoadFromMessageRestored;
|
||||
|
||||
private boolean first = true;
|
||||
private int first_unread_id;
|
||||
|
|
@ -9954,7 +9955,16 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
int lastVisPos = chatLayoutManager.findLastVisibleItemPosition();
|
||||
int top = 0;
|
||||
MessageObject scrollToMessageObject = null;
|
||||
if (firstVisPos != RecyclerView.NO_POSITION) {
|
||||
if (startLoadFromMessageRestored) {
|
||||
for (MessageObject message : messages) {
|
||||
if (message.getId() == startLoadFromMessageId) {
|
||||
scrollToMessageObject = message;
|
||||
top = startLoadFromMessageOffset;
|
||||
}
|
||||
}
|
||||
startLoadFromMessageRestored = false;
|
||||
}
|
||||
if (firstVisPos != RecyclerView.NO_POSITION && scrollToMessageObject == null) {
|
||||
for (int i = firstVisPos; i <= lastVisPos; i++) {
|
||||
View v = chatLayoutManager.findViewByPosition(i);
|
||||
if (v instanceof ChatMessageCell) {
|
||||
|
|
@ -26384,6 +26394,18 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
|||
MediaController.getInstance().resetGoingToShowMessageObject();
|
||||
}
|
||||
|
||||
public void restoreStartLoadFromMessage() {
|
||||
SharedPreferences sharedPreferences = MessagesController.getNotificationsSettings(currentAccount);
|
||||
int messageId = sharedPreferences.getInt("diditem" + NotificationsController.getSharedPrefKey(dialog_id, getTopicId()), 0);
|
||||
if (messageId != 0) {
|
||||
wasManualScroll = true;
|
||||
loadingFromOldPosition = true;
|
||||
startLoadFromMessageOffset = sharedPreferences.getInt("diditemo" + NotificationsController.getSharedPrefKey(dialog_id, getTopicId()), 0);
|
||||
startLoadFromMessageId = messageId;
|
||||
startLoadFromMessageRestored = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateMessageListAccessibilityVisibility() {
|
||||
if (currentEncryptedChat != null) {
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue