Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js

Issue 597503007: Sync current wallpaper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand 10 before | Expand all | Expand 10 after
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...) Expand all
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...) Expand all
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 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698