diff --git a/cmd/gio/androidbuild.go b/cmd/gio/androidbuild.go index c7a0906f..d173fb7e 100644 --- a/cmd/gio/androidbuild.go +++ b/cmd/gio/androidbuild.go @@ -233,6 +233,49 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo) (err error) { return err } } + + // Compile resources. + resDir := filepath.Join(tmpDir, "res") + valDir := filepath.Join(resDir, "values") + v21Dir := filepath.Join(resDir, "values-v21") + for _, dir := range []string{valDir, v21Dir} { + if err := os.MkdirAll(dir, 0755); err != nil { + return err + } + } + themes := ` + + +` + err = ioutil.WriteFile(filepath.Join(valDir, "themes.xml"), []byte(themes), 0660) + if err != nil { + return err + } + themesV21 := ` + + +` + err = ioutil.WriteFile(filepath.Join(v21Dir, "themes.xml"), []byte(themesV21), 0660) + if err != nil { + return err + } + resZip := filepath.Join(tmpDir, "resources.zip") + aapt2 := filepath.Join(tools.buildtools, "aapt2") + _, err = runCmd(exec.Command( + aapt2, + "compile", + "-o", resZip, + "--dir", resDir)) + if err != nil { + return err + } + + // Link APK. appName := strings.Title(filepath.Base(bi.pkg)) manifestSrc := fmt.Sprintf(` @@ -256,18 +299,19 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo) (err error) { `, *appID, appName) manifest := filepath.Join(tmpDir, "AndroidManifest.xml") - if err := ioutil.WriteFile(manifest, []byte(manifestSrc), 0600); err != nil { + if err := ioutil.WriteFile(manifest, []byte(manifestSrc), 0660); err != nil { return err } tmpapk := filepath.Join(tmpDir, "link.apk") - _, err = runCmd(exec.Command( - filepath.Join(tools.buildtools, "aapt2"), + link := exec.Command( + aapt2, "link", "--manifest", manifest, "-I", tools.androidjar, "-o", tmpapk, - )) - if err != nil { + resZip, + ) + if _, err := runCmd(link); err != nil { return err } // The Go standard library archive/zip doesn't support appending to zip diff --git a/cmd/gio/iosbuild.go b/cmd/gio/iosbuild.go index 63d41b0a..0af45f87 100644 --- a/cmd/gio/iosbuild.go +++ b/cmd/gio/iosbuild.go @@ -115,7 +115,7 @@ func signIOS(tmpDir, app, ipa string) error { return err } entFile := filepath.Join(tmpDir, "entitlements.plist") - if err := ioutil.WriteFile(entFile, []byte(entitlements), 0600); err != nil { + if err := ioutil.WriteFile(entFile, []byte(entitlements), 0660); err != nil { return err } signIdentity := cert.Subject.CommonName @@ -144,7 +144,7 @@ int main(int argc, char * argv[]) { return UIApplicationMain(argc, argv, nil, NSStringFromClass([GioAppDelegate class])); } }` - if err := ioutil.WriteFile(mainm, []byte(mainmSrc), 0600); err != nil { + if err := ioutil.WriteFile(mainm, []byte(mainmSrc), 0660); err != nil { return err } exe := filepath.Join(app, "app") @@ -200,7 +200,7 @@ int main(int argc, char * argv[]) { `, *appID, appName) infoPlist := filepath.Join(app, "Info.plist") - if err := ioutil.WriteFile(infoPlist, []byte(infoPlistSrc), 0600); err != nil { + if err := ioutil.WriteFile(infoPlist, []byte(infoPlistSrc), 0660); err != nil { return err } if _, err := runCmd(exec.Command("plutil", "-convert", "binary1", infoPlist)); err != nil { diff --git a/ui/app/GioActivity.java b/ui/app/GioActivity.java index 1b97c51d..2813d80e 100644 --- a/ui/app/GioActivity.java +++ b/ui/app/GioActivity.java @@ -17,11 +17,11 @@ public class GioActivity extends Activity { super.onCreate(state); Window w = getWindow(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - } this.view = new GioView(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + this.view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + } this.view.setLayoutParams(new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT)); setContentView(view); }