mirror of
https://gitee.com/openharmony/applications_photos
synced 2025-02-21 07:31:17 +00:00
commit
c1572c3a22
2
.gitignore
vendored
2
.gitignore
vendored
@ -12,4 +12,4 @@
|
||||
/entry/.preview
|
||||
.cxx
|
||||
/package-lock.json
|
||||
|
||||
/tsconfig.json
|
||||
|
@ -175,7 +175,7 @@ export default class MainAbility extends Ability {
|
||||
appLogger.info(`setInterval go`);
|
||||
if (dataSource.getRawData(0) || times >= MainAbility.RETRY_MAX_TIMES) {
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, dataSource);
|
||||
windowStage.setUIContent(this.context, 'feature/browser/view/photo/PhotoBrowser', null);
|
||||
windowStage.setUIContent(this.context, 'feature/browser/view/PhotoBrowser', null);
|
||||
ScreenManager.getInstance().initWindowMode();
|
||||
clearInterval(intervalId);
|
||||
}
|
||||
@ -183,7 +183,7 @@ export default class MainAbility extends Ability {
|
||||
}, 50)
|
||||
});
|
||||
} else {
|
||||
windowStage.setUIContent(this.context, 'product/phone/view/index', null);
|
||||
windowStage.setUIContent(this.context, 'product/pad/view/index', null);
|
||||
ScreenManager.getInstance().initWindowMode();
|
||||
}
|
||||
TraceControllerUtils.finishTrace('onWindowStageCreate');
|
||||
@ -212,7 +212,7 @@ export default class MainAbility extends Ability {
|
||||
}
|
||||
if (entryFrom == Constants.ENTRY_FROM_CAMERA) {
|
||||
let options = {
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
pageFrom: Constants.ENTRY_FROM.CAMERA
|
||||
}
|
||||
@ -244,7 +244,7 @@ export default class MainAbility extends Ability {
|
||||
if (dataSource.getRawData(0) || times >= MainAbility.RETRY_MAX_TIMES) {
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, dataSource);
|
||||
let options = {
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
pageFrom: Constants.ENTRY_FROM.CARD,
|
||||
albumId: AppStorage.Get(Constants.FROM_ALBUM_ID),
|
||||
@ -268,7 +268,7 @@ export default class MainAbility extends Ability {
|
||||
router.replace(options);
|
||||
} else if (entryFrom == Constants.ENTRY_FROM_VIEW_DATA) {
|
||||
let options = {
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
pageFrom: Constants.ENTRY_FROM.VIEW_DATA,
|
||||
viewData: AppStorage.Get(Constants.VIEW_DATA_URI),
|
||||
|
@ -13,13 +13,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {AlbumDefine} from '../AlbumDefine'
|
||||
import {BrowserDataImpl} from '../BrowserDataImpl'
|
||||
import {Logger} from '../../../utils/Logger'
|
||||
import {AsyncCallback} from '../../common/AsyncCallback'
|
||||
import {MediaItem} from './MediaItem'
|
||||
import {MediaLibraryAccess} from '../../../access/MediaLibraryAccess'
|
||||
import {TraceControllerUtils} from '../../../utils/TraceControllerUtils';
|
||||
import { AlbumDefine } from '../AlbumDefine'
|
||||
import { BrowserDataImpl } from '../BrowserDataImpl'
|
||||
import { Logger } from '../../../utils/Logger'
|
||||
import { AsyncCallback } from '../../common/AsyncCallback'
|
||||
import { MediaItem } from './MediaItem'
|
||||
import { MediaLibraryAccess } from '../../../access/MediaLibraryAccess'
|
||||
import { TraceControllerUtils } from '../../../utils/TraceControllerUtils';
|
||||
|
||||
export class PhotoDataImpl extends BrowserDataImpl {
|
||||
logger: Logger = new Logger('PhotoDataImpl');
|
||||
@ -46,7 +46,7 @@ export class PhotoDataImpl extends BrowserDataImpl {
|
||||
try {
|
||||
promiseStatus.push(item.isFavorite())
|
||||
}
|
||||
catch(err) {
|
||||
catch (err) {
|
||||
this.logger.error(`getItems error: ${err}`);
|
||||
}
|
||||
}
|
||||
@ -57,7 +57,7 @@ export class PhotoDataImpl extends BrowserDataImpl {
|
||||
try {
|
||||
let item = dataList[i];
|
||||
let mediaItem: MediaItem = new MediaItem(item);
|
||||
if(favor[i].status = 'success'){
|
||||
if (favor[i].status = 'success') {
|
||||
mediaItem.setFavorite(favor[i].res);
|
||||
} else {
|
||||
this.logger.error(`getFavorite error: ${favor[i].err}`);
|
||||
@ -78,8 +78,8 @@ export class PhotoDataImpl extends BrowserDataImpl {
|
||||
}
|
||||
|
||||
handlePromise(promiseList) {
|
||||
return promiseList.map(promise => promise.then((res) => ({status: 'success', res}),
|
||||
(err) => ({status: 'failed', err})))
|
||||
return promiseList.map(promise => promise.then((res) => ({ status: 'success', res }),
|
||||
(err) => ({ status: 'failed', err })))
|
||||
}
|
||||
|
||||
getDataCount(callback: AsyncCallback<number>, param: any): void {
|
||||
@ -94,10 +94,11 @@ export class PhotoDataImpl extends BrowserDataImpl {
|
||||
return this.getThumbnailSafe(sourceUri, size);
|
||||
}
|
||||
|
||||
async getDataById(id: any, deviceId? :any){
|
||||
async getDataById(id: any, deviceId?: any) {
|
||||
this.logger.debug('getFileAssetById');
|
||||
try {
|
||||
let result = await MediaLibraryAccess.getInstance().getFirstObject(AlbumDefine.getFileFetchOptById(id, deviceId));
|
||||
this.logger.debug(`result: ${JSON.stringify(result)}`)
|
||||
return result.obj;
|
||||
} catch (error) {
|
||||
this.logger.error('getFileAssetById error');
|
||||
@ -105,14 +106,14 @@ export class PhotoDataImpl extends BrowserDataImpl {
|
||||
}
|
||||
}
|
||||
|
||||
async getDataByName(name: string, albumInfo: any){
|
||||
async getDataByName(name: string, albumInfo: any) {
|
||||
this.logger.debug('getFileByName');
|
||||
|
||||
let dataList;
|
||||
if (albumInfo.id){
|
||||
if (albumInfo.id) {
|
||||
dataList = await MediaLibraryAccess.getInstance().getEntityAlbumObject(AlbumDefine.getAlbumFetchOpt(albumInfo.id),
|
||||
AlbumDefine.getFileFetchOptByName(name))
|
||||
}else{
|
||||
} else {
|
||||
dataList = await MediaLibraryAccess.getInstance().getAllObject(AlbumDefine.getFileFetchOptByName(name, albumInfo.relativePath))
|
||||
}
|
||||
|
||||
|
@ -56,10 +56,10 @@ export class ScreenManager {
|
||||
private columns: number = ColumnSize.COLUMN_FOUR;
|
||||
|
||||
// Default orientation
|
||||
private horizontal = false;
|
||||
private horizontal = true;
|
||||
|
||||
// Default sidebar
|
||||
private sidebar = false;
|
||||
private sidebar = true;
|
||||
private windowMode = WindowMode.UNDEFINED;
|
||||
|
||||
private constructor() {
|
||||
|
@ -12,7 +12,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { Constants } from '../model/common/Constants'
|
||||
|
||||
// New style
|
||||
@Component
|
@ -23,7 +23,7 @@ import { MediaLibraryAccess } from '../../common/access/MediaLibraryAccess'
|
||||
import { ScreenManager } from '../model/common/ScreenManager'
|
||||
import { Constants } from '../model/common/Constants';
|
||||
import { TraceControllerUtils } from '../utils/TraceControllerUtils';
|
||||
import { LoadingPanel } from '../../feature/browser/view/photo/components/LoadingPanel'
|
||||
import { LoadingPanel } from './components/LoadingPanel'
|
||||
|
||||
@Component
|
||||
export struct PhotoItem {
|
||||
@ -331,7 +331,7 @@ export struct PhotoItem {
|
||||
.onClick(() => {
|
||||
if (this.item != undefined) {
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/VideoBrowser',
|
||||
uri: 'feature/browser/view/VideoBrowser',
|
||||
params: {
|
||||
uri: this.item.uri,
|
||||
dateTaken: this.item.dateTaken,
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
import { PhotoItem } from './PhotoItem'
|
||||
import { BroadCastConstants } from '../model/common/BroadCastConstants';
|
||||
import { Logger } from '../../feature/browser/utils/Logger';
|
||||
import { Logger } from '../utils/Logger'
|
||||
import { BroadCast } from '../utils/BroadCast';
|
||||
import { Constants } from '../model/common/Constants';
|
||||
import { Constants as PhotoConstants } from '../../common/model/browser/photo/Constants'
|
||||
|
@ -19,6 +19,7 @@ import { BroadCastManager } from '../model/common/BroadCastManager'
|
||||
import { BroadCast } from '../utils/BroadCast'
|
||||
import { BroadCastConstants } from '../model/common/BroadCastConstants'
|
||||
import { Constants } from '../model/common/Constants'
|
||||
import { ScreenManager } from '../model/common/ScreenManager';
|
||||
|
||||
export enum DEVICE_TYPE {
|
||||
DEVICE_PHONE,
|
||||
@ -30,7 +31,7 @@ export struct TabBar {
|
||||
@Consume isSelectedMode: boolean;
|
||||
@Consume isAlbumSetSelectedMode: boolean;
|
||||
private currentIndex: number;
|
||||
private isSidebar: boolean = false;
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
private tabs: TabItem[] = [];
|
||||
private controller: TabsController;
|
||||
private logger: Logger = new Logger('TabBar');
|
||||
|
@ -20,7 +20,6 @@ import { ActionBarMode } from '../browserOperation/ActionBarMode'
|
||||
import { SingleTitle } from './SingleTitle'
|
||||
import { DetailTitle } from './DetailTitle'
|
||||
import { SelectionTitle } from './SelectionTitle'
|
||||
import { MenuPanel } from './MenuPanel'
|
||||
import { DetailMenuPanel } from './DetailMenuPanel'
|
||||
import { Constants } from '../../model/common/Constants'
|
||||
import { ActionBarButton } from './ActionBarButton'
|
||||
@ -29,7 +28,7 @@ import { ActionBarButton } from './ActionBarButton'
|
||||
@Component
|
||||
export struct ActionBar {
|
||||
@State isShowBar: boolean = true;
|
||||
@State actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
@Provide actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('ActionBar');
|
||||
isVideoPage: boolean = false;
|
||||
@ -49,33 +48,26 @@ export struct ActionBar {
|
||||
res: this.actionBarProp.getLeftAction().iconRes,
|
||||
action: this.actionBarProp.getLeftAction(),
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isLeft: true,
|
||||
isAutoTint: this.actionBarProp.getLeftAction().isAutoTint,
|
||||
colorMode: this.actionBarProp.getColorMode(),
|
||||
isFirst: true
|
||||
})
|
||||
}
|
||||
if (this.actionBarProp.getMode() === ActionBarMode.DETAIL_MODE) {
|
||||
DetailMenuPanel({ actionBarProp: this.actionBarProp, onMenuClicked: this.onMenuClicked, isLeft: true })
|
||||
} else if (this.actionBarProp.getMode() === ActionBarMode.SELECTION_MODE) {
|
||||
Stack({ alignContent: Alignment.Start }) {
|
||||
SelectionTitle({ actionBarProp: this.actionBarProp })
|
||||
}.flexGrow(1)
|
||||
|
||||
MenuPanel({ actionBarProp: this.actionBarProp, onMenuClicked: this.onMenuClicked })
|
||||
} else if (this.actionBarProp.getMode() === ActionBarMode.TOP_MODE) {
|
||||
Stack({ alignContent: Alignment.Start }) {
|
||||
DetailTitle({ isVideoPage: this.isVideoPage })
|
||||
}.flexGrow(1)
|
||||
|
||||
DetailMenuPanel({ actionBarProp: this.actionBarProp, onMenuClicked: this.onMenuClicked, isLeft: false })
|
||||
} else {
|
||||
Stack({ alignContent: Alignment.Start }) {
|
||||
SingleTitle({ actionBarProp: this.actionBarProp })
|
||||
}.flexGrow(1)
|
||||
|
||||
MenuPanel({ actionBarProp: this.actionBarProp, onMenuClicked: this.onMenuClicked })
|
||||
}
|
||||
DetailMenuPanel({ onMenuClicked: this.onMenuClicked })
|
||||
}
|
||||
.height(Constants.ActionBarHeight)
|
||||
.zIndex(3)
|
||||
|
@ -24,7 +24,6 @@ export struct ActionBarButton {
|
||||
@State res: Resource = undefined;
|
||||
action: Action;
|
||||
onMenuClicked: Function;
|
||||
isLeft = true;
|
||||
isFirst = false;
|
||||
isAutoTint = true;
|
||||
colorMode: ActionBarColorMode;
|
||||
|
@ -21,27 +21,17 @@ import { ActionBarButton } from './ActionBarButton'
|
||||
// Large picture button for dynamic refresh
|
||||
@Component
|
||||
export struct DetailMenuPanel {
|
||||
@Consume menuList: Action[];
|
||||
actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
@Consume actionBarProp: ActionBarProp;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('DetailMenuPanel');
|
||||
isLeft = false;
|
||||
|
||||
private onBuildDone(): void {
|
||||
this.logger.info(`onBuildDone, menu's size: ${this.menuList.length}`);
|
||||
this.menuList.forEach((menu: Action) => {
|
||||
this.logger.info(`ActionId: ${menu.actionID}`)
|
||||
})
|
||||
}
|
||||
private logger: Logger = new Logger('DetailMenuPanel');
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
ForEach(this.menuList, (menu: Action) => {
|
||||
ForEach(this.actionBarProp.getMenuList(), (menu: Action) => {
|
||||
ActionBarButton({
|
||||
res: menu.iconRes,
|
||||
action: menu,
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isLeft: this.isLeft,
|
||||
isAutoTint: menu.isAutoTint,
|
||||
colorMode: this.actionBarProp.getColorMode()
|
||||
})
|
||||
|
@ -21,7 +21,7 @@ import { ActionBarButton } from './ActionBarButton'
|
||||
// MenuPanel,Right menu button panel
|
||||
@Component
|
||||
export struct MenuPanel {
|
||||
@State @Watch('onActionBarPropChanged') actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
@State actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
@State menuList: Action[] = [];
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('MenuPanel');
|
||||
@ -45,12 +45,11 @@ export struct MenuPanel {
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
ForEach(this.menuList, (menu: Action) => {
|
||||
ForEach(this.actionBarProp.getMenuList(), (menu: Action) => {
|
||||
ActionBarButton({
|
||||
res: menu.iconRes,
|
||||
action: menu,
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isLeft: false,
|
||||
isAutoTint: menu.isAutoTint,
|
||||
colorMode: this.actionBarProp.getColorMode()
|
||||
})
|
||||
|
@ -27,11 +27,11 @@ export class MenuItem {
|
||||
|
||||
@Component
|
||||
export struct ToolBar {
|
||||
@Consume isShowBar: boolean;
|
||||
@State isShowBar: boolean = true;
|
||||
@StorageLink('isSplitMode') isSplitMode: boolean = ScreenManager.getInstance().isSplitMode();
|
||||
@StorageLink('leftBlank') leftBlank: [number, number, number, number]
|
||||
= [0, ScreenManager.getInstance().getStatusBarHeight(), 0, ScreenManager.getInstance().getNaviBarHeight()];
|
||||
@Consume toolMenuList: Action[];
|
||||
@State toolMenuList: Action[] = [];
|
||||
@Consume moreMenuList: Action[];
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
@State showPopup: boolean = false;
|
||||
|
@ -13,10 +13,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {BroadCast} from '../../utils/BroadCast'
|
||||
import {Logger} from '../../../feature/browser/utils/Logger';
|
||||
import {BroadCastConstants} from '../../model/common/BroadCastConstants';
|
||||
import {AlbumInfo} from '../../model/browser/album/AlbumInfo';
|
||||
import { BroadCast } from '../../utils/BroadCast'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCastConstants } from '../../model/common/BroadCastConstants';
|
||||
import { AlbumInfo } from '../../model/browser/album/AlbumInfo';
|
||||
|
||||
@Component
|
||||
export struct AlbumListCard {
|
||||
@ -49,8 +49,8 @@ export struct AlbumListCard {
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
if(this.useAlt) {
|
||||
Row(){
|
||||
if (this.useAlt) {
|
||||
Row() {
|
||||
Image($r('app.media.ic_goto_photos'))
|
||||
.height($r('app.float.icon_size'))
|
||||
.width($r('app.float.icon_size'))
|
||||
@ -67,7 +67,7 @@ export struct AlbumListCard {
|
||||
.width($r('app.float.list_card_image_size'))
|
||||
.borderRadius($r('sys.float.ohos_id_corner_radius_default_s'))
|
||||
.onError(() => {
|
||||
if(this.item.coverUri) {
|
||||
if (this.item.coverUri) {
|
||||
this.useAlt = true;
|
||||
}
|
||||
this.logger.error('alt Image error');
|
||||
|
@ -88,7 +88,7 @@ export class AlbumSetNewMenuOperation implements MenuOperation, MenuOperationCal
|
||||
[newAlbumInfo, this.onCompleted.bind(this)]);
|
||||
} else {
|
||||
router.push({
|
||||
uri: 'feature/browser/view/album/AlbumSelect',
|
||||
uri: 'feature/albumSelect/view/AlbumSelect/AlbumSelect',
|
||||
params: {
|
||||
albumInfo: JSON.stringify(newAlbumInfo),
|
||||
isNewAlbum: true
|
||||
|
86
entry/src/main/ets/feature/album/model/AlbumBarModel.ts
Normal file
86
entry/src/main/ets/feature/album/model/AlbumBarModel.ts
Normal file
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
|
||||
export class AlbumBarModel {
|
||||
createActionBar(isAlbumSetSelectedMode: boolean, selectedAlbumsCount: number, isDisableRename: boolean, isDisableDelete: boolean): ActionBarProp {
|
||||
let isHorizontal = ScreenManager.getInstance().isHorizontal()
|
||||
if (isHorizontal) {
|
||||
return this.createHorizontalActionBar(isAlbumSetSelectedMode, selectedAlbumsCount, isDisableRename, isDisableDelete)
|
||||
} else {
|
||||
return this.createVerticalActionBar(isAlbumSetSelectedMode)
|
||||
}
|
||||
}
|
||||
|
||||
private createHorizontalActionBar(isAlbumSetSelectedMode: boolean, selectedAlbumsCount: number, isDisableRename: boolean, isDisableDelete: boolean): ActionBarProp {
|
||||
let isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(isSidebar)
|
||||
.setTitle($r('app.string.tab_albums'))
|
||||
.setIsHeadTitle(true);
|
||||
let menuList: Array<Action> = this.getMenuList(isAlbumSetSelectedMode, selectedAlbumsCount, isDisableRename, isDisableDelete);
|
||||
if (isAlbumSetSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
menuList.push(Action.NEW)
|
||||
actionBarProp
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
}
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createVerticalActionBar(isAlbumSetSelectedMode: boolean): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
menuList.push(Action.NEW);
|
||||
let isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(isSidebar)
|
||||
.setTitle($r('app.string.tab_albums'))
|
||||
.setIsHeadTitle(true);
|
||||
|
||||
if (isAlbumSetSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
actionBarProp
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
}
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
getMenuList(isAlbumSetSelectedMode: boolean, selectedAlbumsCount: number, isDisableRename: boolean, isDisableDelete: boolean): Array<Action> {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
if (isAlbumSetSelectedMode) {
|
||||
menuList.push((!isDisableRename && selectedAlbumsCount == 1) ? Action.RENAME : Action.RENAME_INVALID)
|
||||
menuList.push((!isDisableDelete && selectedAlbumsCount > 0) ? Action.DELETE : Action.DELETE_INVALID)
|
||||
}
|
||||
return menuList
|
||||
}
|
||||
}
|
@ -13,13 +13,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../../common/interface/BrowserDataFactory'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { ProcessMenuOperation } from '../../../../common/view/browserOperation/ProcessMenuOperation';
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../common/interface/BrowserDataFactory'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { ProcessMenuOperation } from '../../../common/view/browserOperation/ProcessMenuOperation';
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
|
||||
export class AlbumSetDeleteMenuOperation extends ProcessMenuOperation {
|
||||
logger: Logger = new Logger('AlbumSetDeleteMenuOperation');
|
@ -13,15 +13,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { MenuOperationCallback } from '../../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../../common/interface/BrowserDataFactory'
|
||||
import { UiUtil } from '../../../../common/utils/UiUtil'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { MenuOperationCallback } from '../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../common/interface/BrowserDataFactory'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil'
|
||||
|
||||
export class AlbumSetRenameMenuOperation implements MenuOperation, MenuOperationCallback {
|
||||
private menuContext: MenuContext;
|
@ -13,16 +13,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from './EmptyAlbumComponent';
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCast } from '../../../../common//utils/BroadCast'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from '../../../common/view/EmptyAlbumComponent';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import router from '@system.router';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
|
||||
// The item of album grid, and it's new style.
|
||||
@Component
|
||||
@ -293,7 +293,7 @@ export struct AlbumGridItemNewStyle {
|
||||
} else {
|
||||
this.logger.info(`After onClick, MediaSet is: ${JSON.stringify(this.item)}`);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photoGrid/PhotoGridPage',
|
||||
uri: 'feature/photoGrid/view/PhotoGridPage',
|
||||
params: {
|
||||
item: JSON.stringify(this.item)
|
||||
}
|
@ -13,35 +13,35 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AlbumSetDataSource } from '../../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { NoPhotoIndexComponent } from '../../../../common/view/NoPhotoIndexComponent'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils'
|
||||
import { TabBarForAlbumSet } from '../../../../common/view/TabBar'
|
||||
import { TabItemWithText } from '../../../../common/model/common/TabItem'
|
||||
import { AlbumSetSelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { AlbumSetNewMenuOperation } from '../../../../common/view/browserOperation/AlbumSetNewMenuOperation'
|
||||
import { DistributedDataSource } from '../../../../common/model/browser/album/DistributedDataSource'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuOperationFactory } from '../../../../common/interface/MenuOperationFactory'
|
||||
import { CustomDialogView } from '../../../../common/view/dialog/CustomDialogView'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { CommonObserverCallback } from '../../../../common/model/browser/CommonObserverCallback'
|
||||
import { MediaObserver } from '../../../../common/model/browser/dataObserver/MediaObserver'
|
||||
import { UiUtil } from '../../../../common/utils/UiUtil'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
|
||||
import { AlbumSetPageActionBar } from './AlbumSetPageActionBar'
|
||||
import { AlbumSetPageToolBar } from './AlbumSetPageToolBar'
|
||||
import { AlbumSetDataSource } from '../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast';
|
||||
import { NoPhotoIndexComponent } from '../../../common/view/NoPhotoIndexComponent'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils'
|
||||
import { TabBarForAlbumSet } from '../../../common/view/TabBar'
|
||||
import { TabItemWithText } from '../../../common/model/common/TabItem'
|
||||
import { AlbumSetSelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { AlbumSetNewMenuOperation } from '../../../common/view/browserOperation/AlbumSetNewMenuOperation'
|
||||
import { DistributedDataSource } from '../../../common/model/browser/album/DistributedDataSource'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuOperationFactory } from '../../../common/interface/MenuOperationFactory'
|
||||
import { CustomDialogView } from '../../../common/view/dialog/CustomDialogView'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { CommonObserverCallback } from '../../../common/model/browser/CommonObserverCallback'
|
||||
import { MediaObserver } from '../../../common/model/browser/dataObserver/MediaObserver'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { AlbumBarModel } from '../model/AlbumBarModel';
|
||||
import { ToolBar } from '../../../common/view/actionbar/ToolBar';
|
||||
import { AlbumGridItemNewStyle } from './AlbumGridItemNewStyle'
|
||||
import { DistributedAlbumGriItem } from './DistributedAlbumGriItem'
|
||||
import { AlbumSetDeleteMenuOperation } from './AlbumSetDeleteMenuOperation'
|
||||
import { AlbumSetRenameMenuOperation } from './AlbumSetRenameMenuOperation'
|
||||
import { AlbumSetDeleteMenuOperation } from '../operation/AlbumSetDeleteMenuOperation'
|
||||
import { AlbumSetRenameMenuOperation } from '../operation/AlbumSetRenameMenuOperation'
|
||||
|
||||
// Album Set Page
|
||||
@Component
|
||||
@ -78,6 +78,7 @@ export struct AlbumSetPage {
|
||||
private currentIndex: number = Constants.LOCAL_TAB_INDEX;
|
||||
private needNotify = false;
|
||||
private ignoreLocalNotify = false;
|
||||
private barModel: AlbumBarModel = new AlbumBarModel()
|
||||
|
||||
onMenuClicked(action: Action, arg: any[]) {
|
||||
this.logger.info(`onMenuClicked, action: ${action.actionID}`);
|
||||
@ -452,10 +453,15 @@ export struct AlbumSetPage {
|
||||
justifyContent: FlexAlign.Start,
|
||||
alignItems: ItemAlign.Start
|
||||
}) {
|
||||
Column() {
|
||||
AlbumSetPageActionBar({ onMenuClicked: this.onMenuClicked })
|
||||
}.visibility(this.isEmpty && !this.isTabBarShow ? Visibility.None : Visibility.Visible)
|
||||
|
||||
ActionBar({
|
||||
isShowBar: !(this.isEmpty && !this.isTabBarShow),
|
||||
actionBarProp: this.barModel.createActionBar(
|
||||
this.isAlbumSetSelectedMode,
|
||||
this.selectedAlbumsCount,
|
||||
this.isDisableRename,
|
||||
this.isDisableDelete),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
Column() {
|
||||
TabBarForAlbumSet({
|
||||
currentIndex: this.currentIndex,
|
||||
@ -489,9 +495,15 @@ export struct AlbumSetPage {
|
||||
})
|
||||
}.visibility(this.isEmpty && !this.isTabBarShow ? Visibility.None : Visibility.Visible)
|
||||
|
||||
if (this.isAlbumSetSelectedMode) {
|
||||
AlbumSetPageToolBar({ onMenuClicked: this.onMenuClicked })
|
||||
}
|
||||
ToolBar({
|
||||
isShowBar: $isAlbumSetSelectedMode,
|
||||
toolMenuList: this.barModel.getMenuList(
|
||||
this.isAlbumSetSelectedMode,
|
||||
this.selectedAlbumsCount,
|
||||
this.isDisableRename,
|
||||
this.isDisableDelete),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
if (this.isEmpty && !this.isTabBarShow) {
|
||||
NoPhotoIndexComponent({ index: Constants.ALBUM_PAGE_INDEX })
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { EmptyAlbumComponent } from './EmptyAlbumComponent';
|
||||
import { PeerInfo } from '../../../../common/model/browser/album/PeerInfo';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { EmptyAlbumComponent } from '../../../common/view/EmptyAlbumComponent';
|
||||
import { PeerInfo } from '../../../common/model/browser/album/PeerInfo';
|
||||
import router from '@system.router';
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
|
||||
@Component
|
||||
export struct DistributedAlbumGriItem {
|
||||
@ -129,7 +129,7 @@ export struct DistributedAlbumGriItem {
|
||||
.onClick(() => {
|
||||
this.logger.info(`After onClick: ${JSON.stringify(this.item)}`);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/album/DistributedAlbumSetPage',
|
||||
uri: 'feature/distributedAlbum/view/DistributedAlbumSetPage',
|
||||
params: {
|
||||
item: JSON.stringify(this.item)
|
||||
}
|
@ -13,35 +13,18 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
|
||||
@Component
|
||||
export struct NewAlbumPageActionBar {
|
||||
onMenuClicked: Function;
|
||||
private logger: Logger = new Logger('NewAlbumPageActionBar');
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
export class AlbumSelectBarModel {
|
||||
createActionBar(): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.STANDARD_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.SINGLE)
|
||||
.setTitle($r('app.string.title_select_photos'));
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from './Logger'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
|
@ -15,22 +15,23 @@
|
||||
|
||||
import router from '@system.router'
|
||||
import { AlbumSelectGridItemNewStyle } from './AlbumSelectGridItemNewStyle'
|
||||
import { AlbumSetDataSource } from '../../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { NoPhotoComponent } from '../../../../common/view/NoPhotoComponent'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils'
|
||||
import { MediaDataSource } from '../../../../common/model/browser/photo/MediaDataSource'
|
||||
import { NewAlbumPageActionBar } from './NewAlbumPageActionBar'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { UiUtil } from '../../utils/UiUtil'
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine';
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager';
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { AlbumSetDataSource } from '../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { NoPhotoComponent } from '../../../common/view/NoPhotoComponent'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils'
|
||||
import { MediaDataSource } from '../../../common/model/browser/photo/MediaDataSource'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { UiUtil } from '../utils/UiUtil'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine';
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { AlbumSelectBarModel } from '../model/AlbumSelectBarModel';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -49,6 +50,7 @@ export struct AlbumSelect {
|
||||
private dataSource: MediaDataSource = new MediaDataSource(Constants.DEFAULT_SLIDING_WIN_SIZE);
|
||||
private mSelectManager = new SelectManager();
|
||||
private albumInfo: AlbumInfo = undefined;
|
||||
private barModel: AlbumSelectBarModel = new AlbumSelectBarModel()
|
||||
|
||||
aboutToAppear(): void {
|
||||
TraceControllerUtils.startTrace('AlbumSetPageAboutToAppear');
|
||||
@ -133,7 +135,10 @@ export struct AlbumSelect {
|
||||
justifyContent: FlexAlign.Start,
|
||||
alignItems: ItemAlign.Start
|
||||
}) {
|
||||
NewAlbumPageActionBar({ onMenuClicked: this.onMenuClicked })
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
Stack() {
|
||||
if (this.isEmpty) {
|
@ -13,15 +13,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from './EmptyAlbumComponent';
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCast } from '../../../../common//utils/BroadCast'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from '../../../common/view/EmptyAlbumComponent';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import router from '@system.router';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
|
||||
// The item of album grid, and it's new style.
|
||||
@Component
|
||||
@ -186,7 +186,7 @@ export struct AlbumSelectGridItemNewStyle {
|
||||
.onClick(() => {
|
||||
this.logger.info(`After onClick, MediaSet is: ${JSON.stringify(this.item)}`);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/album/NewAlbumPage',
|
||||
uri: 'feature/newAlbum/view/NewAlbumPage',
|
||||
params: {
|
||||
item: JSON.stringify(this.item)
|
||||
}
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { MenuOperationCallback } from '../../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { MenuOperationCallback } from '../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
|
||||
export class AddNotesMenuOperation implements MenuOperation, MenuOperationCallback {
|
||||
private menuContext: MenuContext;
|
@ -13,15 +13,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { MediaLibraryAccess } from '../../../../common/access/MediaLibraryAccess';
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { MenuOperationCallback } from '../../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { Constants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { MediaLibraryAccess } from '../../../common/access/MediaLibraryAccess';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { MenuOperationCallback } from '../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { Constants } from '../../../common/model/browser/photo/Constants'
|
||||
|
||||
export class DeleteMenuOperation implements MenuOperation, MenuOperationCallback {
|
||||
private menuContext: MenuContext;
|
@ -13,11 +13,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { Constants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { Constants } from '../../../common/model/browser/photo/Constants'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
|
||||
export class FavoriteMenuOperation implements MenuOperation {
|
||||
private menuContext: MenuContext;
|
@ -14,12 +14,12 @@
|
||||
*/
|
||||
|
||||
import router from '@system.router'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { JumpSourceToMain } from '../../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { Constants } from '../../../../common/model/common/Constants';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { JumpSourceToMain } from '../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { Constants } from '../../../common/model/common/Constants';
|
||||
|
||||
export class GotoPhotosMenuOperation implements MenuOperation {
|
||||
private logger: Logger = new Logger('GotoPhotosMenuOperation');
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { MenuOperationCallback } from '../../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { Constants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { MenuOperationCallback } from '../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { Constants } from '../../../common/model/browser/photo/Constants'
|
||||
|
||||
export class RecoverMenuOperation implements MenuOperation, MenuOperationCallback {
|
||||
private menuContext: MenuContext;
|
@ -13,15 +13,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { MenuOperationCallback } from '../../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../../common/interface/BrowserDataFactory'
|
||||
import { Constants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { UiUtil } from '../../../../common/utils/UiUtil';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { MenuOperationCallback } from '../../../common/view/browserOperation/MenuOperationCallback'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../common/interface/BrowserDataFactory'
|
||||
import { Constants } from '../../../common/model/browser/photo/Constants'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil';
|
||||
|
||||
export class RenameMenuOperation implements MenuOperation, MenuOperationCallback {
|
||||
private menuContext: MenuContext;
|
@ -13,12 +13,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Constants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../../common/interface/BrowserDataFactory'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { Constants } from '../../../common/model/browser/photo/Constants'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { BrowserDataFactory } from '../../../common/interface/BrowserDataFactory'
|
||||
|
||||
export class RotateMenuOperation implements MenuOperation {
|
||||
private menuContext: MenuContext;
|
@ -15,48 +15,47 @@
|
||||
*/
|
||||
|
||||
import router from '@system.router'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../../common/interface/MenuOperationFactory'
|
||||
import { GotoPhotosMenuOperation } from './GotoPhotosMenuOperation'
|
||||
import { DeleteMenuOperation } from './DeleteMenuOperation'
|
||||
import { RecoverMenuOperation } from './RecoverMenuOperation'
|
||||
import { MoveMenuOperation } from '../../../../common/view/browserOperation/MoveMenuOperation'
|
||||
import { CopyMenuOperation } from '../../../../common/view/browserOperation/CopyMenuOperation'
|
||||
import { FavoriteMenuOperation } from './FavoriteMenuOperation'
|
||||
import { DateUtil } from '../../../../common/utils/DateUtil'
|
||||
import { CustomDialogView } from '../../../../common/view/dialog/CustomDialogView'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { MediaItem } from '../../../../common/model/browser/photo/MediaItem'
|
||||
import { PhotoDataSource } from '../../../../common/model/browser/photo/PhotoDataSource'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { UriDataSource } from '../../../../common/model/browser/photo/UriDataSource'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { Constants as PhotoConstants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { PhotoBrowserBg } from '../../../../common/view/PhotoBrowserBg'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../common/interface/MenuOperationFactory'
|
||||
import { GotoPhotosMenuOperation } from '../operation/GotoPhotosMenuOperation'
|
||||
import { DeleteMenuOperation } from '../operation/DeleteMenuOperation'
|
||||
import { RecoverMenuOperation } from '../operation/RecoverMenuOperation'
|
||||
import { MoveMenuOperation } from '../../../common/view/browserOperation/MoveMenuOperation'
|
||||
import { CopyMenuOperation } from '../../../common/view/browserOperation/CopyMenuOperation'
|
||||
import { FavoriteMenuOperation } from '../operation/FavoriteMenuOperation'
|
||||
import { DateUtil } from '../../../common/utils/DateUtil'
|
||||
import { CustomDialogView } from '../../../common/view/dialog/CustomDialogView'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { MediaItem } from '../../../common/model/browser/photo/MediaItem'
|
||||
import { PhotoDataSource } from '../../../common/model/browser/photo/PhotoDataSource'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { UriDataSource } from '../../../common/model/browser/photo/UriDataSource'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { Constants as PhotoConstants } from '../../../common/model/browser/photo/Constants'
|
||||
import { PhotoBrowserBg } from '../../../common/view/PhotoBrowserBg'
|
||||
import { PhotoBrowserActionBar } from './PhotoBrowserActionBar'
|
||||
import { ToolBar } from '../../../../common/view/actionbar/ToolBar'
|
||||
import { PhotoSwiper } from '../../../../common/view/PhotoSwiper'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { JumpSourceToMain } from '../../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { RenameMenuOperation } from './RenameMenuOperation'
|
||||
import { RotateMenuOperation } from './RotateMenuOperation'
|
||||
import { AddNotesMenuOperation } from './AddNotesMenuOperation'
|
||||
import { MediaLibraryAccess } from '../../../../common/access/MediaLibraryAccess'
|
||||
import { MediaOperationType } from '../../../../common/model/common/MediaOperationType'
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { UiUtil } from '../../../../common/utils/UiUtil';
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { CommonObserverCallback } from '../../../../common/model/browser/CommonObserverCallback';
|
||||
import { MediaObserver } from '../../../../common/model/browser/dataObserver/MediaObserver';
|
||||
import mMultimodalInputManager from '../../../../common/model/common/MultimodalInputManager'
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils'
|
||||
import { PhotoBrowserHolder } from '../../../../common/view/PhotoBrowserHolder';
|
||||
import { ToolBar } from '../../../common/view/actionbar/ToolBar'
|
||||
import { PhotoSwiper } from '../../../common/view/PhotoSwiper'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { JumpSourceToMain } from '../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { RenameMenuOperation } from '../operation/RenameMenuOperation'
|
||||
import { RotateMenuOperation } from '../operation/RotateMenuOperation'
|
||||
import { AddNotesMenuOperation } from '../operation/AddNotesMenuOperation'
|
||||
import { MediaLibraryAccess } from '../../../common/access/MediaLibraryAccess'
|
||||
import { MediaOperationType } from '../../../common/model/common/MediaOperationType'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil';
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { CommonObserverCallback } from '../../../common/model/browser/CommonObserverCallback';
|
||||
import { MediaObserver } from '../../../common/model/browser/dataObserver/MediaObserver';
|
||||
import mMultimodalInputManager from '../../../common/model/common/MultimodalInputManager'
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils'
|
||||
import { PhotoBrowserHolder } from '../../../common/view/PhotoBrowserHolder';
|
||||
import resourceManager from '@ohos.resourceManager';
|
||||
import { BrowserDataImpl } from '../../../../common/model/browser/BrowserDataImpl'
|
||||
|
||||
// page of large photo
|
||||
@Entry
|
||||
@ -67,7 +66,7 @@ struct PhotoBrowser {
|
||||
@Provide(dateTitle) photoDate: string = '';
|
||||
@Provide(timeLocationTitle) timeAndLocation: string = '';
|
||||
@Provide menuList: Array<Action> = new Array<Action>();
|
||||
@Provide toolMenuList: Array<Action> = new Array<Action>();
|
||||
private toolMenuList: Array<Action> = new Array<Action>();
|
||||
@Provide topMenuList: Array<Action> = new Array<Action>();
|
||||
@Provide moreMenuList: Array<Action> = new Array<Action>();
|
||||
@Provide broadCast: BroadCast = new BroadCast();
|
||||
@ -812,7 +811,7 @@ struct PhotoBrowser {
|
||||
}
|
||||
this.logger.info(`item.displayName: ${item.displayName} item ${JSON.stringify(item)}`);
|
||||
router.replace({
|
||||
uri: 'feature/browser/view/photoGrid/PhotoGridPage',
|
||||
uri: 'feature/photoGrid/view/PhotoGridPage',
|
||||
params: {
|
||||
item: JSON.stringify(item)
|
||||
}
|
||||
@ -897,7 +896,10 @@ struct PhotoBrowser {
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
})
|
||||
ToolBar({
|
||||
onMenuClicked: this.onMenuClicked, isFromPhotoBrowser: true
|
||||
isShowBar: $isShowBar,
|
||||
toolMenuList: this.toolMenuList,
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isFromPhotoBrowser: true
|
||||
})
|
||||
PhotoBrowserHolder()
|
||||
CustomDialogView()
|
@ -13,16 +13,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarColorMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarColorMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
|
||||
@Component
|
||||
export struct PhotoBrowserActionBar {
|
||||
@Consume isShowBar: boolean;
|
||||
@StorageLink('isSplitMode') isSplitMode: boolean = ScreenManager.getInstance().isSplitMode();
|
||||
@Consume menuList: Action[];
|
||||
@StorageLink('leftBlank') leftBlank: [number, number, number, number]
|
||||
= [0, ScreenManager.getInstance().getStatusBarHeight(), 0, ScreenManager.getInstance().getNaviBarHeight()];
|
||||
onMenuClicked: Function;
|
||||
@ -35,20 +35,19 @@ export struct PhotoBrowserActionBar {
|
||||
.setLeftAction(Action.BACK)
|
||||
.setAlpha(ActionBarProp.PHOTO_BROWSER_ACTIONBAR_ALPHA)
|
||||
.setMode(ActionBarMode.TOP_MODE)
|
||||
.setColorMode(this.isVideoPage ? ActionBarColorMode.TRANSPARENT : ActionBarColorMode.NORMAL);
|
||||
.setColorMode(this.isVideoPage ? ActionBarColorMode.TRANSPARENT : ActionBarColorMode.NORMAL)
|
||||
.setMenuList(this.menuList)
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
if (this.isShowBar) {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isVideoPage: this.isVideoPage
|
||||
})
|
||||
}
|
||||
ActionBar({
|
||||
isShowBar: $isShowBar,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isVideoPage: this.isVideoPage
|
||||
})
|
||||
}
|
||||
.markAnchor({ x: '0%', y: '0%' })
|
||||
.position({ x: '0%', y: this.leftBlank[1] })
|
@ -14,23 +14,23 @@
|
||||
*/
|
||||
|
||||
import router from '@system.router'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { SelectUtil } from '../../../../common/model/browser/photo/SelectUtil'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { MediaItem } from '../../../../common/model/browser/photo/MediaItem'
|
||||
import { PhotoDataSource } from '../../../../common/model/browser/photo/PhotoDataSource'
|
||||
import { ThirdSelectPhotoBrowserActionBar } from '../../../../common/view/ThirdSelectPhotoBrowserActionBar'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { PhotoBrowserBg } from '../../../../common/view/PhotoBrowserBg'
|
||||
import { Constants as PhotoConstants } from '../../../../common/model/browser/photo/Constants'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { PhotoSwiper } from '../../../../common/view/PhotoSwiper'
|
||||
import mMultimodalInputManager from '../../../../common/model/common/MultimodalInputManager'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { SelectUtil } from '../../../common/model/browser/photo/SelectUtil'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { MediaItem } from '../../../common/model/browser/photo/MediaItem'
|
||||
import { PhotoDataSource } from '../../../common/model/browser/photo/PhotoDataSource'
|
||||
import { ThirdSelectPhotoBrowserActionBar } from '../../../common/view/ThirdSelectPhotoBrowserActionBar'
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { PhotoBrowserBg } from '../../../common/view/PhotoBrowserBg'
|
||||
import { Constants as PhotoConstants } from '../../../common/model/browser/photo/Constants'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { PhotoSwiper } from '../../../common/view/PhotoSwiper'
|
||||
import mMultimodalInputManager from '../../../common/model/common/MultimodalInputManager'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager';
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
|
||||
// select mode
|
||||
@Entry
|
@ -13,16 +13,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import router from '@system.router'
|
||||
import { DateUtil } from '../../../../common/utils/DateUtil'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { DateUtil } from '../../../common/utils/DateUtil'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { PhotoBrowserActionBar } from './PhotoBrowserActionBar'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager';
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager';
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils';
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager';
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager';
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils';
|
||||
|
||||
@Entry
|
||||
@Component
|
@ -1,108 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
|
||||
@Component
|
||||
export struct AlbumSetPageActionBar {
|
||||
@Consume isAlbumSetSelectedMode: boolean;
|
||||
@Consume('selectedCount') selectedAlbumsCount: number;
|
||||
@Consume isDisableRename: boolean;
|
||||
@Consume isDisableDelete: boolean;
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('AlbumSetPageActionBar');
|
||||
|
||||
private createHorizontalActionBar(): ActionBarProp {
|
||||
this.logger.info(`createHorizontalActionBar, isAlbumSetSelectedMode: ${this.isAlbumSetSelectedMode}`);
|
||||
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
|
||||
actionBarProp
|
||||
.setHasTabBar(this.isSidebar)
|
||||
.setTitle($r('app.string.tab_albums'))
|
||||
.setIsHeadTitle(true);
|
||||
|
||||
if (this.isAlbumSetSelectedMode) {
|
||||
menuList.push(
|
||||
((!this.isDisableRename && this.selectedAlbumsCount == 1) ? Action.RENAME : Action.RENAME_INVALID),
|
||||
((!this.isDisableDelete && this.selectedAlbumsCount > 0) ? Action.DELETE : Action.DELETE_INVALID));
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
menuList.push(Action.NEW)
|
||||
actionBarProp
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
}
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
this.logger.info(`createActionBar, isAlbumSetSelectedMode: ${this.isAlbumSetSelectedMode}`);
|
||||
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
|
||||
menuList.push(Action.NEW);
|
||||
|
||||
actionBarProp
|
||||
.setHasTabBar(this.isSidebar)
|
||||
.setTitle($r('app.string.tab_albums'))
|
||||
.setIsHeadTitle(true);
|
||||
|
||||
if (this.isAlbumSetSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
actionBarProp
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
}
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
if (this.isHorizontal) {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createHorizontalActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
} else {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ToolBar } from '../../../../common/view/actionbar/ToolBar'
|
||||
|
||||
@Component
|
||||
export struct AlbumSetPageToolBar {
|
||||
@Provide isShowBar: boolean = true;
|
||||
@Provide toolMenuList: Array<Action> = new Array<Action>();
|
||||
@Consume @Watch('updateToolbar') isAlbumSetSelectedMode: boolean;
|
||||
@Consume('selectedCount') @Watch('updateToolbar') selectedAlbumsCount: number;
|
||||
@Consume isDisableRename: boolean;
|
||||
@Consume isDisableDelete: boolean;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('AlbumSetPageToolBar');
|
||||
|
||||
aboutToAppear(): void {
|
||||
this.logger.info('aboutToAppear');
|
||||
this.updateToolbar();
|
||||
}
|
||||
|
||||
private updateToolbar(): void {
|
||||
this.logger.info('updateToolbar');
|
||||
if (this.isAlbumSetSelectedMode) {
|
||||
this.logger.info('pushToolbar');
|
||||
this.toolMenuList = [];
|
||||
this.toolMenuList.push(
|
||||
((!this.isDisableRename && this.selectedAlbumsCount == 1) ? Action.RENAME : Action.RENAME_INVALID),
|
||||
((!this.isDisableDelete && this.selectedAlbumsCount > 0) ? Action.DELETE : Action.DELETE_INVALID));
|
||||
}
|
||||
}
|
||||
|
||||
build() {
|
||||
ToolBar({
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
|
||||
@Component
|
||||
export struct DistributedAlbumSetPageActionBar {
|
||||
name: Resource;
|
||||
onMenuClicked: Function;
|
||||
@Provide moreMenuList: Action[] = [];
|
||||
logger: Logger = new Logger('DistributedAlbumSetPageActionBar');
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(this.name)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
|
||||
@Component
|
||||
export struct RecycleAlbum {
|
||||
@State icHeight: number = 0;
|
||||
@Consume gridHeight: number;
|
||||
logger: Logger = new Logger('RecycleAlbum');
|
||||
gridAspectRatio = Constants.CARD_ASPECT_RATIO;
|
||||
|
||||
aboutToAppear(): void {
|
||||
let numberHeight = px2vp(fp2px(Constants.TEXT_SIZE_BODY2));
|
||||
let nameHeight = px2vp(fp2px(Constants.TEXT_SIZE_SUB_TITLE1));
|
||||
this.icHeight = this.gridHeight - Constants.ALBUM_SET_NEW_ICON_MARGIN;
|
||||
-numberHeight - nameHeight;
|
||||
}
|
||||
|
||||
build() {
|
||||
Flex({
|
||||
direction: FlexDirection.Column,
|
||||
justifyContent: FlexAlign.Start,
|
||||
alignItems: ItemAlign.Start
|
||||
}) {
|
||||
Stack({ alignContent: Alignment.Center }) {
|
||||
Image($r('app.media.ic_gallery_public_delete_line'))
|
||||
.width($r('app.float.recycle_album_cover_icon_size'))
|
||||
.height($r('app.float.recycle_album_cover_icon_size'))
|
||||
.fillColor($r('app.color.empty_or_recycle_album_icon'))
|
||||
.onError((msg: {
|
||||
componentWidth: number,
|
||||
componentHeight: number
|
||||
}) => {
|
||||
this.logger.error(`image load failed and its componentWidth is: ${msg.componentWidth}`);
|
||||
this.logger.error(`image load failed and its componentHeight is: ${msg.componentHeight}`);
|
||||
})
|
||||
.onComplete((msg: {
|
||||
width: number,
|
||||
height: number,
|
||||
componentWidth: number,
|
||||
componentHeight: number
|
||||
}) => {
|
||||
this.logger.debug(`image load successfully and its width is: ${msg.width}`);
|
||||
this.logger.debug(`image load successfully and its height is: ${msg.height}`);
|
||||
this.logger.debug(`image load successfully and its componentWidth is: ${msg.componentWidth}`);
|
||||
this.logger.debug(`image load successfully and its componentHeight is: ${msg.componentHeight}`);
|
||||
})
|
||||
}
|
||||
.height(this.icHeight)
|
||||
.width('100%')
|
||||
}
|
||||
.aspectRatio(this.gridAspectRatio)
|
||||
.backgroundColor($r('app.color.empty_or_recycle_album_back'))
|
||||
.border({ radius: $r('sys.float.ohos_id_corner_radius_default_l') })
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { Constants as PhotoConstants } from '../../../../common/model/browser/photo/Constants'
|
||||
|
||||
@Component
|
||||
export struct TipPopup {
|
||||
@State isShowPop: boolean = false;
|
||||
@Consume broadCast: BroadCast;
|
||||
|
||||
aboutToAppear() {
|
||||
this.broadCast.on(PhotoConstants.POP_APPEAR, () => {
|
||||
this.isShowPop = true;
|
||||
});
|
||||
this.broadCast.on(PhotoConstants.POP_DISAPPEAR, () => {
|
||||
this.isShowPop = false;
|
||||
});
|
||||
}
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Text($r('app.string.video_pause'))
|
||||
.fontSize($r('sys.float.ohos_id_text_size_headline7'))
|
||||
.fontFamily($r('app.string.id_text_font_family_regular'))
|
||||
.fontColor($r('app.color.white'))
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.align(Alignment.Center)
|
||||
}
|
||||
.backgroundColor($r('app.color.detail_view_bg_color'))
|
||||
.padding($r('app.float.popup_padding'))
|
||||
.visibility(this.isShowPop ? Visibility.Visible : Visibility.None)
|
||||
.borderRadius($r('app.float.tip_popup_border_radius'))
|
||||
}
|
||||
}
|
@ -1,122 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine';
|
||||
|
||||
@Component
|
||||
export struct PhotoGridPageActionBar {
|
||||
@Consume isSelectedMode: boolean;
|
||||
@Consume isAllSelected: boolean;
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
@Consume('selectedCount') selectedCount: number;
|
||||
@Consume isEmpty: boolean;
|
||||
title: string;
|
||||
albumId: string;
|
||||
isRecycle: boolean;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('PhotoGridPageActionBar');
|
||||
isDistributedAlbum: boolean;
|
||||
|
||||
private createHorizontalActionBar(): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(this.title)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
if (this.isSelectedMode) {
|
||||
if (this.isRecycle) {
|
||||
menuList.push(
|
||||
Boolean(this.selectedCount) ? Action.RECOVER : Action.RECOVER_INVALID,
|
||||
Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID,
|
||||
this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL);
|
||||
} else if (this.isDistributedAlbum) {
|
||||
menuList.push(
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
(Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(Boolean(this.selectedCount) ? Action.DOWNLOAD : Action.DOWNLOAD_INVALID));
|
||||
} else {
|
||||
menuList.push(
|
||||
(Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID, Action.MORE);
|
||||
}
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
if (!AlbumDefine.ALBUM_DISABLE_NEW_LIST.has(this.albumId) && this.isDistributedAlbum == false) {
|
||||
menuList.push(Action.NEW);
|
||||
}
|
||||
if (this.isRecycle && !this.isEmpty) {
|
||||
menuList.push(Action.CLEAR_RECYCLE);
|
||||
}
|
||||
}
|
||||
actionBarProp.setMenuList(menuList);
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
|
||||
if (!AlbumDefine.ALBUM_DISABLE_NEW_LIST.has(this.albumId) && this.isDistributedAlbum == false) {
|
||||
menuList.push(Action.NEW);
|
||||
}
|
||||
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(this.title)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
this.logger.info(`createActionBar, isSelectedMode: ${this.isSelectedMode}`);
|
||||
if (this.isSelectedMode) {
|
||||
menuList = [];
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
if (this.isHorizontal) {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createHorizontalActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
} else {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ToolBar } from '../../../../common/view/actionbar/ToolBar'
|
||||
|
||||
@Component
|
||||
export struct PhotoGridPageToolBar {
|
||||
@Consume @Watch('updateToolbar') isSelectedMode: boolean;
|
||||
@Consume @Watch('updateToolbar') isAllSelected: boolean;
|
||||
@Consume('selectedCount') @Watch('updateToolbar') selectedCount: number;
|
||||
@Consume isEmpty: boolean;
|
||||
isRecycleAlbum: boolean;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('PhotoGridPageToolBar');
|
||||
isDistributedAlbum: boolean;
|
||||
@Provide toolMenuList: Array<Action> = new Array<Action>();
|
||||
|
||||
aboutToAppear(): void {
|
||||
this.logger.info('aboutToAppear');
|
||||
this.updateToolbar();
|
||||
}
|
||||
|
||||
private updateToolbar(): void {
|
||||
this.logger.info('updateToolbar');
|
||||
if (this.isSelectedMode) {
|
||||
this.toolMenuList = [];
|
||||
if (this.isRecycleAlbum) {
|
||||
this.toolMenuList.push((Boolean(this.selectedCount) ? Action.RECOVER : Action.RECOVER_INVALID),
|
||||
(Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID),
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL));
|
||||
} else if (this.isDistributedAlbum) {
|
||||
this.toolMenuList.push(
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
(Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(Boolean(this.selectedCount) ? Action.DOWNLOAD : Action.DOWNLOAD_INVALID));
|
||||
} else {
|
||||
this.toolMenuList.push((Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
(Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID), Action.MORE);
|
||||
}
|
||||
} else {
|
||||
if (this.isRecycleAlbum) {
|
||||
this.toolMenuList = [];
|
||||
this.toolMenuList.push(this.isEmpty ? Action.CLEAR_RECYCLE_INVALID : Action.CLEAR_RECYCLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
build() {
|
||||
ToolBar({
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
@ -13,12 +13,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger as RootLogger } from '../../../common/utils/Logger'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
|
||||
const MODULE_ALBUM = 'Album_';
|
||||
|
||||
export class Logger extends RootLogger {
|
||||
constructor(module: string) {
|
||||
super(MODULE_ALBUM + module);
|
||||
export class DistributedAlbumBarModel {
|
||||
createActionBar(name: Resource | string): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(name)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
return actionBarProp;
|
||||
}
|
||||
}
|
@ -13,11 +13,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from './EmptyAlbumComponent';
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager';
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { EmptyAlbumComponent } from '../../../common/view/EmptyAlbumComponent';
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import router from '@system.router';
|
||||
|
||||
// Traditional style grid item for distributed album set page
|
||||
@ -187,7 +187,7 @@ export struct AlbumGridItemTraditionalStyle {
|
||||
this.logger.info(`After onClick : ${JSON.stringify(this.item)}`);
|
||||
let name = this.item.deviceName ? `${this.item.deviceName}(${this.item.displayName})` : this.item.displayName;
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photoGrid/PhotoGridPage',
|
||||
uri: 'feature/photoGrid/view/PhotoGridPage',
|
||||
params: {
|
||||
item: JSON.stringify(this.item),
|
||||
isDistributedAlbum: true,
|
@ -14,20 +14,21 @@
|
||||
*/
|
||||
|
||||
import router from '@system.router';
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { AlbumGridItemTraditionalStyle } from './AlbumGridItemTraditionalStyle'
|
||||
import { AlbumSetDataSource } from '../../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { DistributedAlbumSetPageActionBar } from './DistributedAlbumSetPageActionBar'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { NoPhotoIndexComponent } from '../../../../common/view/NoPhotoIndexComponent'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { JumpSourceToMain } from '../../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { CommonObserverCallback } from '../../../../common/model/browser/CommonObserverCallback'
|
||||
import { MediaObserver } from '../../../../common/model/browser/dataObserver/MediaObserver'
|
||||
import { AlbumSetDataSource } from '../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { NoPhotoIndexComponent } from '../../../common/view/NoPhotoIndexComponent'
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { JumpSourceToMain } from '../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { CommonObserverCallback } from '../../../common/model/browser/CommonObserverCallback'
|
||||
import { MediaObserver } from '../../../common/model/browser/dataObserver/MediaObserver'
|
||||
import { DistributedAlbumBarModel } from '../model/DistributedAlbumBarModel';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -39,13 +40,15 @@ export struct DistributedAlbumSetPage {
|
||||
@Provide broadCast: BroadCast = new BroadCast();
|
||||
@Provide isAlbumSetSelectedMode: boolean = false;
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
private dataObserver: CommonObserverCallback = new CommonObserverCallback(this);
|
||||
@Provide moreMenuList: Action[] = [];
|
||||
title: any;
|
||||
albums: AlbumSetDataSource
|
||||
isActive: boolean = false; // Whether the page is in the foreground
|
||||
logger: Logger = new Logger('DistributedAlbumSetPage')
|
||||
scroller: Scroller = new Scroller();
|
||||
private dataObserver: CommonObserverCallback = new CommonObserverCallback(this);
|
||||
private deviceId: string = ''
|
||||
private barModel: DistributedAlbumBarModel = new DistributedAlbumBarModel()
|
||||
|
||||
onMenuClicked(action: Action, arg: any[]) {
|
||||
this.logger.info(`onMenuClicked, action: ${action.actionID}`);
|
||||
@ -162,9 +165,9 @@ export struct DistributedAlbumSetPage {
|
||||
justifyContent: FlexAlign.Start,
|
||||
alignItems: ItemAlign.Start
|
||||
}) {
|
||||
DistributedAlbumSetPageActionBar({
|
||||
name: this.title,
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(this.title),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
Stack() {
|
@ -12,22 +12,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Action } from '../../../common/view/browserOperation/Action';
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../common/view/browserOperation/ActionBarMode';
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp';
|
||||
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
|
||||
@Component
|
||||
export struct AlbumSelectActionBar {
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('AlbumSetPageActionBar');
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
export class NewAlbumBarModel {
|
||||
createActionBar(): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
menuList.push(Action.OK);
|
||||
@ -38,14 +28,4 @@ export struct AlbumSelectActionBar {
|
||||
.setMenuList(menuList);
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -14,29 +14,30 @@
|
||||
*/
|
||||
|
||||
import router from '@system.router'
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { ImageGridItemComponent } from '../../../../common/view/ImageGridItemComponent'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { CustomDialogView } from '../../../../common/view/dialog/CustomDialogView'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { MediaDataSource } from '../../../../common/model/browser/photo/MediaDataSource'
|
||||
import { MediaItem } from '../../../../common/model/browser/photo/MediaItem'
|
||||
import { NoPhotoComponent } from '../../../../common/view/NoPhotoComponent'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils'
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { AlbumSelectActionBar } from './AlbumSelectActionBar'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../../common/interface/MenuOperationFactory'
|
||||
import { CopyMenuOperation } from '../../../../common/view/browserOperation/CopyMenuOperation'
|
||||
import { MoveMenuOperation } from '../../../../common/view/browserOperation/MoveMenuOperation'
|
||||
import { JumpSourceToMain } from '../../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { GridScrollBar } from '../../../../common/view/GridScrollBar';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { ImageGridItemComponent } from '../../../common/view/ImageGridItemComponent'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { CustomDialogView } from '../../../common/view/dialog/CustomDialogView'
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { MediaDataSource } from '../../../common/model/browser/photo/MediaDataSource'
|
||||
import { MediaItem } from '../../../common/model/browser/photo/MediaItem'
|
||||
import { NoPhotoComponent } from '../../../common/view/NoPhotoComponent'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../common/interface/MenuOperationFactory'
|
||||
import { CopyMenuOperation } from '../../../common/view/browserOperation/CopyMenuOperation'
|
||||
import { MoveMenuOperation } from '../../../common/view/browserOperation/MoveMenuOperation'
|
||||
import { JumpSourceToMain } from '../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { GridScrollBar } from '../../../common/view/GridScrollBar';
|
||||
import { NewAlbumBarModel } from '../model/NewAlbumBarModel';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -67,6 +68,7 @@ export struct NewAlbumPage {
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
private isNewAlbum: boolean = AppStorage.Get(Constants.APP_KEY_NEW_ALBUM);
|
||||
private targetAlbum: AlbumInfo = AppStorage.Get(Constants.APP_KEY_NEW_ALBUM_TARGET);
|
||||
private barModel: NewAlbumBarModel = new NewAlbumBarModel()
|
||||
|
||||
onIndexChange() {
|
||||
this.logger.info(`onIndexChange ${this.PhotoGridPageIndex}`)
|
||||
@ -179,7 +181,7 @@ export struct NewAlbumPage {
|
||||
})
|
||||
} else {
|
||||
router.back({
|
||||
uri: 'feature/browser/view/photoGrid/PhotoGridPage',
|
||||
uri: 'feature/photoGrid/view/PhotoGridPage',
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -248,7 +250,7 @@ export struct NewAlbumPage {
|
||||
self.logger.info(`jump to photo browser at index: ${targetIndex}`);
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -263,7 +265,7 @@ export struct NewAlbumPage {
|
||||
self.logger.info(`jump to photo browser, index: ${targetIndex}, transition: ${name}`);
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/SelectPhotoBrowser',
|
||||
uri: 'feature/browser/view/SelectPhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -325,7 +327,11 @@ export struct NewAlbumPage {
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
AlbumSelectActionBar({ onMenuClicked: this.onMenuClicked })
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.barModel.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
if (this.isEmpty) {
|
||||
NoPhotoComponent({
|
||||
title: $r('app.string.no_distributed_photo_head_title_album')
|
113
entry/src/main/ets/feature/photoGrid/model/PhotoGridBarModel.ts
Normal file
113
entry/src/main/ets/feature/photoGrid/model/PhotoGridBarModel.ts
Normal file
@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine';
|
||||
|
||||
|
||||
export class PhotoGridBarModel {
|
||||
private isDistributedAlbum: boolean = false
|
||||
private albumId: string = ''
|
||||
|
||||
setAlbumId(albumId: string) {
|
||||
this.albumId = albumId
|
||||
}
|
||||
|
||||
setDistributedAlbum(isDistributedAlbum: boolean) {
|
||||
this.isDistributedAlbum = isDistributedAlbum
|
||||
}
|
||||
|
||||
createActionBar(title: string | Resource, isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean, isEmpty: boolean): ActionBarProp {
|
||||
let isHorizontal = ScreenManager.getInstance().isHorizontal()
|
||||
if (isHorizontal) {
|
||||
return this.createHorizontalActionBar(title, isSelectedMode, selectedCount, isAllSelected, isEmpty)
|
||||
} else {
|
||||
return this.createVerticalActionBar(title, isSelectedMode)
|
||||
}
|
||||
}
|
||||
|
||||
private createHorizontalActionBar(title: string | Resource, isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean, isEmpty: boolean): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(title)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
let menuList: Array<Action> = this.getMenuList(isSelectedMode, selectedCount, isAllSelected, isEmpty);
|
||||
if (isSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
} else {
|
||||
if (!AlbumDefine.ALBUM_DISABLE_NEW_LIST.has(this.albumId) && !this.isDistributedAlbum) {
|
||||
menuList.push(Action.NEW);
|
||||
}
|
||||
}
|
||||
actionBarProp.setMenuList(menuList);
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createVerticalActionBar(title: string | Resource, isSelectedMode: boolean): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
|
||||
if (!AlbumDefine.ALBUM_DISABLE_NEW_LIST.has(this.albumId) && !this.isDistributedAlbum) {
|
||||
menuList.push(Action.NEW);
|
||||
}
|
||||
|
||||
actionBarProp
|
||||
.setLeftAction(Action.BACK)
|
||||
.setTitle(title)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
if (isSelectedMode) {
|
||||
menuList = [];
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
getMenuList(isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean, isEmpty: boolean): Array<Action> {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
if (isSelectedMode) {
|
||||
if (this.albumId == AlbumDefine.ALBUM_ID_RECYCLE) {
|
||||
menuList.push(Boolean(selectedCount) ? Action.RECOVER : Action.RECOVER_INVALID)
|
||||
menuList.push(Boolean(selectedCount) ? Action.DELETE : Action.DELETE_INVALID)
|
||||
menuList.push(isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL);
|
||||
} else if (this.isDistributedAlbum) {
|
||||
menuList.push(isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL)
|
||||
menuList.push(Boolean(selectedCount) ? Action.SHARE : Action.SHARE_INVALID)
|
||||
menuList.push(Boolean(selectedCount) ? Action.DOWNLOAD : Action.DOWNLOAD_INVALID)
|
||||
} else {
|
||||
menuList.push(Boolean(selectedCount) ? Action.SHARE : Action.SHARE_INVALID)
|
||||
menuList.push(isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
menuList.push(Boolean(selectedCount) ? Action.DELETE : Action.DELETE_INVALID, Action.MORE)
|
||||
}
|
||||
} else {
|
||||
if (this.albumId == AlbumDefine.ALBUM_ID_RECYCLE && !isEmpty) {
|
||||
menuList.push(Action.CLEAR_RECYCLE);
|
||||
}
|
||||
}
|
||||
return menuList
|
||||
}
|
||||
}
|
@ -13,13 +13,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../../common/interface/BrowserOperationFactory'
|
||||
import { ProcessMenuOperation } from '../../../../common/view/browserOperation/ProcessMenuOperation';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BrowserOperationFactory } from '../../../common/interface/BrowserOperationFactory'
|
||||
import { ProcessMenuOperation } from '../../../common/view/browserOperation/ProcessMenuOperation';
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
|
||||
export class BatchRecoverMenuOperation extends ProcessMenuOperation {
|
||||
logger: Logger = new Logger('BatchRecoverMenuOperation');
|
@ -13,11 +13,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants';
|
||||
import { BatchDeleteMenuOperation } from '../../../../common/view/browserOperation/BatchDeleteMenuOperation';
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants';
|
||||
import { BatchDeleteMenuOperation } from '../../../common/view/browserOperation/BatchDeleteMenuOperation';
|
||||
|
||||
export class ClearRecycleMenuOperation extends BatchDeleteMenuOperation {
|
||||
logger: Logger = new Logger('ClearRecycleMenuOperation');
|
@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -15,40 +16,40 @@
|
||||
|
||||
import router from '@system.router'
|
||||
import prompt from '@system.prompt';
|
||||
import { Logger } from '../../utils/Logger'
|
||||
import { PhotoGridPageActionBar } from './PhotoGridPageActionBar'
|
||||
import { PhotoGridPageToolBar } from './PhotoGridPageToolBar'
|
||||
import { ImageGridItemComponent } from '../../../../common/view/ImageGridItemComponent'
|
||||
import { Action } from '../../../../common/view/browserOperation/Action'
|
||||
import { CustomDialogView } from '../../../../common/view/dialog/CustomDialogView'
|
||||
import { SelectManager } from '../../../../common/model/browser/SelectManager'
|
||||
import { BroadCast } from '../../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../../common/model/common/BroadCastConstants'
|
||||
import { Constants } from '../../../../common/model/common/Constants'
|
||||
import { MenuOperation } from '../../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../../common/interface/MenuOperationFactory'
|
||||
import { BatchDeleteMenuOperation } from '../../../../common/view/browserOperation/BatchDeleteMenuOperation'
|
||||
import { MediaDataSource } from '../../../../common/model/browser/photo/MediaDataSource'
|
||||
import { MediaItem } from '../../../../common/model/browser/photo/MediaItem'
|
||||
import { ScreenManager } from '../../../../common/model/common/ScreenManager'
|
||||
import { TraceControllerUtils } from '../../../../common/utils/TraceControllerUtils'
|
||||
import { ShareMenuOperation } from '../../../../common/view/browserOperation/ShareMenuOperation';
|
||||
import { BroadCastManager } from '../../../../common/model/common/BroadCastManager'
|
||||
import { JumpSourceToMain } from '../../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { UiUtil } from '../../../../common/utils/UiUtil';
|
||||
import { AlbumDefine } from '../../../../common/model/browser/AlbumDefine'
|
||||
import { MediaOperationType } from '../../../../common/model/common/MediaOperationType'
|
||||
import { CopyMenuOperation } from '../../../../common/view/browserOperation/CopyMenuOperation';
|
||||
import { MoveMenuOperation } from '../../../../common/view/browserOperation/MoveMenuOperation';
|
||||
import { GridScrollBar } from '../../../../common/view/GridScrollBar';
|
||||
import { BatchRecoverMenuOperation } from './BatchRecoverMenuOperation';
|
||||
import { ClearRecycleMenuOperation } from './ClearRecycleMenuOperation';
|
||||
import { AlbumInfo } from '../../../../common/model/browser/album/AlbumInfo';
|
||||
import { MediaObserver } from '../../../../common/model/browser/dataObserver/MediaObserver';
|
||||
import { CommonObserverCallback } from '../../../../common/model/browser/CommonObserverCallback';
|
||||
import { NoPhotoComponent } from '../../../../common/view/NoPhotoComponent';
|
||||
|
||||
import { Logger } from '../../../common/utils/Logger';
|
||||
import { ToolBar } from '../../../common/view/actionbar/ToolBar';
|
||||
import { ImageGridItemComponent } from '../../../common/view/ImageGridItemComponent'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { CustomDialogView } from '../../../common/view/dialog/CustomDialogView'
|
||||
import { SelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
import { MenuOperationFactory } from '../../../common/interface/MenuOperationFactory'
|
||||
import { BatchDeleteMenuOperation } from '../../../common/view/browserOperation/BatchDeleteMenuOperation'
|
||||
import { MediaDataSource } from '../../../common/model/browser/photo/MediaDataSource'
|
||||
import { MediaItem } from '../../../common/model/browser/photo/MediaItem'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { TraceControllerUtils } from '../../../common/utils/TraceControllerUtils'
|
||||
import { ShareMenuOperation } from '../../../common/view/browserOperation/ShareMenuOperation';
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { JumpSourceToMain } from '../../../common/model/browser/photo/JumpSourceToMain'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil';
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { MediaOperationType } from '../../../common/model/common/MediaOperationType'
|
||||
import { CopyMenuOperation } from '../../../common/view/browserOperation/CopyMenuOperation';
|
||||
import { MoveMenuOperation } from '../../../common/view/browserOperation/MoveMenuOperation';
|
||||
import { GridScrollBar } from '../../../common/view/GridScrollBar';
|
||||
import { BatchRecoverMenuOperation } from '../operation/BatchRecoverMenuOperation';
|
||||
import { ClearRecycleMenuOperation } from '../operation/ClearRecycleMenuOperation';
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { MediaObserver } from '../../../common/model/browser/dataObserver/MediaObserver';
|
||||
import { CommonObserverCallback } from '../../../common/model/browser/CommonObserverCallback';
|
||||
import { NoPhotoComponent } from '../../../common/view/NoPhotoComponent';
|
||||
import { PhotoGridBarModel } from '../model/PhotoGridBarModel';
|
||||
// Album Page
|
||||
@Entry
|
||||
@Component
|
||||
@ -82,6 +83,7 @@ export struct PhotoGridPage {
|
||||
routerStart = false;
|
||||
private dataObserver: CommonObserverCallback = new CommonObserverCallback(this);
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
private barModel: PhotoGridBarModel = new PhotoGridBarModel()
|
||||
|
||||
onIndexChange() {
|
||||
this.logger.info(`onIndexChange ${this.PhotoGridPageIndex}`)
|
||||
@ -97,7 +99,7 @@ export struct PhotoGridPage {
|
||||
switch (action) {
|
||||
case Action.BACK:
|
||||
if (AppStorage.Get(Constants.BACK_FROM_FORM_DETAIL)) {
|
||||
this.routerAblumSetPage();
|
||||
this.routerAlbumSetPage();
|
||||
} else {
|
||||
router.back();
|
||||
}
|
||||
@ -221,7 +223,7 @@ export struct PhotoGridPage {
|
||||
}
|
||||
}
|
||||
|
||||
routerAblumSetPage() {
|
||||
private routerAlbumSetPage() {
|
||||
router.replace({
|
||||
uri: this.isHorizontal === true ? 'product/pad/view/index' : 'product/phone/view/index',
|
||||
params: {
|
||||
@ -243,7 +245,7 @@ export struct PhotoGridPage {
|
||||
|
||||
routeToAddMediaPage(): void {
|
||||
router.push({
|
||||
uri: 'feature/browser/view/album/AlbumSelect',
|
||||
uri: 'feature/albumSelect/view/AlbumSelect',
|
||||
params: {
|
||||
albumInfo: JSON.stringify(this.albumInfo)
|
||||
}
|
||||
@ -414,7 +416,7 @@ export struct PhotoGridPage {
|
||||
|
||||
onBackPress() {
|
||||
if (AppStorage.Get(Constants.BACK_FROM_FORM_DETAIL)) {
|
||||
this.routerAblumSetPage();
|
||||
this.routerAlbumSetPage();
|
||||
return true;
|
||||
}
|
||||
if (this.isSelectedMode) {
|
||||
@ -460,9 +462,10 @@ export struct PhotoGridPage {
|
||||
this.albumInfo = JSON.parse(param.item.toString());
|
||||
this.title = this.albumInfo.displayName;
|
||||
this.dataSource.setAlbumId(this.albumInfo.id);
|
||||
|
||||
this.barModel.setAlbumId(this.albumInfo.id)
|
||||
if (param.isDistributedAlbum) {
|
||||
this.isDistributedAlbum = new Boolean(param.isDistributedAlbum).valueOf();
|
||||
this.barModel.setDistributedAlbum(this.isDistributedAlbum)
|
||||
param.distributedAlbumName && (this.title = param.distributedAlbumName.toString());
|
||||
this.dataSource.setDeviceId(this.albumInfo.deviceId);
|
||||
this.mSelectManager.setDeviceId(this.albumInfo.deviceId);
|
||||
@ -502,7 +505,7 @@ export struct PhotoGridPage {
|
||||
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -529,7 +532,7 @@ export struct PhotoGridPage {
|
||||
}
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/SelectPhotoBrowser',
|
||||
uri: 'feature/browser/view/SelectPhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -631,12 +634,14 @@ export struct PhotoGridPage {
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
PhotoGridPageActionBar({
|
||||
title: this.title,
|
||||
albumId: this.albumInfo.innerId,
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isRecycle: this.dataSource.albumId == AlbumDefine.ALBUM_ID_RECYCLE,
|
||||
isDistributedAlbum: this.isDistributedAlbum
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(
|
||||
this.title,
|
||||
this.isSelectedMode,
|
||||
this.totalSelectedCount,
|
||||
this.isAllSelected,
|
||||
this.isEmpty),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
if (this.isEmpty) {
|
||||
@ -672,14 +677,11 @@ export struct PhotoGridPage {
|
||||
|
||||
CustomDialogView();
|
||||
|
||||
if (this.isSelectedMode || (this.dataSource.albumId == AlbumDefine.ALBUM_ID_RECYCLE) && !this.isEmpty) {
|
||||
PhotoGridPageToolBar({
|
||||
onMenuClicked: this.onMenuClicked,
|
||||
isRecycleAlbum: (this.dataSource.albumId == AlbumDefine.ALBUM_ID_RECYCLE),
|
||||
isDistributedAlbum: this.isDistributedAlbum
|
||||
});
|
||||
}
|
||||
|
||||
ToolBar({
|
||||
isShowBar: this.isSelectedMode || (this.dataSource.albumId == AlbumDefine.ALBUM_ID_RECYCLE) && !this.isEmpty,
|
||||
toolMenuList: this.barModel.getMenuList(this.isSelectedMode, this.totalSelectedCount, this.isAllSelected, this.isEmpty),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
.backgroundColor($r('app.color.default_background_color'))
|
||||
.padding({
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Action } from '../../../common/view/browserOperation/Action';
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp';
|
||||
import { ActionBarMode } from '../../../common/view/browserOperation/ActionBarMode';
|
||||
|
||||
export class ThirdSelectBarModel {
|
||||
createActionBar(originLeftAction: Action, originTitle: string | Resource, isMultiPick: boolean, selectedCount: number, maxSelectCount: number): ActionBarProp {
|
||||
let leftAction: Action = originLeftAction
|
||||
let title: string | Resource = originTitle
|
||||
let menuList: Action[] = []
|
||||
if (isMultiPick && selectedCount > 0 && maxSelectCount > 0) {
|
||||
title = ActionBarProp.getCountDetailExternalSelectedTitle(selectedCount, maxSelectCount);
|
||||
menuList = [Action.OK]
|
||||
}
|
||||
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(leftAction)
|
||||
.setTitle(title)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE)
|
||||
.setMaxSelectCount(maxSelectCount);
|
||||
return actionBarProp;
|
||||
}
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
import { EmptyAlbumComponent } from '../../browser/view/album/EmptyAlbumComponent';
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -23,6 +22,7 @@ import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { EmptyAlbumComponent } from '../../../common/view/EmptyAlbumComponent';
|
||||
|
||||
// The item of album grid, and it's new style.
|
||||
@Component
|
||||
@ -32,12 +32,12 @@ export struct ThirdAlbumGridItem {
|
||||
[AlbumDefine.ALBUM_ID_FAVOR, $r('app.media.ic_favorite_overlay')]
|
||||
]);
|
||||
@State item: AlbumInfo = new AlbumInfo('', '', '', '', 0, '', '');
|
||||
isMultiPick: boolean;
|
||||
@Consume isMultiPick: boolean;
|
||||
@Provide isBigCard: boolean = false;
|
||||
@Provide gridHeight: number = 0;
|
||||
logger: Logger = new Logger('ThirdAlbumGridItem');
|
||||
isFromWallpaper: boolean;
|
||||
maxSelectCount: number;
|
||||
@Consume maxSelectCount: number;
|
||||
isFromFa: boolean;
|
||||
isFromFaPhoto: boolean;
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
|
@ -16,7 +16,7 @@
|
||||
import router from '@system.router'
|
||||
import { ThirdAlbumGridItem } from './ThirdAlbumGridItem'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ThirdSelectedPageActionBar } from './ThirdSelectedPageActionBar'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { AlbumSetDataSource } from '../../../common/model/browser/album/AlbumSetDataSource'
|
||||
import { Logger } from '../utils/Logger'
|
||||
@ -29,6 +29,7 @@ import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { AlbumDefine } from '../../../common/model/browser/AlbumDefine'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { ThirdSelectBarModel } from '../model/ThirdSelectBarModel'
|
||||
|
||||
// Third Select AlbumSet Page
|
||||
@Entry
|
||||
@ -54,6 +55,9 @@ export struct ThirdSelectAlbumSetPage {
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
isFromFaPhoto: boolean = false;
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
private barModel: ThirdSelectBarModel = new ThirdSelectBarModel()
|
||||
private leftAction: Action = Action.BACK
|
||||
private title: string | Resource = ""
|
||||
|
||||
aboutToAppear(): void {
|
||||
this.albums = new AlbumSetDataSource(this.broadCast);
|
||||
@ -73,6 +77,8 @@ export struct ThirdSelectAlbumSetPage {
|
||||
}
|
||||
}
|
||||
this.logger.info(`isFromFa: ${this.isFromFa} isFromFaPhoto ${this.isFromFaPhoto}`);
|
||||
this.leftAction = this.isFromFa ? Action.BACK : Action.CANCEL
|
||||
this.title = (this.isFromFa && !this.isFromFaPhoto) ? ActionBarProp.SINGLE_SELECT_ALBUM_TITLE : ActionBarProp.SINGLE_UNSELECT_TITLE
|
||||
this.albums.setBlackList([AlbumDefine.ALBUM_ID_VIDEO, AlbumDefine.ALBUM_ID_RECYCLE])
|
||||
this.selectManager = new ThirdSelectManager();
|
||||
this.onMenuClicked = this.onMenuClicked.bind(this);
|
||||
@ -169,12 +175,16 @@ export struct ThirdSelectAlbumSetPage {
|
||||
justifyContent: FlexAlign.Start,
|
||||
alignItems: ItemAlign.Start
|
||||
}) {
|
||||
ThirdSelectedPageActionBar({
|
||||
leftAction: this.isFromFa ? Action.BACK : Action.CANCEL,
|
||||
isMultiPick: this.isMultiPick,
|
||||
title: (this.isFromFa && !this.isFromFaPhoto) ? ActionBarProp.SINGLE_SELECT_ALBUM_TITLE : ActionBarProp.SINGLE_UNSELECT_TITLE,
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(
|
||||
this.leftAction,
|
||||
this.title,
|
||||
this.isMultiPick,
|
||||
this.selectedCount,
|
||||
this.maxSelectCount),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
Stack() {
|
||||
if (this.isEmpty) {
|
||||
NoPhotoComponent({ title: $r('app.string.title_no_albums') })
|
||||
@ -187,9 +197,7 @@ export struct ThirdSelectAlbumSetPage {
|
||||
ThirdAlbumGridItem({
|
||||
item: item,
|
||||
isBigCard: true,
|
||||
isMultiPick: this.isMultiPick,
|
||||
isFromWallpaper: this.isFromWallpaper,
|
||||
maxSelectCount: this.maxSelectCount,
|
||||
isFromFa: this.isFromFa,
|
||||
isFromFaPhoto: this.isFromFaPhoto
|
||||
})
|
||||
@ -199,9 +207,7 @@ export struct ThirdSelectAlbumSetPage {
|
||||
ThirdAlbumGridItem({
|
||||
item: item,
|
||||
isBigCard: false,
|
||||
isMultiPick: this.isMultiPick,
|
||||
isFromWallpaper: this.isFromWallpaper,
|
||||
maxSelectCount: this.maxSelectCount,
|
||||
isFromFa: this.isFromFa,
|
||||
isFromFaPhoto: this.isFromFaPhoto
|
||||
})
|
||||
|
@ -18,6 +18,7 @@ import { Logger } from '../utils/Logger'
|
||||
import { SelectUtil } from '../../../common/model/browser/photo/SelectUtil'
|
||||
import { ImageGridItemComponent } from '../../../common/view/ImageGridItemComponent'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar';
|
||||
import { BroadCast } from '../../../common/utils/BroadCast'
|
||||
import { BroadCastConstants } from '../../../common/model/common/BroadCastConstants'
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
@ -27,11 +28,10 @@ import { MediaItem } from '../../../common/model/browser/photo/MediaItem'
|
||||
import { ThirdSelectManager } from '../../../common/model/browser/SelectManager'
|
||||
import { NoPhotoComponent } from '../../../common/view/NoPhotoComponent'
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager'
|
||||
import { ThirdSelectedPageActionBar } from './ThirdSelectedPageActionBar'
|
||||
import { GridScrollBar } from '../../../common/view/GridScrollBar';
|
||||
import { BroadCastManager } from '../../../common/model/common/BroadCastManager'
|
||||
import { UiUtil } from '../../../common/utils/UiUtil';
|
||||
|
||||
import { ThirdSelectBarModel } from '../model/ThirdSelectBarModel';
|
||||
// Third Select Album Page
|
||||
@Entry
|
||||
@Component
|
||||
@ -57,8 +57,9 @@ export struct ThirdSelectPhotoGridPage {
|
||||
@State gridRowCount: number = 0;
|
||||
@Provide isHideScrollBar: boolean = true;
|
||||
isFromFa: boolean = false;
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
scroller: Scroller = new Scroller();
|
||||
private appBroadCast: BroadCast = BroadCastManager.getInstance().getBroadCast();
|
||||
private barModel: ThirdSelectBarModel = new ThirdSelectBarModel()
|
||||
|
||||
onMenuClicked(action: Action) {
|
||||
this.logger.info(`onMenuClicked, action: ${action.actionID}`);
|
||||
@ -197,8 +198,15 @@ export struct ThirdSelectPhotoGridPage {
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
ThirdSelectedPageActionBar({ leftAction: Action.BACK, isMultiPick: this.isMultiPick, title: this.title,
|
||||
onMenuClicked: this.onMenuClicked })
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(
|
||||
Action.BACK,
|
||||
this.title,
|
||||
this.isMultiPick,
|
||||
this.selectedCount,
|
||||
this.maxSelectCount),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
if (this.isEmpty) {
|
||||
NoPhotoComponent({ title: $r('app.string.no_distributed_photo_head_title_album') })
|
||||
}
|
||||
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import { ActionBarMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
|
||||
@Component
|
||||
export struct ThirdSelectedPageActionBar {
|
||||
@State menuList: Array<Action> = new Array<Action>();
|
||||
@State isUpdate: boolean = false;
|
||||
@Consume isSelectedMode: boolean;
|
||||
@Consume('selectedCount') @Watch('onSelectedCountChanged') selectedCount: number;
|
||||
@Consume maxSelectCount: number;
|
||||
isMultiPick: boolean;
|
||||
onMenuClicked: Function;
|
||||
leftAction: Action = Action.BACK;
|
||||
title: Resource;
|
||||
|
||||
aboutToAppear(): void {
|
||||
if (this.isMultiPick == true) {
|
||||
this.onSelectedCountChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setLeftAction(this.leftAction)
|
||||
.setTitle(this.title)
|
||||
.setMenuList(this.menuList)
|
||||
.setMode(ActionBarMode.STANDARD_MODE)
|
||||
.setMaxSelectCount(this.maxSelectCount);
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
onSelectedCountChanged() {
|
||||
if (this.selectedCount == 0 || !this.isMultiPick) {
|
||||
this.title = ActionBarProp.SINGLE_UNSELECT_TITLE;
|
||||
this.menuList = [];
|
||||
} else {
|
||||
this.title = ActionBarProp.getCountDetailExternalSelectedTitle(this.selectedCount, this.maxSelectCount);
|
||||
this.menuList = [Action.OK];
|
||||
}
|
||||
this.isUpdate = !this.isUpdate;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { ScreenManager } from '../../../common/model/common/ScreenManager';
|
||||
import { Action } from '../../../common/view/browserOperation/Action';
|
||||
import { ActionBarMode, ActionBarSelectionMode } from '../../../common/view/browserOperation/ActionBarMode'
|
||||
import { ActionBarProp } from '../../../common/view/browserOperation/ActionBarProp';
|
||||
|
||||
export class TimelinePageBarModel {
|
||||
createActionBar(isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean): ActionBarProp {
|
||||
let isHorizontal = ScreenManager.getInstance().isHorizontal()
|
||||
if (isHorizontal) {
|
||||
return this.createHorizontalActionBar(isSelectedMode, selectedCount, isAllSelected)
|
||||
} else {
|
||||
return this.createVerticalActionBar(isSelectedMode)
|
||||
}
|
||||
}
|
||||
|
||||
private createHorizontalActionBar(isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean): ActionBarProp {
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(true)
|
||||
.setTitle($r('app.string.tab_timeline'))
|
||||
.setIsHeadTitle(true)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
if (isSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(this.getMenuList(isSelectedMode, selectedCount, isAllSelected))
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createVerticalActionBar(isSelectedMode: boolean): ActionBarProp {
|
||||
let isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(isSidebar)
|
||||
.setTitle($r('app.string.tab_timeline'))
|
||||
.setIsHeadTitle(true)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
if (isSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
getMenuList(isSelectedMode: boolean, selectedCount: number, isAllSelected: boolean): Array<Action> {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
menuList.push(Boolean(selectedCount) ? Action.SHARE : Action.SHARE_INVALID)
|
||||
menuList.push(isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL)
|
||||
menuList.push(Boolean(selectedCount) ? Action.DELETE : Action.DELETE_INVALID, Action.MORE)
|
||||
return menuList
|
||||
}
|
||||
}
|
@ -19,8 +19,7 @@ import { TimelineData } from '../../../common/model/browser/photo/TimelineData'
|
||||
import { TimelineTitleComponent } from './timelinetitlecomponent'
|
||||
import { CustomDialogView } from '../../../common/view/dialog/CustomDialogView'
|
||||
import { Logger } from '../utils/Logger'
|
||||
import { TimelinePageActionBar } from './TimelinePageActionBar'
|
||||
import { TimelinePageToolBar } from './TimelinePageToolBar'
|
||||
import { ToolBar } from '../../../common/view/actionbar/ToolBar';
|
||||
import { Constants } from '../../../common/model/common/Constants'
|
||||
import { MenuOperation } from '../../../common/view/browserOperation/MenuOperation'
|
||||
import { MenuContext } from '../../../common/view/browserOperation/MenuContext'
|
||||
@ -48,6 +47,8 @@ import { CopyMenuOperation } from '../../../common/view/browserOperation/CopyMen
|
||||
import { TimelineScrollBar } from './TimelineScrollBar';
|
||||
import { DateUtil } from '../../../common/utils/DateUtil';
|
||||
import { AlbumInfo } from '../../../common/model/browser/album/AlbumInfo';
|
||||
import { TimelinePageBarModel } from '../model/TimelinePageBarModel'
|
||||
import { ActionBar } from '../../../common/view/actionbar/ActionBar'
|
||||
|
||||
// PHOTO Page
|
||||
@Component
|
||||
@ -82,7 +83,7 @@ export struct TimelinePage {
|
||||
@State groupSelectMode: boolean[] = [];
|
||||
@Provide yearData: TimelineData[] = [];
|
||||
@Provide dateText: string = '';
|
||||
@Provide isShowBar: boolean = true;
|
||||
private barModel = new TimelinePageBarModel()
|
||||
|
||||
aboutToAppear(): void {
|
||||
TraceControllerUtils.startTrace('TimelinePageAboutToAppear');
|
||||
@ -160,7 +161,7 @@ export struct TimelinePage {
|
||||
}
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/PhotoBrowser',
|
||||
uri: 'feature/browser/view/PhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -178,7 +179,7 @@ export struct TimelinePage {
|
||||
AppStorage.SetOrCreate(Constants.THIRD_SELECT_MANAGER, self.mSelectManager);
|
||||
AppStorage.SetOrCreate(Constants.APP_KEY_PHOTO_BROWSER, self.dataSource);
|
||||
router.push({
|
||||
uri: 'feature/browser/view/photo/SelectPhotoBrowser',
|
||||
uri: 'feature/browser/view/SelectPhotoBrowser',
|
||||
params: {
|
||||
position: targetIndex,
|
||||
transition: name,
|
||||
@ -613,7 +614,10 @@ export struct TimelinePage {
|
||||
if (this.isEmpty || !this.initLoadFinish) {
|
||||
NoPhotoIndexComponent({ index: Constants.TIMELINE_PAGE_INDEX })
|
||||
} else {
|
||||
TimelinePageActionBar({ onMenuClicked: this.onMenuClicked });
|
||||
ActionBar({
|
||||
actionBarProp: this.barModel.createActionBar(this.isSelectedMode, this.totalSelectedCount, this.isAllSelected),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
|
||||
Stack() {
|
||||
Grid(this.scroller) {
|
||||
@ -670,9 +674,11 @@ export struct TimelinePage {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.isSelectedMode) {
|
||||
TimelinePageToolBar({ onMenuClicked: this.onMenuClicked })
|
||||
}
|
||||
ToolBar({
|
||||
isShowBar: $isSelectedMode,
|
||||
toolMenuList: this.barModel.getMenuList(this.isSelectedMode, this.totalSelectedCount, this.isAllSelected),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
CustomDialogView()
|
||||
}
|
||||
}
|
||||
|
@ -1,91 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {Logger} from '../utils/Logger'
|
||||
import {Action} from '../../../common/view/browserOperation/Action'
|
||||
import {ActionBar} from '../../../common/view/actionbar/ActionBar'
|
||||
import {ActionBarProp} from '../../../common/view/browserOperation/ActionBarProp'
|
||||
import {ActionBarMode, ActionBarSelectionMode} from '../../../common/view/browserOperation/ActionBarMode'
|
||||
import {ScreenManager} from '../../../common/model/common/ScreenManager'
|
||||
|
||||
@Component
|
||||
export struct TimelinePageActionBar {
|
||||
@Consume isSelectedMode: boolean;
|
||||
@Consume isAllSelected: boolean;
|
||||
@Consume('selectedCount') selectedCount: number;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('TimelinePageActionBar');
|
||||
@StorageLink('isHorizontal') isHorizontal: boolean = ScreenManager.getInstance().isHorizontal();
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
|
||||
private createHorizontalActionBar(): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(true)
|
||||
.setTitle($r('app.string.tab_timeline'))
|
||||
.setIsHeadTitle(true)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
this.logger.info(`createActionBar, isSelectedMode: ${this.isSelectedMode}`);
|
||||
if (this.isSelectedMode) {
|
||||
menuList.push((Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID, Action.MORE);
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
private createActionBar(): ActionBarProp {
|
||||
let menuList: Array<Action> = new Array<Action>();
|
||||
let actionBarProp: ActionBarProp = new ActionBarProp();
|
||||
actionBarProp
|
||||
.setHasTabBar(this.isSidebar)
|
||||
.setTitle($r('app.string.tab_timeline'))
|
||||
.setIsHeadTitle(true)
|
||||
.setMode(ActionBarMode.STANDARD_MODE);
|
||||
this.logger.info(`createActionBar, isSelectedMode: ${this.isSelectedMode}`);
|
||||
if (this.isSelectedMode) {
|
||||
actionBarProp
|
||||
.setLeftAction(Action.CANCEL)
|
||||
.setMenuList(menuList)
|
||||
.setMode(ActionBarMode.SELECTION_MODE)
|
||||
.setSelectionMode(ActionBarSelectionMode.MULTI);
|
||||
}
|
||||
return actionBarProp;
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
if (this.isHorizontal) {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createHorizontalActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
} else {
|
||||
ActionBar({
|
||||
isShowBar: true,
|
||||
actionBarProp: this.createActionBar(),
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../utils/Logger'
|
||||
import { Action } from '../../../common/view/browserOperation/Action'
|
||||
import { ToolBar } from '../../../common/view/actionbar/ToolBar'
|
||||
|
||||
@Component
|
||||
export struct TimelinePageToolBar {
|
||||
@Consume @Watch('updateToolbar') isSelectedMode: boolean;
|
||||
@Consume @Watch('updateToolbar') isAllSelected: boolean;
|
||||
@Consume('selectedCount') @Watch('updateToolbar') selectedCount: number;
|
||||
onMenuClicked: Function;
|
||||
logger: Logger = new Logger('TimelinePageToolBar');
|
||||
@Provide toolMenuList: Array<Action> = new Array<Action>();
|
||||
|
||||
aboutToAppear(): void {
|
||||
this.updateToolbar();
|
||||
}
|
||||
|
||||
private updateToolbar(): void {
|
||||
this.logger.info('updateToolbar');
|
||||
if (this.isSelectedMode) {
|
||||
this.logger.info('pushActionToolbar');
|
||||
this.toolMenuList = [];
|
||||
this.toolMenuList.push(
|
||||
(Boolean(this.selectedCount) ? Action.SHARE : Action.SHARE_INVALID),
|
||||
(this.isAllSelected ? Action.DESELECT_ALL : Action.SELECT_ALL),
|
||||
(Boolean(this.selectedCount) ? Action.DELETE : Action.DELETE_INVALID), Action.MORE);
|
||||
}
|
||||
}
|
||||
|
||||
build() {
|
||||
ToolBar({
|
||||
onMenuClicked: this.onMenuClicked
|
||||
})
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
*/
|
||||
|
||||
import { TimelinePage } from '../../../feature/timeline/view/TimelinePage'
|
||||
import { AlbumSetPage } from '../../../feature/browser/view/album/AlbumSetPage'
|
||||
import { AlbumSetPage } from '../../../feature/album/view/AlbumSetPage'
|
||||
import { Logger } from '../../../common/utils/Logger'
|
||||
import { TabBar, DEVICE_TYPE } from '../../../common/view/TabBar'
|
||||
import { TabItem } from '../../../common/model/common/TabItem'
|
||||
@ -150,7 +150,6 @@ struct IndexPage {
|
||||
currentIndex: this.currentIndex,
|
||||
tabs: this.tabs,
|
||||
controller: this.tabsController,
|
||||
isSidebar: this.isSidebar,
|
||||
deviceType: DEVICE_TYPE.DEVICE_PAD
|
||||
})
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
*/
|
||||
|
||||
import { TimelinePage } from '../../../feature/timeline/view/TimelinePage'
|
||||
import { AlbumSetPage } from '../../../feature/browser/view/album/AlbumSetPage'
|
||||
import { AlbumSetPage } from '../../../feature/album/view/AlbumSetPage'
|
||||
import { Logger } from '../../../common/utils/Logger'
|
||||
import { TabBar } from '../../../common/view/TabBar'
|
||||
import { TabItem } from '../../../common/model/common/TabItem'
|
||||
@ -36,7 +36,6 @@ struct IndexPage {
|
||||
];
|
||||
private preIndex: number = Constants.TIMELINE_PAGE_INDEX;
|
||||
@StorageLink('isSplitMode') isSplitMode: boolean = ScreenManager.getInstance().isSplitMode();
|
||||
@StorageLink('isSidebar') isSidebar: boolean = ScreenManager.getInstance().isSidebar();
|
||||
@StorageLink('leftBlank') leftBlank: [number, number, number, number]
|
||||
= [0, ScreenManager.getInstance().getStatusBarHeight(), 0, ScreenManager.getInstance().getNaviBarHeight()];
|
||||
@Provide isShow: boolean = true;
|
||||
@ -145,7 +144,6 @@ struct IndexPage {
|
||||
currentIndex: this.currentIndex,
|
||||
tabs: this.tabs,
|
||||
controller: this.tabsController,
|
||||
isSidebar: this.isSidebar
|
||||
})
|
||||
}
|
||||
.flexGrow(1)
|
||||
|
@ -2,17 +2,17 @@
|
||||
"src": [
|
||||
"product/phone/view/index",
|
||||
"product/pad/view/index",
|
||||
"feature/browser/view/photoGrid/PhotoGridPage",
|
||||
"feature/browser/view/photo/PhotoBrowser",
|
||||
"feature/browser/view/photo/VideoBrowser",
|
||||
"feature/browser/view/photo/SelectPhotoBrowser",
|
||||
"feature/photoGrid/view/PhotoGridPage",
|
||||
"feature/browser/view/PhotoBrowser",
|
||||
"feature/browser/view/VideoBrowser",
|
||||
"feature/browser/view/SelectPhotoBrowser",
|
||||
"feature/thirdSelect/view/ThirdSelectPhotoBrowser",
|
||||
"feature/thirdSelect/view/ThirdSelectAlbumSetPage",
|
||||
"feature/thirdSelect/view/ThirdSelectPhotoGridPage",
|
||||
"feature/browser/view/album/DistributedAlbumSetPage",
|
||||
"feature/distributedAlbum/view/DistributedAlbumSetPage",
|
||||
"common/view/browserOperation/MediaOperationPage",
|
||||
"feature/browser/view/album/NewAlbumPage",
|
||||
"feature/browser/view/album/AlbumSelect",
|
||||
"feature/newAlbum/view/NewAlbumPage",
|
||||
"feature/albumSelect/view/AlbumSelect",
|
||||
"feature/editor/view/EditMain",
|
||||
"feature/formEditor/view/FormEditorPage"
|
||||
]
|
||||
|
Loading…
x
Reference in New Issue
Block a user