1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | 'use strict';
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | function getAssetPathInDrawableFolder(asset) {
|
17 | var paths = [];
|
18 | asset.scales.forEach(function (scale) {
|
19 | var drawableFolder = getAndroidDrawableFolderName(asset, scale);
|
20 | var fileName = getAndroidResourceIdentifier(asset);
|
21 | paths.push(drawableFolder + '/' + fileName + '.' + asset.type);
|
22 | });
|
23 | return paths;
|
24 | }
|
25 |
|
26 | function getAndroidAssetSuffix(scale) {
|
27 | switch (scale) {
|
28 | case 0.75:
|
29 | return 'ldpi';
|
30 | case 1:
|
31 | return 'mdpi';
|
32 | case 1.5:
|
33 | return 'hdpi';
|
34 | case 2:
|
35 | return 'xhdpi';
|
36 | case 3:
|
37 | return 'xxhdpi';
|
38 | case 4:
|
39 | return 'xxxhdpi';
|
40 | }
|
41 | }
|
42 |
|
43 | function getAndroidDrawableFolderName(asset, scale) {
|
44 | var suffix = getAndroidAssetSuffix(scale);
|
45 | if (!suffix) {
|
46 | throw new Error('Don\'t know which android drawable suffix to use for asset: ' + JSON.stringify(asset));
|
47 | }
|
48 | return 'drawable-' + suffix;
|
49 | }
|
50 |
|
51 | function getAndroidResourceIdentifier(asset) {
|
52 | var folderPath = getBasePath(asset);
|
53 | return (folderPath + '/' + asset.name).toLowerCase().replace(/\//g, '_')
|
54 | .replace(/([^a-z0-9_])/g, '')
|
55 | .replace(/^assets_/, '');
|
56 | }
|
57 |
|
58 | function getBasePath(asset) {
|
59 | var basePath = asset.httpServerLocation;
|
60 | if (basePath[0] === '/') {
|
61 | basePath = basePath.substr(1);
|
62 | }
|
63 | return basePath;
|
64 | }
|
65 |
|
66 | module.exports = {
|
67 | getAssetPathInDrawableFolder: getAssetPathInDrawableFolder
|
68 | }; |
\ | No newline at end of file |