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 var WallpaperUtil = { | 5 var WallpaperUtil = { |
6 strings: null, // Object that contains all the flags | 6 strings: null, // Object that contains all the flags |
7 syncFs: null, // syncFileSystem handler | 7 syncFs: null, // syncFileSystem handler |
8 webkitFs: null // webkitFileSystem handler | 8 webkitFs: null // webkitFileSystem handler |
9 }; | 9 }; |
10 | 10 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 /** | 47 /** |
48 * Loads a wallpaper from sync file system and saves it and its thumbnail to | 48 * Loads a wallpaper from sync file system and saves it and its thumbnail to |
49 * local file system. | 49 * local file system. |
50 * @param {string} wallpaperFileEntry File name of wallpaper image. | 50 * @param {string} wallpaperFileEntry File name of wallpaper image. |
51 */ | 51 */ |
52 WallpaperUtil.storeWallpaperFromSyncFSToLocalFS = function(wallpaperFileEntry) { | 52 WallpaperUtil.storeWallpaperFromSyncFSToLocalFS = function(wallpaperFileEntry) { |
53 var filenName = wallpaperFileEntry.name; | 53 var filenName = wallpaperFileEntry.name; |
54 var storeDir = Constants.WallpaperDirNameEnum.ORIGINAL; | 54 var storeDir = Constants.WallpaperDirNameEnum.ORIGINAL; |
55 if (filenName.indexOf(Constants.CustomWallpaperThumbnailSuffix) != -1) | 55 if (filenName.indexOf(Constants.CustomWallpaperThumbnailSuffix) != -1) |
56 storeDir = Constants.WallpaperDirNameEnum.THUMBNAIL; | 56 storeDir = Constants.WallpaperDirNameEnum.THUMBNAIL; |
57 filenName = filenName.replace(Constants.CustomWallpaperThumbnailSuffix, ''); | |
58 wallpaperFileEntry.file(function(file) { | 57 wallpaperFileEntry.file(function(file) { |
59 var reader = new FileReader(); | 58 var reader = new FileReader(); |
60 reader.onloadend = function() { | 59 reader.onloadend = function() { |
61 WallpaperUtil.storeWallpaperToLocalFS(filenName, reader.result, storeDir); | 60 WallpaperUtil.storeWallpaperToLocalFS(filenName, reader.result, storeDir); |
62 }; | 61 }; |
63 reader.readAsArrayBuffer(file); | 62 reader.readAsArrayBuffer(file); |
64 }, WallpaperUtil.onFileSystemError); | 63 }, WallpaperUtil.onFileSystemError); |
65 }; | 64 }; |
66 | 65 |
67 /** | 66 /** |
(...skipping 14 matching lines...) Expand all Loading... |
82 {create: false}, | 81 {create: false}, |
83 function(fe) { | 82 function(fe) { |
84 fe.remove(function() {}, null); | 83 fe.remove(function() {}, null); |
85 }, | 84 }, |
86 WallpaperUtil.onFileSystemError); | 85 WallpaperUtil.onFileSystemError); |
87 }; | 86 }; |
88 WallpaperUtil.requestSyncFS(success); | 87 WallpaperUtil.requestSyncFS(success); |
89 }; | 88 }; |
90 | 89 |
91 /** | 90 /** |
92 * Run experimental features. | 91 * Executes callback if experimental flag is set to true. |
93 * @param {function} callback The callback will be executed if 'isExperimental' | 92 * @param {function} callback The callback will be executed if 'isExperimental' |
94 * flag is set to true. | 93 * flag is set to true. |
95 */ | 94 */ |
96 WallpaperUtil.enabledExperimentalFeatureCallback = function(callback) { | 95 WallpaperUtil.enabledExperimentalFeatureCallback = function(callback) { |
97 if (WallpaperUtil.strings) { | 96 if (WallpaperUtil.strings) { |
98 if (WallpaperUtil.strings.isExperimental) | 97 if (WallpaperUtil.strings.isExperimental) |
99 callback(); | 98 callback(); |
100 } else { | 99 } else { |
101 chrome.wallpaperPrivate.getStrings(function(strings) { | 100 chrome.wallpaperPrivate.getStrings(function(strings) { |
102 WallpaperUtil.strings = strings; | 101 WallpaperUtil.strings = strings; |
103 if (WallpaperUtil.strings.isExperimental) | 102 if (WallpaperUtil.strings.isExperimental) |
104 callback(); | 103 callback(); |
105 }); | 104 }); |
106 } | 105 } |
107 }; | 106 }; |
108 | 107 |
109 /** | 108 /** |
| 109 * Executes callback if sync theme is enabled. |
| 110 * @param {function} callback The callback will be executed if sync themes is |
| 111 * enabled. |
| 112 */ |
| 113 WallpaperUtil.enabledSyncThemesCallback = function(callback) { |
| 114 chrome.wallpaperPrivate.getSyncSetting(function(setting) { |
| 115 if (setting.syncThemes) |
| 116 callback(); |
| 117 }); |
| 118 }; |
| 119 |
| 120 /** |
110 * Request a syncFileSystem handle and run callback on it. | 121 * Request a syncFileSystem handle and run callback on it. |
111 * @param {function} callback The callback to execute after syncFileSystem | 122 * @param {function} callback The callback to execute after syncFileSystem |
112 * handler is available. | 123 * handler is available. |
113 */ | 124 */ |
114 WallpaperUtil.requestSyncFS = function(callback) { | 125 WallpaperUtil.requestSyncFS = function(callback) { |
115 if (WallpaperUtil.syncFs) { | 126 WallpaperUtil.enabledSyncThemesCallback(function() { |
116 callback(WallpaperUtil.syncFs); | 127 if (WallpaperUtil.syncFs) { |
117 } else { | |
118 chrome.syncFileSystem.requestFileSystem(function(fs) { | |
119 WallpaperUtil.syncFs = fs; | |
120 callback(WallpaperUtil.syncFs); | 128 callback(WallpaperUtil.syncFs); |
121 }); | 129 } else { |
122 } | 130 chrome.syncFileSystem.requestFileSystem(function(fs) { |
| 131 WallpaperUtil.syncFs = fs; |
| 132 callback(WallpaperUtil.syncFs); |
| 133 }); |
| 134 } |
| 135 }); |
123 }; | 136 }; |
124 | 137 |
125 /** | 138 /** |
126 * Request a Local Fs handle and run callback on it. | 139 * Request a Local Fs handle and run callback on it. |
127 * @param {function} callback The callback to execute after Local handler is | 140 * @param {function} callback The callback to execute after Local handler is |
128 * available. | 141 * available. |
129 */ | 142 */ |
130 WallpaperUtil.requestLocalFS = function(callback) { | 143 WallpaperUtil.requestLocalFS = function(callback) { |
131 if (WallpaperUtil.webkitFs) { | 144 if (WallpaperUtil.webkitFs) { |
132 callback(WallpaperUtil.webkitFs); | 145 callback(WallpaperUtil.webkitFs); |
(...skipping 16 matching lines...) Expand all Loading... |
149 }; | 162 }; |
150 | 163 |
151 /** | 164 /** |
152 * Write jpeg/png file data into file entry. | 165 * Write jpeg/png file data into file entry. |
153 * @param {FileEntry} fileEntry The file entry that going to be writen. | 166 * @param {FileEntry} fileEntry The file entry that going to be writen. |
154 * @param {ArrayBuffer} wallpaperData Data for image file. | 167 * @param {ArrayBuffer} wallpaperData Data for image file. |
155 * @param {function=} writeCallback The callback that will be executed after | 168 * @param {function=} writeCallback The callback that will be executed after |
156 * writing data. | 169 * writing data. |
157 */ | 170 */ |
158 WallpaperUtil.writeFile = function(fileEntry, wallpaperData, writeCallback) { | 171 WallpaperUtil.writeFile = function(fileEntry, wallpaperData, writeCallback) { |
159 var uint8arr = new Uint8Array(wallpaperData); | |
160 fileEntry.createWriter(function(fileWriter) { | 172 fileEntry.createWriter(function(fileWriter) { |
161 var blob = new Blob([new Int8Array(wallpaperData)]); | 173 var blob = new Blob([new Int8Array(wallpaperData)]); |
162 fileWriter.write(blob); | 174 fileWriter.write(blob); |
163 if (writeCallback) | 175 if (writeCallback) |
164 writeCallback(); | 176 writeCallback(); |
165 }, WallpaperUtil.onFileSystemError); | 177 }, WallpaperUtil.onFileSystemError); |
166 }; | 178 }; |
167 | 179 |
168 /** | 180 /** |
169 * Write jpeg/png file data into syncFileSystem. | 181 * Write jpeg/png file data into syncFileSystem. |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 * Saves value to local storage that associates with key. | 281 * Saves value to local storage that associates with key. |
270 * @param {string} key The key that associates with value. | 282 * @param {string} key The key that associates with value. |
271 * @param {string} value The value to save to local storage. | 283 * @param {string} value The value to save to local storage. |
272 * @param {boolen} sync True if the value is saved to sync storage. | 284 * @param {boolen} sync True if the value is saved to sync storage. |
273 * @param {function=} opt_callback The callback on success, or on failure. | 285 * @param {function=} opt_callback The callback on success, or on failure. |
274 */ | 286 */ |
275 WallpaperUtil.saveToStorage = function(key, value, sync, opt_callback) { | 287 WallpaperUtil.saveToStorage = function(key, value, sync, opt_callback) { |
276 var items = {}; | 288 var items = {}; |
277 items[key] = value; | 289 items[key] = value; |
278 if (sync) | 290 if (sync) |
279 Constants.WallpaperSyncStorage.set(items, opt_callback); | 291 WallpaperUtil.enabledSyncThemesCallback(function() { |
| 292 Constants.WallpaperSyncStorage.set(items, opt_callback); |
| 293 }); |
280 else | 294 else |
281 Constants.WallpaperLocalStorage.set(items, opt_callback); | 295 Constants.WallpaperLocalStorage.set(items, opt_callback); |
282 }; | 296 }; |
283 | 297 |
284 /** | 298 /** |
285 * Saves user's wallpaper infomation to local and sync storage. Note that local | 299 * Saves user's wallpaper infomation to local and sync storage. Note that local |
286 * value should be saved first. | 300 * value should be saved first. |
287 * @param {string} url The url address of wallpaper. For custom wallpaper, it is | 301 * @param {string} url The url address of wallpaper. For custom wallpaper, it is |
288 * the file name. | 302 * the file name. |
289 * @param {string} layout The wallpaper layout. | 303 * @param {string} layout The wallpaper layout. |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 * Runs chrome.test.sendMessage in test environment. Does nothing if running | 384 * Runs chrome.test.sendMessage in test environment. Does nothing if running |
371 * in production environment. | 385 * in production environment. |
372 * | 386 * |
373 * @param {string} message Test message to send. | 387 * @param {string} message Test message to send. |
374 */ | 388 */ |
375 WallpaperUtil.testSendMessage = function(message) { | 389 WallpaperUtil.testSendMessage = function(message) { |
376 var test = chrome.test || window.top.chrome.test; | 390 var test = chrome.test || window.top.chrome.test; |
377 if (test) | 391 if (test) |
378 test.sendMessage(message); | 392 test.sendMessage(message); |
379 }; | 393 }; |
OLD | NEW |