Remove account avatar from stories header (use bottom menu for account switch)

This commit is contained in:
instant992 2026-06-16 23:46:12 +04:00
parent 24676bba9d
commit 1a7c4d72f3
2 changed files with 179 additions and 48 deletions

View file

@ -602,6 +602,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
private ChatActivityEnterView commentView;
private ChatActivityEnterView.SendButton writeButton;
private ActionBarMenuItem switchItem;
private FrameLayout mainTabsAvatarButton;
private BackupImageView mainTabsAvatarImage;
private RectF rect = new RectF();
private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
@ -1611,8 +1613,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
float pHalf = Utilities.clamp(p / 0.5f, 1f, 0f);
dialogStoriesCell.setClipTop(0);
if (!hasStories && animateToHasStories) {
dialogStoriesCell.setTranslationY(-dp(DialogStoriesCell.HEIGHT_IN_DP) - dp(8));
dialogStoriesCell.setProgressToCollapse(1f);
dialogStoriesCell.setTranslationY(-dp(DialogStoriesCell.HEIGHT_IN_DP) - dp(8)); dialogStoriesCell.setProgressToCollapse(1f);
containersAlpha = 1f - progressToDialogStoriesCell;
} else {
dialogStoriesCell.setTranslationY(Math.max(scrollYOffset, -getMaxScrollYOffsetWithoutSearch()) + storiesYOffset + storiesOverscroll / 2f - dp(8));
@ -1666,6 +1667,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
actionBar.getAdditionalSubTitleOverlayContainer().setAlpha(titleAlpha);
actionBar.getAdditionalSubTitleOverlayContainer().setVisibility(titleAlpha > 0 ? View.VISIBLE : View.INVISIBLE);
}
updateMainTabsAvatarPosition();
}
public static float viewOffset = 0.0f;
@ -2942,8 +2944,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
BirthdayController.getInstance(currentAccount).check();
additionNavigationBarHeight = hasMainTabs && !NekoConfig.hideBottomNavigationBar ? dp(MAIN_TABS_HEIGHT_WITH_MARGINS) : 0;
additionFloatingButtonOffset = hasMainTabs && !NekoConfig.hideBottomNavigationBar ? dp(DialogsActivity.MAIN_TABS_HEIGHT + DialogsActivity.MAIN_TABS_MARGIN) : 0;
additionNavigationBarHeight = hasMainTabs && !NekoConfig.isBottomNavigationBarHidden() ? dp(MAIN_TABS_HEIGHT_WITH_MARGINS) : 0;
additionFloatingButtonOffset = hasMainTabs && !NekoConfig.isBottomNavigationBarHidden() ? dp(DialogsActivity.MAIN_TABS_HEIGHT + DialogsActivity.MAIN_TABS_MARGIN) : 0;
return true;
}
@ -3167,8 +3169,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
@Override
public View createView(final Context context) {
additionNavigationBarHeight = hasMainTabs && !NekoConfig.hideBottomNavigationBar ? dp(MAIN_TABS_HEIGHT_WITH_MARGINS) : 0;
additionFloatingButtonOffset = hasMainTabs && !NekoConfig.hideBottomNavigationBar ? dp(DialogsActivity.MAIN_TABS_HEIGHT + DialogsActivity.MAIN_TABS_MARGIN) : 0;
additionNavigationBarHeight = hasMainTabs && !NekoConfig.isBottomNavigationBarHidden() ? dp(MAIN_TABS_HEIGHT_WITH_MARGINS) : 0;
additionFloatingButtonOffset = hasMainTabs && !NekoConfig.isBottomNavigationBarHidden() ? dp(DialogsActivity.MAIN_TABS_HEIGHT + DialogsActivity.MAIN_TABS_MARGIN) : 0;
searching = false;
searchWas = false;
wasDrawn = false;
@ -3188,12 +3190,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
ActionBarMenu menu = actionBar.createMenu();
searchItem = menu.addItem(0, R.drawable.outline_header_search).setIsSearchField(true, false);
searchItem.setOnClickListener(v -> {
showSearch(true, false, true);
fragmentSearchFieldWatcher.toggleSearch(true);
AndroidUtilities.runOnUIThread(() -> {
fragmentSearchField.editText.requestFocus();
AndroidUtilities.showKeyboard(fragmentSearchField.editText);
}, 100);
openSearch();
/*
AnimatorSet animatorSet = new AnimatorSet();
@ -4737,28 +4734,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
floatingButton3 = new FragmentFloatingButton(context, resourceProvider);
contentView.addView(floatingButton3, FragmentFloatingButton.createDefaultLayoutParams());
floatingButton3.setOnClickListener(v -> {
if (parentLayout != null && parentLayout.isInPreviewMode()) {
finishPreviewFragment();
return;
}
if (initialDialogsType == DIALOGS_TYPE_WIDGET) {
if (delegate == null || selectedDialogs.isEmpty()) {
return;
}
ArrayList<MessagesStorage.TopicKey> topicKeys = new ArrayList<>();
for (int i = 0; i < selectedDialogs.size(); i++) {
topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0));
}
delegate.didSelectDialogs(DialogsActivity.this, topicKeys, null, false, notify, scheduleDate, scheduleRepeatPeriod, null);
} else {
if (MessagesController.getInstance(currentAccount).isFrozen()) {
AccountFrozenAlert.show(currentAccount);
return;
}
openWriteContacts();
}
});
floatingButton3.setOnClickListener(v -> performComposeClick());
if (!isArchive() && initialDialogsType == DIALOGS_TYPE_DEFAULT) {
if (MessagesController.getInstance(currentAccount).getMainSettings().getBoolean("storyhint", true)) {
@ -5592,6 +5568,9 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
updateFilterTabs(true, false);
rightSlidingDialogContainer.setOpenProgress(0f);
contentView.addView(dialogStoriesCell, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, DialogStoriesCell.HEIGHT_IN_DP));
if (hasMainTabs && !onlySelect && folderId == 0 && searchString == null) {
// avatar removed: account switching is in bottom menu
}
contentView.addView(rightSlidingDialogContainer, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT));
dialogsActivityStatusLayout = new DialogsActivityStatusLayout(context);
@ -8773,7 +8752,11 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
private void updateFloatingButtonVisibility(boolean animated) {
final boolean isVisible = !(onlySelect && initialDialogsType != 10 || folderId != 0 || inPreviewMode || (searching && !onlySelect) || floatingButtonHidden);
boolean isVisible = !(onlySelect && initialDialogsType != 10 || folderId != 0 || inPreviewMode || (searching && !onlySelect) || floatingButtonHidden);
if (hasMainTabs && !NekoConfig.isBottomNavigationBarHidden()) {
// Compose action is hosted inside the bottom tabs bar
isVisible = false;
}
if (floatingButton3 != null) {
floatingButton3.setButtonVisible(isVisible, animated);
@ -10493,6 +10476,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
}
updateStatus(UserConfig.getInstance(account).getCurrentUser(), true);
updateMainTabsAvatar();
} else if (id == NotificationCenter.appDidLogout) {
dialogsLoaded[currentAccount] = false;
} else if (id == NotificationCenter.encryptedChatUpdated) {
@ -11504,6 +11488,20 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
commentView.setFieldText(first.caption == null ? "" : first.caption);
}
public void openSearch() {
if (searchItem == null || searchIsShowed) {
return;
}
showSearch(true, false, true);
fragmentSearchFieldWatcher.toggleSearch(true);
AndroidUtilities.runOnUIThread(() -> {
if (fragmentSearchField != null && fragmentSearchField.editText != null) {
fragmentSearchField.editText.requestFocus();
AndroidUtilities.showKeyboard(fragmentSearchField.editText);
}
}, 100);
}
public void setSearchString(String string) {
searchString = string;
}
@ -13340,6 +13338,29 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}, 0);
}
public void performComposeClick() {
if (parentLayout != null && parentLayout.isInPreviewMode()) {
finishPreviewFragment();
return;
}
if (initialDialogsType == DIALOGS_TYPE_WIDGET) {
if (delegate == null || selectedDialogs.isEmpty()) {
return;
}
ArrayList<MessagesStorage.TopicKey> topicKeys = new ArrayList<>();
for (int i = 0; i < selectedDialogs.size(); i++) {
topicKeys.add(MessagesStorage.TopicKey.of(selectedDialogs.get(i), 0));
}
delegate.didSelectDialogs(DialogsActivity.this, topicKeys, null, false, notify, scheduleDate, scheduleRepeatPeriod, null);
} else {
if (MessagesController.getInstance(currentAccount).isFrozen()) {
AccountFrozenAlert.show(currentAccount);
return;
}
openWriteContacts();
}
}
private void openWriteContacts() {
Bundle args = new Bundle();
args.putBoolean("destroyAfterSelect", true);
@ -13525,7 +13546,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
});
});
io.addGap();
if (NekoConfig.hideBottomNavigationBar) {
if (NekoConfig.isBottomNavigationBarHidden()) {
io.add(R.drawable.left_status_profile, getString(R.string.MyProfile), () -> {
Bundle args = new Bundle();
args.putLong("user_id", getUserConfig().getClientUserId());
@ -13545,7 +13566,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
Bundle args = new Bundle();
presentFragment(new GroupCreateActivity(args));
});
if (NekoConfig.hideBottomNavigationBar) {
if (NekoConfig.isBottomNavigationBarHidden()) {
io.add(R.drawable.msg_contacts, getString(R.string.Contacts), () -> {
Bundle args = new Bundle();
args.putBoolean("needPhonebook", true);
@ -13588,12 +13609,12 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
}
}
if (NekoConfig.hideBottomNavigationBar || getUserConfig().showCallsTab) {
if (NekoConfig.isBottomNavigationBarHidden() || getUserConfig().showCallsTab) {
io.add(R.drawable.msg_settings_old, getString(R.string.Settings), () -> {
presentFragment(new SettingsActivity());
});
}
if (NekoConfig.hideBottomNavigationBar) {
if (NekoConfig.isBottomNavigationBarHidden()) {
PopupHelper.fillAccountSelectorMenu(io, currentAccount, getParentActivity(), resourceProvider);
}
@ -13890,6 +13911,18 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
checkUi_itemSpeedVisibility();
checkUi_itemPasscodeVisibility();
checkUi_itemSearchVisibility();
checkUi_mainTabsAvatarVisibility();
}
private void checkUi_mainTabsAvatarVisibility() {
if (mainTabsAvatarButton == null) {
return;
}
final float factor1 = 1f - animatorSearchVisible.getFloatValue();
final float factor2 = 1f - getRightSlidingProgress();
final float factor3 = 1f - animatorDoneButtonVisible.getFloatValue();
final float factor = factor1 * factor2 * factor3;
FragmentFloatingButton.setAnimatedVisibility(mainTabsAvatarButton, factor);
}
private void checkUi_itemBackButtonVisibility() {
@ -13940,7 +13973,8 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
private void checkUi_itemSearchVisibility() {
final float factor0 = isSupportSearch() ? 1 : 0;
// Hide the top-right search icon in MainTabs mode (search lives in bottom menu)
final float factor0 = (isSupportSearch() && !(hasMainTabs && !NekoConfig.isBottomNavigationBarHidden())) ? 1 : 0;
final float factor1 = animatorSearchButtonVisible.getFloatValue();
final float factor2 = 1f - getRightSlidingProgress();
final float factor3 = 1f - animatorDoneButtonVisible.getFloatValue();
@ -14003,7 +14037,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
iBlur3PositionActionBar.set(0, -additionalList, fragmentView.getMeasuredWidth(), lerp(actionBarHeight, actionBarHeightSearch, animatorSearchVisible.getFloatValue()) + additionalList );
boolean hasBottomBlur = false;
if (hasMainTabs && !NekoConfig.hideBottomNavigationBar) {
if (hasMainTabs && !NekoConfig.isBottomNavigationBarHidden()) {
iBlur3PositionMainTabs.set(0, mainTabTop, fragmentView.getMeasuredWidth(), mainTabBottom);
iBlur3PositionMainTabs.inset(0, LiteMode.isEnabled(LiteMode.FLAG_LIQUID_GLASS) ? 0 : -dp(48));
@ -14109,7 +14143,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
return 0;
}
float height = dp(FILTER_TABS_HEIGHT + 7);
if (!floatingButton && NekoConfig.hideBottomNavigationBar) {
if (!floatingButton && NekoConfig.isBottomNavigationBarHidden()) {
height += dp(7);
}
height *= filterTabsView.getAlpha();
@ -14123,7 +14157,7 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
float bottom = navigationBarHeight + additionNavigationBarHeight;
if (commentView != null && chatInputViewsContainer != null) {
bottom += lerp(0, dp(9) + chatInputViewsContainer.getInputBubbleHeight() + dp(2), chatInputViewsContainer.getAlpha());
} else if (!NekoConfig.hideBottomNavigationBar) {
} else if (!NekoConfig.isBottomNavigationBarHidden()) {
bottom -= dp(MAIN_TABS_MARGIN);
}
filterTabsView.setTranslationY(-bottom);
@ -14168,6 +14202,51 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
}
}
private void createMainTabsAvatar(Context context, ViewGroup parent) {
if (mainTabsAvatarButton != null) {
return;
}
mainTabsAvatarButton = new FrameLayout(context);
mainTabsAvatarButton.setBackground(Theme.createSelectorDrawable(getThemedColor(Theme.key_actionBarActionModeDefaultSelector), 1, dp(20)));
mainTabsAvatarButton.setContentDescription(getString(R.string.MainTabsProfile));
mainTabsAvatarImage = new BackupImageView(context);
mainTabsAvatarImage.setRoundRadius(dp(18));
mainTabsAvatarButton.addView(mainTabsAvatarImage, LayoutHelper.createFrame(36, 36, Gravity.CENTER));
mainTabsAvatarButton.setOnClickListener(this::openAccountSelector);
mainTabsAvatarButton.setOnLongClickListener(this::openAccountSelector);
// Added on top of the stories cell so it stays visible at the top-left.
parent.addView(mainTabsAvatarButton, LayoutHelper.createFrame(40, 40, Gravity.LEFT | Gravity.TOP, 8, 0, 0, 0));
mainTabsAvatarButton.post(this::updateMainTabsAvatarPosition);
updateMainTabsAvatar();
}
private void updateMainTabsAvatarPosition() {
if (mainTabsAvatarButton == null || dialogStoriesCell == null) {
return;
}
// Center the avatar vertically within the stories row and follow its translationY
final float storiesTop = dialogStoriesCell.getTop() + dialogStoriesCell.getTranslationY();
final float storiesHeight = dp(DialogStoriesCell.HEIGHT_IN_DP);
final float top = storiesTop + (storiesHeight - dp(40)) / 2f;
mainTabsAvatarButton.setTranslationY(top);
}
private void updateMainTabsAvatar() {
if (mainTabsAvatarImage == null) {
return;
}
final TLRPC.User user = getUserConfig().getCurrentUser();
final AvatarDrawable avatarDrawable = new AvatarDrawable();
avatarDrawable.setInfo(currentAccount, user);
final Drawable thumb = user != null && user.photo != null && user.photo.strippedBitmap != null ? user.photo.strippedBitmap : avatarDrawable;
mainTabsAvatarImage.getImageReceiver().setCurrentAccount(currentAccount);
mainTabsAvatarImage.setImage(ImageLocation.getForUserOrChat(currentAccount, user, ImageLocation.TYPE_SMALL), "50_50", ImageLocation.getForUserOrChat(user, ImageLocation.TYPE_STRIPPED), "50_50", thumb, user);
}
public LinearLayout accountView(int account, boolean selected) {
final LinearLayout btn = new LinearLayout(getContext());
btn.setOrientation(LinearLayout.HORIZONTAL);
@ -14236,6 +14315,29 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
});
ItemOptions o = ItemOptions.makeOptions(this, view);
if (UserConfig.getActivatedAccountsCount() < UserConfig.MAX_ACCOUNT_COUNT) {
o.add(R.drawable.msg_addbot, getString(R.string.AddAccount), () -> {
o.dismiss();
int freeAccounts = 0;
Integer availableAccount = null;
for (int a = UserConfig.MAX_ACCOUNT_COUNT - 1; a >= 0; a--) {
if (!UserConfig.getInstance(a).isClientActivated()) {
freeAccounts++;
if (availableAccount == null) {
availableAccount = a;
}
}
}
if (!UserConfig.hasPremiumOnAccounts()) {
freeAccounts -= (UserConfig.MAX_ACCOUNT_COUNT - UserConfig.MAX_ACCOUNT_DEFAULT_COUNT);
}
if (freeAccounts > 0 && availableAccount != null) {
presentFragment(new LoginActivity(availableAccount));
} else if (!UserConfig.hasPremiumOnAccounts()) {
showDialog(new LimitReachedBottomSheet(this, getContext(), TYPE_ACCOUNTS, currentAccount, null));
}
});
}
if (accountNumbers.size() > 0) {
if (o.getItemsCount() > 0) o.addGap();
for (int acc : accountNumbers) {
@ -14274,7 +14376,13 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
o.setViewAdditionalOffsets(-dp(4), -dp(4), -dp(4), -dp(4));
o.setScrimViewBackground(bg);
o.translate(0, -dp(4));
o.setGravity(Gravity.RIGHT);
boolean anchorOnLeft = false;
if (view != null && fragmentView != null) {
final int[] loc = new int[2];
view.getLocationInWindow(loc);
anchorOnLeft = loc[0] + view.getWidth() / 2f < fragmentView.getWidth() / 2f;
}
o.setGravity(anchorOnLeft ? Gravity.LEFT : Gravity.RIGHT);
o.show();
return true;

View file

@ -577,6 +577,10 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
@Override
protected void dispatchDraw(Canvas canvas) {
if (!isActive) {
headerView.backupImageView.getImageReceiver().setVisible(true, true);
}
if (!unsupported) {
if (playerSharedScope.renderView != null || storyAreasView != null && (storyAreasView.hasSelectedForScale() || storyAreasView.parentHighlightScaleAlpha.isInProgress())) {
invalidate();
@ -4222,6 +4226,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
isPremiumBlocked = !UserConfig.getInstance(currentAccount).isPremium() && DialogObject.isPremiumBlocked(r);
starsPriceBlocked = DialogObject.getMessagesStarsPrice(r);
avatarDrawable.setInfo(currentAccount, user);
headerView.backupImageView.getImageReceiver().setForUserOrChat(user, avatarDrawable);
setTitle(true, dialogId, false);
} else {
isSelf = false;
@ -4238,6 +4243,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
isPremiumBlocked = isGroup && !ChatObject.canSendPlain(chat);
starsPriceBlocked = MessagesController.getInstance(currentAccount).getSendPaidMessagesStars(dialogId);
avatarDrawable.setInfo(currentAccount, chat);
headerView.backupImageView.getImageReceiver().setForUserOrChat(chat, avatarDrawable);
setTitle(true, dialogId, false);
}
if (isActive && (isSelf || isChannel)) {
@ -5160,6 +5166,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
if (headerView.radialProgress != null) {
headerView.radialProgress.setProgress(currentStory.uploadingStory.progress, false);
}
headerView.backupImageView.invalidate();
} else if (!animateSubtitle) {
headerView.progressToUploading = 0;
}
@ -6296,6 +6303,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
updatePreloadImages();
muteIconView.setAnimation(sharedResources.muteDrawable);
isActive = true;
headerView.backupImageView.getImageReceiver().setVisible(true, true);
if (currentStory.storyItem != null) {
FileLog.d("StoryViewer displayed story dialogId=" + dialogId + " storyId=" + currentStory.storyItem.id + " " + currentStory.getMediaDebugString());
}
@ -6329,6 +6337,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
}
public void reset() {
headerView.backupImageView.getImageReceiver().setVisible(true, true);
if (changeBoundAnimator != null) {
chatActivityEnterView.reset();
chatActivityEnterView.setAlpha(1f - outT);
@ -6606,6 +6615,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
public static class PeerHeaderView extends FrameLayout {
public BackupImageView backupImageView;
public SimpleTextView titleView;
private TextView[] subtitleView = new TextView[2];
RadialProgress radialProgress;
@ -6619,6 +6629,18 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
public PeerHeaderView(@NonNull Context context, StoryItemHolder holder) {
super(context);
this.storyItemHolder = holder;
backupImageView = new BackupImageView(context) {
@Override
protected void onDraw(Canvas canvas) {
if (imageReceiver.getVisible()) {
AndroidUtilities.rectTmp.set(0, 0, getMeasuredWidth(), getMeasuredHeight());
drawUploadingProgress(canvas, AndroidUtilities.rectTmp, true, 1f);
}
super.onDraw(canvas);
}
};
backupImageView.setRoundRadius(dp(16));
addView(backupImageView, LayoutHelper.createFrame(32, 32, 0, 12, 2, 0, 0));
setClipChildren(false);
titleView = new SimpleTextView(context) {
@ -6636,7 +6658,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
// titleView.setSingleLine(true);
// titleView.setEllipsize(TextUtils.TruncateAt.END);
NotificationCenter.listenEmojiLoading(titleView);
addView(titleView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 12, 0, 86, 0));
addView(titleView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 54, 0, 86, 0));
for (int a = 0; a < 2; ++a) {
subtitleView[a] = new TextView(context);
@ -6646,7 +6668,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
subtitleView[a].setEllipsize(TextUtils.TruncateAt.MIDDLE);
subtitleView[a].setTextColor(Color.WHITE);
subtitleView[a].setPadding(dp(3), 0, dp(3), dp(1));
addView(subtitleView[a], LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 9, 18, 83, 0));
addView(subtitleView[a], LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, 0, 51, 18, 83, 0));
}
titleView.setTextColor(Color.WHITE);
@ -6736,10 +6758,11 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
}
}
if (radialProgress == null) {
radialProgress = new RadialProgress(null);
radialProgress = new RadialProgress(backupImageView);
radialProgress.setBackground(null, true, false);
}
radialProgress.setDiff(0);
ImageReceiver imageReceiver = backupImageView.getImageReceiver();
float offset = AndroidUtilities.dp(3) - AndroidUtilities.dp(6) * (1f - progressToUploading);
radialProgress.setProgressRect(
(int) (rect.left - offset), (int) (rect.top - offset),
@ -6751,7 +6774,7 @@ public class PeerStoriesView extends SizeNotifierFrameLayout implements Notifica
}
if (allowDraw) {
if (progressToOpen != 1f) {
Paint paint = StoriesUtilities.getUnreadCirclePaint(rect, false);
Paint paint = StoriesUtilities.getUnreadCirclePaint(imageReceiver, false);
paint.setAlpha((int) (255 * progressToUploading));
radialProgress.setPaint(paint);
radialProgress.draw(canvas);