OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * WallpaperManager constructor. | 6 * WallpaperManager constructor. |
7 * | 7 * |
8 * WallpaperManager objects encapsulate the functionality of the wallpaper | 8 * WallpaperManager objects encapsulate the functionality of the wallpaper |
9 * manager extension. | 9 * manager extension. |
10 * | 10 * |
(...skipping 503 matching lines...) Loading... |
514 var reader = new FileReader(); | 514 var reader = new FileReader(); |
515 reader.readAsArrayBuffer(file); | 515 reader.readAsArrayBuffer(file); |
516 reader.addEventListener('error', errorHandler); | 516 reader.addEventListener('error', errorHandler); |
517 reader.addEventListener('load', function(e) { | 517 reader.addEventListener('load', function(e) { |
518 self.setCustomWallpaper(e.target.result, | 518 self.setCustomWallpaper(e.target.result, |
519 selectedItem.layout, | 519 selectedItem.layout, |
520 false, selectedItem.baseURL, | 520 false, selectedItem.baseURL, |
521 self.onWallpaperChanged_.bind(self, | 521 self.onWallpaperChanged_.bind(self, |
522 selectedItem, selectedItem.baseURL), | 522 selectedItem, selectedItem.baseURL), |
523 errorHandler); | 523 errorHandler); |
| 524 enableSync(function() { |
| 525 writeWallpaperToSync( |
| 526 selectedItem.baseURL, |
| 527 e.target.result, |
| 528 function() {} |
| 529 ); |
| 530 }); |
524 }); | 531 }); |
525 }, errorHandler); | 532 }, errorHandler); |
526 }, errorHandler); | 533 }, errorHandler); |
527 } | 534 }; |
528 this.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, | 535 this.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, |
529 success, errorHandler); | 536 success, errorHandler); |
530 break; | 537 break; |
531 case Constants.WallpaperSourceEnum.OEM: | 538 case Constants.WallpaperSourceEnum.OEM: |
532 // Resets back to default wallpaper. | 539 // Resets back to default wallpaper. |
533 chrome.wallpaperPrivate.resetWallpaper(); | 540 chrome.wallpaperPrivate.resetWallpaper(); |
534 this.onWallpaperChanged_(selectedItem, selectedItem.baseURL); | 541 this.onWallpaperChanged_(selectedItem, selectedItem.baseURL); |
535 WallpaperUtil.saveWallpaperInfo(wallpaperURL, selectedItem.layout, | 542 WallpaperUtil.saveWallpaperInfo(wallpaperURL, selectedItem.layout, |
536 selectedItem.source); | 543 selectedItem.source); |
537 break; | 544 break; |
(...skipping 302 matching lines...) Loading... |
840 fileWriter.addEventListener('writeend', function(e) { | 847 fileWriter.addEventListener('writeend', function(e) { |
841 var reader = new FileReader(); | 848 var reader = new FileReader(); |
842 reader.readAsArrayBuffer(file); | 849 reader.readAsArrayBuffer(file); |
843 reader.addEventListener('error', errorHandler); | 850 reader.addEventListener('error', errorHandler); |
844 reader.addEventListener('load', function(e) { | 851 reader.addEventListener('load', function(e) { |
845 self.setCustomWallpaper(e.target.result, layout, true, fileName, | 852 self.setCustomWallpaper(e.target.result, layout, true, fileName, |
846 saveThumbnail, function() { | 853 saveThumbnail, function() { |
847 self.removeCustomWallpaper(fileName); | 854 self.removeCustomWallpaper(fileName); |
848 errorHandler(); | 855 errorHandler(); |
849 }); | 856 }); |
| 857 enableSync(function() { |
| 858 writeWallpaperToSync( |
| 859 fileName, |
| 860 e.target.result, |
| 861 function() {} |
| 862 ); |
| 863 }); |
850 }); | 864 }); |
851 }); | 865 }); |
852 | 866 |
853 fileWriter.addEventListener('error', errorHandler); | 867 fileWriter.addEventListener('error', errorHandler); |
854 fileWriter.write(file); | 868 fileWriter.write(file); |
855 }, errorHandler); | 869 }, errorHandler); |
856 }, errorHandler); | 870 }, errorHandler); |
857 }; | 871 }; |
858 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, success, | 872 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, success, |
859 errorHandler); | 873 errorHandler); |
860 }; | 874 }; |
861 setSelectedFile(files[0], layout, new Date().getTime().toString()); | 875 setSelectedFile(files[0], layout, new Date().getTime().toString()); |
862 }; | 876 }; |
863 | 877 |
864 /** | 878 /** |
865 * Removes wallpaper and thumbnail with fileName from FileSystem. | 879 * Removes wallpaper and thumbnail with fileName from FileSystem. |
866 * @param {string} fileName The file name of wallpaper and thumbnail to be | 880 * @param {string} fileName The file name of wallpaper and thumbnail to be |
867 * removed. | 881 * removed. |
868 */ | 882 */ |
869 WallpaperManager.prototype.removeCustomWallpaper = function(fileName) { | 883 WallpaperManager.prototype.removeCustomWallpaper = function(fileName) { |
870 var errorHandler = this.onFileSystemError_.bind(this); | 884 var errorHandler = this.onFileSystemError_.bind(this); |
871 var self = this; | 885 var self = this; |
872 var removeFile = function(fileName) { | 886 var removeFile = function(fileName) { |
873 var success = function(dirEntry) { | 887 var success = function(dirEntry) { |
874 dirEntry.getFile(fileName, {create: false}, function(fileEntry) { | 888 dirEntry.getFile(fileName, {create: false}, function(fileEntry) { |
875 fileEntry.remove(function() { | 889 fileEntry.remove(function() { |
876 }, errorHandler); | 890 }, errorHandler); |
877 }, errorHandler); | 891 }, errorHandler); |
878 } | 892 }; |
879 | 893 |
880 // Removes copy of original. | 894 // Removes copy of original. |
881 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, success, | 895 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, success, |
882 errorHandler); | 896 errorHandler); |
883 | 897 |
884 // Removes generated thumbnail. | 898 // Removes generated thumbnail. |
885 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.THUMBNAIL, success, | 899 self.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.THUMBNAIL, success, |
886 errorHandler); | 900 errorHandler); |
887 }; | 901 }; |
888 removeFile(fileName); | 902 removeFile(fileName); |
(...skipping 71 matching lines...) Loading... |
960 bar.style.left = selectedListItem.offsetLeft + 'px'; | 974 bar.style.left = selectedListItem.offsetLeft + 'px'; |
961 bar.style.width = selectedListItem.offsetWidth + 'px'; | 975 bar.style.width = selectedListItem.offsetWidth + 'px'; |
962 | 976 |
963 var wallpapersDataModel = new cr.ui.ArrayDataModel([]); | 977 var wallpapersDataModel = new cr.ui.ArrayDataModel([]); |
964 var selectedItem; | 978 var selectedItem; |
965 if (selectedListItem.custom) { | 979 if (selectedListItem.custom) { |
966 this.document_.body.setAttribute('custom', ''); | 980 this.document_.body.setAttribute('custom', ''); |
967 var errorHandler = this.onFileSystemError_.bind(this); | 981 var errorHandler = this.onFileSystemError_.bind(this); |
968 var toArray = function(list) { | 982 var toArray = function(list) { |
969 return Array.prototype.slice.call(list || [], 0); | 983 return Array.prototype.slice.call(list || [], 0); |
970 } | 984 }; |
971 | 985 |
972 var self = this; | 986 var self = this; |
973 var processResults = function(entries) { | 987 var processResults = function(entries) { |
974 for (var i = 0; i < entries.length; i++) { | 988 for (var i = 0; i < entries.length; i++) { |
975 var entry = entries[i]; | 989 var entry = entries[i]; |
976 var wallpaperInfo = { | 990 var wallpaperInfo = { |
977 baseURL: entry.name, | 991 baseURL: entry.name, |
978 // The layout will be replaced by the actual value saved in | 992 // The layout will be replaced by the actual value saved in |
979 // local storage when requested later. Layout is not important | 993 // local storage when requested later. Layout is not important |
980 // for constructing thumbnails grid, we use CENTER_CROPPED here | 994 // for constructing thumbnails grid, we use CENTER_CROPPED here |
(...skipping 21 matching lines...) Loading... |
1002 var lastElement = { | 1016 var lastElement = { |
1003 baseURL: '', | 1017 baseURL: '', |
1004 layout: '', | 1018 layout: '', |
1005 source: Constants.WallpaperSourceEnum.AddNew, | 1019 source: Constants.WallpaperSourceEnum.AddNew, |
1006 availableOffline: true | 1020 availableOffline: true |
1007 }; | 1021 }; |
1008 wallpapersDataModel.push(lastElement); | 1022 wallpapersDataModel.push(lastElement); |
1009 self.wallpaperGrid_.dataModel = wallpapersDataModel; | 1023 self.wallpaperGrid_.dataModel = wallpapersDataModel; |
1010 self.wallpaperGrid_.selectedItem = selectedItem; | 1024 self.wallpaperGrid_.selectedItem = selectedItem; |
1011 self.wallpaperGrid_.activeItem = selectedItem; | 1025 self.wallpaperGrid_.activeItem = selectedItem; |
1012 } | 1026 }; |
1013 | 1027 |
1014 var success = function(dirEntry) { | 1028 var success = function(dirEntry) { |
1015 var dirReader = dirEntry.createReader(); | 1029 var dirReader = dirEntry.createReader(); |
1016 var entries = []; | 1030 var entries = []; |
1017 // All of a directory's entries are not guaranteed to return in a single | 1031 // All of a directory's entries are not guaranteed to return in a single |
1018 // call. | 1032 // call. |
1019 var readEntries = function() { | 1033 var readEntries = function() { |
1020 dirReader.readEntries(function(results) { | 1034 dirReader.readEntries(function(results) { |
1021 if (!results.length) { | 1035 if (!results.length) { |
1022 processResults(entries.sort()); | 1036 processResults(entries.sort()); |
1023 } else { | 1037 } else { |
1024 entries = entries.concat(toArray(results)); | 1038 entries = entries.concat(toArray(results)); |
1025 readEntries(); | 1039 readEntries(); |
1026 } | 1040 } |
1027 }, errorHandler); | 1041 }, errorHandler); |
1028 }; | 1042 }; |
1029 readEntries(); // Start reading dirs. | 1043 readEntries(); // Start reading dirs. |
1030 } | 1044 }; |
1031 this.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, | 1045 this.wallpaperDirs_.getDirectory(WallpaperDirNameEnum.ORIGINAL, |
1032 success, errorHandler); | 1046 success, errorHandler); |
1033 } else { | 1047 } else { |
1034 this.document_.body.removeAttribute('custom'); | 1048 this.document_.body.removeAttribute('custom'); |
1035 for (var key in this.manifest_.wallpaper_list) { | 1049 for (var key in this.manifest_.wallpaper_list) { |
1036 if (selectedIndex == AllCategoryIndex || | 1050 if (selectedIndex == AllCategoryIndex || |
1037 this.manifest_.wallpaper_list[key].categories.indexOf( | 1051 this.manifest_.wallpaper_list[key].categories.indexOf( |
1038 selectedIndex - OnlineCategoriesOffset) != -1) { | 1052 selectedIndex - OnlineCategoriesOffset) != -1) { |
1039 var wallpaperInfo = { | 1053 var wallpaperInfo = { |
1040 baseURL: this.manifest_.wallpaper_list[key].base_url, | 1054 baseURL: this.manifest_.wallpaper_list[key].base_url, |
(...skipping 19 matching lines...) Loading... |
1060 } | 1074 } |
1061 } | 1075 } |
1062 } | 1076 } |
1063 this.wallpaperGrid_.dataModel = wallpapersDataModel; | 1077 this.wallpaperGrid_.dataModel = wallpapersDataModel; |
1064 this.wallpaperGrid_.selectedItem = selectedItem; | 1078 this.wallpaperGrid_.selectedItem = selectedItem; |
1065 this.wallpaperGrid_.activeItem = selectedItem; | 1079 this.wallpaperGrid_.activeItem = selectedItem; |
1066 } | 1080 } |
1067 }; | 1081 }; |
1068 | 1082 |
1069 })(); | 1083 })(); |
OLD | NEW |