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);
}