From 71952318ea522256833db232b950c10396e7ba08 Mon Sep 17 00:00:00 2001 From: Tim Rid <6593626+timrid@users.noreply.github.com> Date: Thu, 27 Mar 2025 21:34:43 +0100 Subject: [PATCH 1/3] add additional enviroment variables from "org.beeware.ENV" to "os.environ" --- .../java/org/beeware/android/MainActivity.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java index 26f06af..895f60a 100644 --- a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java +++ b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java @@ -16,9 +16,11 @@ import com.chaquo.python.Python; import com.chaquo.python.android.AndroidPlatform; +import java.util.Iterator; import java.util.List; import org.json.JSONArray; +import org.json.JSONObject; import org.json.JSONException; import {{ cookiecutter.package_name }}.{{ cookiecutter.module_name }}.R; @@ -79,6 +81,20 @@ protected void onCreate(Bundle savedInstanceState) { throw new RuntimeException(e); } } + + String envStr = getIntent().getStringExtra("org.beeware.ENV"); + if (envStr != null) { + try { + JSONObject envJson = new JSONObject(envStr); + for (Iterator it = envJson.keys(); it.hasNext(); ) { + String key = it.next(); + String value = envJson.getString(key); + py.getModule("os").get("environ").callAttr("__setitem__", key, value); + } + } catch (JSONException e) { + throw new RuntimeException(e); + } + } } Log.d(TAG, "Running main module " + getString(R.string.main_module)); From 971ffc0356463cc41cd17c7f0c740224e9fbb71e Mon Sep 17 00:00:00 2001 From: Tim Rid <6593626+timrid@users.noreply.github.com> Date: Thu, 27 Mar 2025 22:19:44 +0100 Subject: [PATCH 2/3] set enviroment variable via "Os.setenv" instead of "os.environ" so that it is available at python startup while processing the .pth files --- .../org/beeware/android/MainActivity.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java index 895f60a..77437c8 100644 --- a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java +++ b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java @@ -3,6 +3,8 @@ import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; +import android.system.Os; +import android.system.ErrnoException; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -58,6 +60,22 @@ protected void onCreate(Bundle savedInstanceState) { this.setContentView(layout); singletonThis = this; + String envStr = getIntent().getStringExtra("org.beeware.ENV"); + if (envStr != null) { + try { + JSONObject envJson = new JSONObject(envStr); + for (Iterator it = envJson.keys(); it.hasNext(); ) { + String key = it.next(); + String value = envJson.getString(key); + Os.setenv(key, value, true); + } + } catch (JSONException e) { + throw new RuntimeException(e); + } catch (ErrnoException e) { + throw new RuntimeException(e); + } + } + Python py; if (Python.isStarted()) { Log.d(TAG, "Python already started"); @@ -81,20 +99,6 @@ protected void onCreate(Bundle savedInstanceState) { throw new RuntimeException(e); } } - - String envStr = getIntent().getStringExtra("org.beeware.ENV"); - if (envStr != null) { - try { - JSONObject envJson = new JSONObject(envStr); - for (Iterator it = envJson.keys(); it.hasNext(); ) { - String key = it.next(); - String value = envJson.getString(key); - py.getModule("os").get("environ").callAttr("__setitem__", key, value); - } - } catch (JSONException e) { - throw new RuntimeException(e); - } - } } Log.d(TAG, "Running main module " + getString(R.string.main_module)); From 271212def90a913ca2a1996fc08ecf9df97a69c8 Mon Sep 17 00:00:00 2001 From: Tim Rid <6593626+timrid@users.noreply.github.com> Date: Sun, 30 Mar 2025 13:44:29 +0200 Subject: [PATCH 3/3] changed "org.beeware.ENV" to "org.beeware.ENVIRON" --- .../main/java/org/beeware/android/MainActivity.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java index 77437c8..33c993d 100644 --- a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java +++ b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java @@ -60,13 +60,13 @@ protected void onCreate(Bundle savedInstanceState) { this.setContentView(layout); singletonThis = this; - String envStr = getIntent().getStringExtra("org.beeware.ENV"); - if (envStr != null) { + String environStr = getIntent().getStringExtra("org.beeware.ENVIRON"); + if (environStr != null) { try { - JSONObject envJson = new JSONObject(envStr); - for (Iterator it = envJson.keys(); it.hasNext(); ) { + JSONObject environJson = new JSONObject(environStr); + for (Iterator it = environJson.keys(); it.hasNext(); ) { String key = it.next(); - String value = envJson.getString(key); + String value = environJson.getString(key); Os.setenv(key, value, true); } } catch (JSONException e) {