Skip to content

Commit ce0eabb

Browse files
Copy styles for supported Android versions
Inside tns-android resources, there are values-v<API_LEVEL> directories. Currently we were copying only values-v21 in case the current project targets API_LEVEL 21. Instead we should copy it when the project targets API_LEVEL 21 or upper (in case there's no newer directory, for example values-v22). For example: * `$ tns platform add android --sdk 22` - should copy values and values-v21 in your platforms/android/res dir * `$ tns platform add android --sdk 21` - should copy values and values-v21 in your platforms/android/res dir * `$ tns platform add android --sdk MNC` - should copy values and values-v21 in your platforms/android/res dir * `$ tns platform add android --sdk 17` - should copy values in your platforms/android/res dir
1 parent c292e80 commit ce0eabb

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lib/services/android-project-service.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,22 @@ class AndroidProjectService implements IPlatformProjectService {
106106
this.$fs.createDirectory(resDestinationDir).wait();
107107
let versionDirName = AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX + versionNumber;
108108
let directoriesToCopy = [AndroidProjectService.VALUES_DIRNAME];
109-
if(this.$fs.exists(path.join(resSourceDir, versionDirName)).wait()) {
110-
directoriesToCopy.push(versionDirName);
109+
let directoriesInResFolder = this.$fs.readDirectory(resSourceDir).wait();
110+
let integerFrameworkVersion = parseInt(versionNumber);
111+
let versionDir = _.find(directoriesInResFolder, dir => dir === versionDirName) ||
112+
_(directoriesInResFolder)
113+
.map(dir => {
114+
return {
115+
dirName: dir,
116+
sdkNum: parseInt(dir.substr(AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX.length))
117+
}
118+
})
119+
.filter(dir => dir.dirName.match(AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX) && dir.sdkNum && (!integerFrameworkVersion || (integerFrameworkVersion >= dir.sdkNum)))
120+
.max(dir => dir.sdkNum)
121+
.dirName;
122+
123+
if(versionDir) {
124+
directoriesToCopy.push(versionDir);
111125
}
112126

113127
this.copy(resDestinationDir, resSourceDir, directoriesToCopy.join(" "), "-R").wait();

0 commit comments

Comments
 (0)