From a7d031dc94412682d1b83222a41f5bb5a414c0ad Mon Sep 17 00:00:00 2001 From: Masala Date: Thu, 15 Sep 2022 10:35:00 -0400 Subject: [PATCH] cmd/gogio: add android foreground permission This adds the permission android.permission.FOREGROUND_SERVICE to the android application Metadata Signed-off-by: Masala --- gogio/androidbuild.go | 23 +++++++++++++++++++++++ gogio/permission.go | 3 +++ 2 files changed, 26 insertions(+) diff --git a/gogio/androidbuild.go b/gogio/androidbuild.go index 870dada..e65a04f 100644 --- a/gogio/androidbuild.go +++ b/gogio/androidbuild.go @@ -48,6 +48,7 @@ type manifestData struct { Features []string IconSnip string AppName string + HasService bool } const ( @@ -67,6 +68,7 @@ const ( #40000000 ` + foregroundPermission = "android.permission.FOREGROUND_SERVICE" ) func init() { @@ -448,6 +450,7 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe Features: features, IconSnip: iconSnip, AppName: appName, + HasService: stringsContains(perms, "foreground"), } tmpl, err := template.New("test").Parse( ` @@ -470,6 +473,17 @@ func exeAndroid(tmpDir string, tools *androidTools, bi *buildInfo, extraJars, pe + {{if .HasService}} + + + + + + {{end}} `) var manifestBuffer bytes.Buffer @@ -869,6 +883,15 @@ func getPermissions(ps []string) ([]string, []string) { return permissions, features } +func stringsContains(strings []string, str string) bool { + for _, s := range strings { + if str == s { + return true + } + } + return false +} + func latestPlatform(sdk string) (string, error) { allPlats, err := filepath.Glob(filepath.Join(sdk, "platforms", "android-*")) if err != nil { diff --git a/gogio/permission.go b/gogio/permission.go index c3227ac..f72b0b2 100644 --- a/gogio/permission.go +++ b/gogio/permission.go @@ -22,6 +22,9 @@ var AndroidPermissions = map[string][]string{ "wakelock": { "android.permission.WAKE_LOCK", }, + "foreground": { + "android.permission.FOREGROUND_SERVICE", + }, } var AndroidFeatures = map[string][]string{