1/* 2 * Copyright (C) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/** 17 * @file A component which support other applications to select photos or videos 18 * @kit MediaLibraryKit 19 */ 20 21import photoAccessHelper from '@ohos.file.photoAccessHelper'; 22 23/** 24 * Declare struct PhotoPickerComponent 25 * 26 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 27 * @atomicservice 28 * @since 12 29 */ 30@Component 31export declare struct PhotoPickerComponent { 32 /** 33 * PickerOptions 34 * 35 * @type { ?PickerOptions } 36 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 37 * @atomicservice 38 * @since 12 39 */ 40 pickerOptions?: PickerOptions; 41 42 /** 43 * Callback when select photos or videos 44 * 45 * @type { ?function } 46 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 47 * @atomicservice 48 * @since 12 49 */ 50 onSelect?: (uri: string) => void; 51 52 /** 53 * Callback when Deselect photos or videos 54 * 55 * @type { ?function } 56 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 57 * @atomicservice 58 * @since 12 59 */ 60 onDeselect?: (uri: string) => void; 61 62 /** 63 * Callback when click item. include click camera item and thumbnail item, will return itemInfo 64 * 65 * @type { ?function } 66 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 67 * @atomicservice 68 * @since 12 69 */ 70 onItemClicked?: (itemInfo: ItemInfo, clickType: ClickType) => boolean; 71 72 /** 73 * Callback when enter photo browser, will return photoBrowserInfo 74 * 75 * @type { ?function } 76 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 77 * @atomicservice 78 * @since 12 79 */ 80 onEnterPhotoBrowser?: (photoBrowserInfo: PhotoBrowserInfo) => boolean; 81 82 /** 83 * Callback when exit photo browser, will return photoBrowserInfo 84 * 85 * @type { ?function } 86 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 87 * @atomicservice 88 * @since 12 89 */ 90 onExitPhotoBrowser?: (photoBrowserInfo: PhotoBrowserInfo) => boolean; 91 92 /** 93 * Callback when pickerController is ready. 94 * Set data to picker component by pickerController is supported after pickerController is ready 95 * 96 * @type { ?function } 97 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 98 * @atomicservice 99 * @since 12 100 */ 101 onPickerControllerReady?: () => void; 102 103 /** 104 * Callback when photo browser change, will return browserItemInfo 105 * 106 * @type { ?function } 107 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 108 * @atomicservice 109 * @since 12 110 */ 111 onPhotoBrowserChanged?: (browserItemInfo: BaseItemInfo) => boolean; 112 113 /** 114 * Callback when selected items are deleted 115 * 116 * @type { ?function } 117 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 118 * @atomicservice 119 * @since 13 120 */ 121 onSelectedItemsDeleted?: ItemsDeletedCallback; 122 123 /** 124 * Callback when exceed max selected 125 * 126 * @type { ?function } 127 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 128 * @atomicservice 129 * @since 13 130 */ 131 onExceedMaxSelected?: ExceedMaxSelectedCallback; 132 133 /** 134 * Callback when the current album is deleted 135 * 136 * @type { ?function } 137 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 138 * @atomicservice 139 * @since 13 140 */ 141 onCurrentAlbumDeleted?: CurrentAlbumDeletedCallback 142 143 /** 144 * PickerController 145 * 146 * @type { ?PickerController } 147 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 148 * @atomicservice 149 * @since 12 150 */ 151 @ObjectLink 152 pickerController: PickerController; 153 154 /** 155 * Build function of PhotoPickerComponent 156 * 157 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 158 * @atomicservice 159 * @since 12 160 */ 161 build(): void; 162} 163 164 165/** 166 * The callback of onSelectedItemsDeleted event 167 * 168 * @typedef { function } ItemsDeletedCallback 169 * @param { Array<BaseItemInfo> } 170 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 171 * @atomicservice 172 * @since 13 173 */ 174export type ItemsDeletedCallback = (baseItemInfos: Array<BaseItemInfo>) => void; 175 176/** 177 * The callback of onExceedMaxSelected event 178 * 179 * @typedef { function } ItemsDeletedCallback 180 * @param { MaxCountType } 181 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 182 * @atomicservice 183 * @since 13 184 */ 185export type ExceedMaxSelectedCallback = (exceedMaxCountType: MaxCountType) => void; 186 187/** 188 * The callback of onCurrentAlbumDeleted event 189 * 190 * @typedef { function } CurrentAlbumDeletedCallback 191 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 192 * @atomicservice 193 * @since 13 194 */ 195export type CurrentAlbumDeletedCallback = () => void; 196 197/** 198 * The class for PickerController 199 * 200 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 201 * @atomicservice 202 * @since 12 203 */ 204@Observed 205export declare class PickerController { 206 /** 207 * Set data to picker component 208 * 209 * @param { DataType } dataType - data type 210 * @param { Object } data - data 211 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 212 * @atomicservice 213 * @since 12 214 */ 215 setData(dataType: DataType, data: Object): void; 216 217 /** 218 * Set max select count to picker component, include max_total_count, max_photo_count and max_video_count. 219 * 220 * @param { MaxSelected } maxSelected - max select count data 221 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 222 * @atomicservice 223 * @since 12 224 */ 225 setMaxSelected(maxSelected: MaxSelected): void; 226 227 /** 228 * Set photo browser item to picker component. 229 * 230 * @param { string } uri - specify image uri for photo browsing 231 * @param { PhotoBrowserRange } photoBrowserRange - photo browser slide range 232 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 233 * @atomicservice 234 * @since 12 235 */ 236 setPhotoBrowserItem(uri: string, photoBrowserRange?: PhotoBrowserRange): void; 237 238 /** 239 * Exit photo browser. 240 * 241 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 242 * @atomicservice 243 * @since 13 244 */ 245 exitPhotoBrowser(): void; 246 247 /** 248 * Sets whether other elements on the photo browser page are visible. 249 * 250 * @param { Array<PhotoBrowserUIElement> } elements - other elements on the photo browser page 251 * @param { boolean } isVisible - visible or not 252 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 253 * @atomicservice 254 * @since 13 255 */ 256 setPhotoBrowserUIElementVisibility(elements: Array<PhotoBrowserUIElement>, isVisible: boolean): void; 257} 258 259/** 260 * PickerOptions Object 261 * 262 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 263 * @atomicservice 264 * @since 12 265 */ 266export declare class PickerOptions extends photoAccessHelper.BaseSelectOptions { 267 /** 268 * Support set checkBox color 269 * 270 * @type { ?string } 271 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 272 * @atomicservice 273 * @since 12 274 */ 275 checkBoxColor?: string; 276 277 /** 278 * Support set backgroundColor 279 * 280 * @type { ?string } 281 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 282 * @atomicservice 283 * @since 12 284 */ 285 backgroundColor?: string; 286 287 /** 288 * Support repeat select 289 * 290 * @type { ?boolean } 291 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 292 * @atomicservice 293 * @since 12 294 */ 295 isRepeatSelectSupported?: boolean; 296 297 /** 298 * Support to set checkbox text color 299 * 300 * @type { ?string } 301 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 302 * @atomicservice 303 * @since 12 304 */ 305 checkboxTextColor?: string; 306 307 /** 308 * Support to set photo browser background color mode 309 * 310 * @type { ?PickerColorMode } 311 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 312 * @atomicservice 313 * @since 12 314 */ 315 photoBrowserBackgroundColorMode?: PickerColorMode; 316 317 /** 318 * Support to set max select number remind mode. 319 * 320 * @type { ?ReminderMode } 321 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 322 * @atomicservice 323 * @since 12 324 */ 325 maxSelectedReminderMode?: ReminderMode; 326 327 /** 328 * Support to set display orientation 329 * 330 * @type { ?PickerOrientation } 331 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 332 * @atomicservice 333 * @since 12 334 */ 335 orientation?: PickerOrientation; 336 337 /** 338 * Support to set select mode 339 * 340 * @type { ?SelectMode } 341 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 342 * @atomicservice 343 * @since 12 344 */ 345 selectMode?: SelectMode; 346 347 /** 348 * Support to set max photo select number 349 * 350 * @type { ?number } 351 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 352 * @atomicservice 353 * @since 12 354 */ 355 maxPhotoSelectNumber?: number; 356 357 /** 358 * Support to set max video select number 359 * 360 * @type { ?number } 361 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 362 * @atomicservice 363 * @since 12 364 */ 365 maxVideoSelectNumber?: number; 366 367 /** 368 * Support to set sliding selection 369 * 370 * @type { ?boolean } 371 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 372 * @atomicservice 373 * @since 13 374 */ 375 isSlidingSelectionSupported?: boolean; 376 377 /** 378 * Support to set photo browser checkbox position 379 * 380 * @type { ?[number, number] } 381 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 382 * @atomicservice 383 * @since 13 384 */ 385 photoBrowserCheckboxPosition?: [number, number]; 386} 387 388/** 389 * BaseItemInfo 390 * 391 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 392 * @atomicservice 393 * @since 12 394 */ 395export declare class BaseItemInfo { 396 /** 397 * Uri. if the itemType is CAMERA, it will be null 398 * 399 * @type { ?string } 400 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 401 * @atomicservice 402 * @since 12 403 */ 404 uri?: string; 405 406 /** 407 * MimeType. if the itemType is CAMERA, it will be null 408 * 409 * @type { ?string } 410 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 411 * @atomicservice 412 * @since 12 413 */ 414 mimeType?: string; 415 416 /** 417 * Width. if the itemType is CAMERA, it will be null 418 * 419 * @type { ?number } 420 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 421 * @atomicservice 422 * @since 12 423 */ 424 width?: number; 425 426 /** 427 * Height. if the itemType is CAMERA, it will be null 428 * 429 * @type { ?number } 430 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 431 * @atomicservice 432 * @since 12 433 */ 434 height?: number; 435 436 /** 437 * Size. if the itemType is CAMERA, it will be null 438 * 439 * @type { ?number } 440 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 441 * @atomicservice 442 * @since 12 443 */ 444 size?: number; 445 446 /** 447 * Duration. if the itemType is CAMERA, it will be null; if photos, return -1 448 * 449 * @type { ?number } 450 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 451 * @atomicservice 452 * @since 12 453 */ 454 duration?: number; 455} 456 457/** 458 * ItemInfo 459 * 460 * @extends BaseItemInfo 461 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 462 * @atomicservice 463 * @since 12 464 */ 465export declare class ItemInfo extends BaseItemInfo { 466 /** 467 * itemType. include CAMERA and THUMBNAIL. 468 * 469 * @type { ?ItemType } 470 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 471 * @atomicservice 472 * @since 12 473 */ 474 itemType?: ItemType; 475} 476 477/** 478 * PhotoBrowserInfo 479 * 480 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 481 * @atomicservice 482 * @since 12 483 */ 484export declare class PhotoBrowserInfo { 485 /** 486 * AnimatorParams. include duration and curve 487 * 488 * @type { ?AnimatorParams } 489 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 490 * @atomicservice 491 * @since 12 492 */ 493 animatorParams?: AnimatorParams; 494} 495 496/** 497 * AnimatorParams 498 * 499 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 500 * @atomicservice 501 * @since 12 502 */ 503export declare class AnimatorParams { 504 /** 505 * Animate duration 506 * 507 * @type { ?number } 508 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 509 * @atomicservice 510 * @since 12 511 */ 512 duration?: number; 513 514 /** 515 * Animate curve 516 * 517 * @type { ?Curve | ICurve | string } 518 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 519 * @atomicservice 520 * @since 12 521 */ 522 curve?: Curve | ICurve | string; 523} 524 525/** 526 * MaxSelected 527 * 528 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 529 * @atomicservice 530 * @since 12 531 */ 532export declare class MaxSelected { 533 /** 534 * data. support to set max_total_count, max_photo_count and max_video_count. 535 * 536 * @type { ?Map<MaxCountType, number> } 537 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 538 * @atomicservice 539 * @since 12 540 */ 541 data?: Map<MaxCountType, number>; 542} 543 544/** 545 * DataType represents the type of the data set to picker component 546 * 547 * @enum { number } DataType 548 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 549 * @atomicservice 550 * @since 12 551 */ 552export declare enum DataType { 553 /** 554 * DataType: set selected uris to picker component, the data should be a array of uri 555 * 556 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 557 * @atomicservice 558 * @since 12 559 */ 560 SET_SELECTED_URIS = 1, 561 562 /** 563 * SET_ALBUM_URI. set selected album uri to picker component 564 * 565 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 566 * @atomicservice 567 * @since 12 568 */ 569 SET_ALBUM_URI = 2 570} 571 572/** 573 * ItemType. include CAMERA and THUMBNAIL 574 * 575 * @enum { number } ItemType 576 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 577 * @atomicservice 578 * @since 12 579 */ 580export declare enum ItemType { 581 /** 582 * THUMBNAIL. photos or videos item 583 * 584 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 585 * @atomicservice 586 * @since 12 587 */ 588 THUMBNAIL = 0, 589 590 /** 591 * CAMERA. camera item 592 * 593 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 594 * @atomicservice 595 * @since 12 596 */ 597 CAMERA = 1 598} 599 600/** 601 * ClickType. include SELECTED and DESELECTED 602 * 603 * @enum { number } ClickType 604 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 605 * @atomicservice 606 * @since 12 607 */ 608export declare enum ClickType { 609 /** 610 * SELECTED. click to select photos or videos, if click camera item, the clickType is SELECTED. 611 * 612 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 613 * @atomicservice 614 * @since 12 615 */ 616 SELECTED = 0, 617 618 /** 619 * DESELECTED. click to deselect photos or videos 620 * 621 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 622 * @atomicservice 623 * @since 12 624 */ 625 DESELECTED = 1 626} 627 628/** 629 * PickerOrientation. include VERTICAL and HORIZONTAL 630 * 631 * @enum { number } PickerOrientation 632 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 633 * @atomicservice 634 * @since 12 635 */ 636export declare enum PickerOrientation { 637 /** 638 * VERTICAL. vertical display 639 * 640 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 641 * @atomicservice 642 * @since 12 643 */ 644 VERTICAL = 0, 645 646 /** 647 * HORIZONTAL. horizontal display 648 * 649 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 650 * @atomicservice 651 * @since 12 652 */ 653 HORIZONTAL = 1 654} 655 656/** 657 * SelectMode. include SINGLE_SELECT and MULTI_SELECT 658 * 659 * @enum { number } SelectMode 660 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 661 * @atomicservice 662 * @since 12 663 */ 664export declare enum SelectMode { 665 /** 666 * SINGLE_SELECT. single select 667 * 668 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 669 * @atomicservice 670 * @since 12 671 */ 672 SINGLE_SELECT = 0, 673 674 /** 675 * MULTI_SELECT. multi select 676 * 677 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 678 * @atomicservice 679 * @since 12 680 */ 681 MULTI_SELECT = 1 682} 683 684/** 685 * PickerColorMode. include AUTO, LIGHT and DARK 686 * 687 * @enum { number } PickerColorMode 688 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 689 * @atomicservice 690 * @since 12 691 */ 692export declare enum PickerColorMode { 693 /** 694 * AUTO. follow system color 695 * 696 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 697 * @atomicservice 698 * @since 12 699 */ 700 AUTO = 0, 701 702 /** 703 * LIGHT. light color 704 * 705 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 706 * @atomicservice 707 * @since 12 708 */ 709 LIGHT = 1, 710 711 /** 712 * DARK. dark color 713 * 714 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 715 * @atomicservice 716 * @since 12 717 */ 718 DARK = 2 719} 720 721/** 722 * ReminderMode, include NONE, TOAST and MASK 723 * 724 * @enum { number } ReminderMode 725 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 726 * @atomicservice 727 * @since 12 728 */ 729export declare enum ReminderMode { 730 /** 731 * NONE. no need to remind 732 * 733 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 734 * @atomicservice 735 * @since 12 736 */ 737 NONE = 0, 738 739 /** 740 * TOAST. remind by toast 741 * 742 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 743 * @atomicservice 744 * @since 12 745 */ 746 TOAST = 1, 747 748 /** 749 * MASK. remind by mask 750 * 751 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 752 * @atomicservice 753 * @since 12 754 */ 755 MASK = 2 756} 757 758/** 759 * MaxCountType. include TOTAL_MAX_COUNT, PHOTO_MAX_COUNT and VIDEO_MAX_COUNT 760 * 761 * @enum { number } MaxCountType 762 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 763 * @atomicservice 764 * @since 12 765 */ 766export declare enum MaxCountType { 767 /** 768 * TOTAL_MAX_COUNT. total max count 769 * 770 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 771 * @atomicservice 772 * @since 12 773 */ 774 TOTAL_MAX_COUNT = 0, 775 776 /** 777 * PHOTO_MAX_COUNT. photo max count 778 * 779 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 780 * @atomicservice 781 * @since 12 782 */ 783 PHOTO_MAX_COUNT = 1, 784 785 /** 786 * VIDEO_MAX_COUNT. video max count 787 * 788 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 789 * @atomicservice 790 * @since 12 791 */ 792 VIDEO_MAX_COUNT = 2 793} 794 795/** 796 * PhotoBrowserRange. include ALL and SELECTED_ONLY 797 * 798 * @enum { number } PhotoBrowserRange 799 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 800 * @atomicservice 801 * @since 12 802 */ 803export declare enum PhotoBrowserRange { 804 /** 805 * ALL. all photos or vedios 806 * 807 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 808 * @atomicservice 809 * @since 12 810 */ 811 ALL = 0, 812 813 /** 814 * SELECTED_ONLY. only selected photos or vedios 815 * 816 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 817 * @atomicservice 818 * @since 12 819 */ 820 SELECTED_ONLY = 1, 821} 822 823/** 824 * PhotoBrowserUIElement. include CHECKBOX and BACK_BUTTON 825 * 826 * @enum { number } PhotoBrowserUIElement 827 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 828 * @atomicservice 829 * @since 13 830 */ 831export declare enum PhotoBrowserUIElement { 832 /** 833 * CHECKBOX. checkbox 834 * 835 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 836 * @atomicservice 837 * @since 13 838 */ 839 CHECKBOX = 0, 840 841 /** 842 * BACK_BUTTON. back button 843 * 844 * @syscap SystemCapability.FileManagement.PhotoAccessHelper.Core 845 * @atomicservice 846 * @since 13 847 */ 848 BACK_BUTTON = 1 849}