TF-3479 Always persist as much normal screen as possible

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-14 16:53:17 +07:00
committed by Dat H. Pham
parent 16cb8c8a37
commit c21a9dda24
8 changed files with 188 additions and 115 deletions
@@ -30,50 +30,19 @@ extension UpdateScreenDisplayModeExtension on ComposerController {
}
}
void setScreenDisplayMode(ScreenDisplayMode displayMode) =>
screenDisplayMode.value = displayMode;
void setScreenDisplayMode(ScreenDisplayMode newDisplayMode) =>
screenDisplayMode.value = newDisplayMode;
bool setToMinimizeIfNormal() {
if (isNormalScreen) {
screenDisplayMode.value = ScreenDisplayMode.minimize;
return true;
}
return false;
}
void updateDisplayModeForComposerQueue(ScreenDisplayMode displayMode) {
void updateDisplayModeForComposerQueue(ScreenDisplayMode newDisplayMode) {
if (composerId == null || currentContext == null) return;
final composerManager = mailboxDashBoardController.composerManager;
final screenWidth = responsiveUtils.getSizeScreenWidth(currentContext!);
if (!composerManager.isExceedsScreenSize(screenWidth: screenWidth)) {
return;
}
if (displayMode == ScreenDisplayMode.normal) {
final recordComposerIds = composerManager.findSurroundingComposerIds(composerId!);
final nextComposer = recordComposerIds.nextTargetId;
final prevComposer = recordComposerIds.previousTargetId;
if (nextComposer != null && composerManager.getComposerView(nextComposer).controller.setToMinimizeIfNormal()) {
return;
}
if (prevComposer != null && composerManager.getComposerView(prevComposer).controller.setToMinimizeIfNormal()) {
return;
}
final firstNormalComposerId = composerManager.findFirstNormalComposerIdInQueue();
if (firstNormalComposerId != null && firstNormalComposerId != composerId) {
composerManager
.getComposerView(firstNormalComposerId)
.controller
.setScreenDisplayMode(ScreenDisplayMode.minimize);
}
} else if (displayMode == ScreenDisplayMode.fullScreen) {
}
composerManager.syncComposerQueue(screenWidth: screenWidth);
composerManager.syncComposerStateWhenComposerDisplayModeChanged(
screenWidth: screenWidth,
updatedComposerId: composerId!,
newDisplayMode: newDisplayMode,
);
}
}