Skip to content

Commit 806aa30

Browse files
committed
Copying and interpolating android project
1 parent e826c30 commit 806aa30

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

lib/services/project-service.ts

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import osenv = require("osenv");
88
export class ProjectService implements IProjectService {
99
private static DEFAULT_PROJECT_ID = "com.telerik.tns.HelloWorld";
1010
private static DEFAULT_PROJECT_NAME = "HelloNativescript";
11-
private static APP_FOLDER_NAME = "app";
11+
public static APP_FOLDER_NAME = "app";
1212
private static PROJECT_FRAMEWORK_DIR = "framework";
1313

1414
private cachedProjectDir: string = "";
@@ -188,18 +188,44 @@ class AndroidProjectService implements IAndroidProjectService {
188188

189189
public createProject(projectData: IProjectData): IFuture<void> {
190190
return (() => {
191-
var safeActivityName = projectData.projectName.replace(/\W/g, '');
192191
var packageName = projectData.projectId;
193-
var packageAsPath = packageName.replace(/\./g, path.sep);
192+
var projectDir = path.join(projectData.projectDir, "platforms", "android");
194193

195194
var targetApi = this.getTarget();
196-
var manifestFile = path.join(this.frameworkDir, "AndroidManifest.xml");
197195

198196
this.validatePackageName(packageName);
199197
this.validateProjectName(projectData.projectName);
200198

201199
this.checkRequirements().wait();
202200

201+
// Log the values for project
202+
this.$logger.trace("Creating NativeScript project for the Android platform");
203+
this.$logger.trace("Path: %s", projectData.projectDir);
204+
this.$logger.trace("Package: %s", projectData.projectId);
205+
this.$logger.trace("Name: %s", projectData.projectName);
206+
this.$logger.trace("Android target: %s", targetApi);
207+
208+
this.$logger.out("Copying template files...");
209+
210+
shell.cp("-r", path.join(this.frameworkDir, "assets"), projectDir);
211+
shell.cp("-r", path.join(this.frameworkDir, "gen"), projectDir);
212+
shell.cp("-r", path.join(this.frameworkDir, "libs"), projectDir);
213+
shell.cp("-r", path.join(this.frameworkDir, "res"), projectDir);
214+
215+
shell.cp("-f", path.join(this.frameworkDir, ".classpath"), projectDir);
216+
shell.cp("-f", path.join(this.frameworkDir, ".project"), projectDir);
217+
shell.cp("-f", path.join(this.frameworkDir, "AndroidManifest.xml"), projectDir);
218+
shell.cp("-f", path.join(this.frameworkDir, "project.properties"), projectDir);
219+
220+
// Interpolate the activity name and package
221+
shell.sed('-i', /__NAME__/, projectData.projectName, path.join(projectDir, 'res', 'values', 'strings.xml'));
222+
shell.sed('-i', /__TITLE_ACTIVITY__/, projectData.projectName, path.join(projectDir, 'res', 'values', 'strings.xml'));
223+
shell.sed('-i', /__NAME__/, projectData.projectName, path.join(projectDir, '.project'));
224+
shell.sed('-i', /__PACKAGE__/, packageName, path.join(projectDir, "AndroidManifest.xml"));
225+
226+
// Copy app into assets
227+
shell.cp("-r", path.join(projectData.projectDir, ProjectService.APP_FOLDER_NAME), path.join(projectDir, "assets"));
228+
203229
}).future<any>()();
204230
}
205231

0 commit comments

Comments
 (0)