Browse Source
android build: factor out package name ("org.electrum.electrum")
to make it easier to change, to make it easy to have a co-existing mainnet and testnet install
(or two mainnet installs, etc)
patch-4
SomberNight
3 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
4 changed files with
31 additions and
9 deletions
-
contrib/android/make_apk
-
electrum/logging.py
-
electrum/util.py
-
run_electrum
|
|
@ -42,6 +42,11 @@ pushd "$CONTRIB_ANDROID" |
|
|
|
|
|
|
|
info "apk building phase starts." |
|
|
|
|
|
|
|
# Uncomment and change below to set a custom android package id, |
|
|
|
# e.g. to allow simultaneous mainnet and testnet installs of the apk. |
|
|
|
# export APP_PACKAGE_NAME=Electrum |
|
|
|
# export APP_PACKAGE_DOMAIN=org.electrum |
|
|
|
|
|
|
|
if [ ! $CI ]; then |
|
|
|
# override log level specified in buildozer.spec to "debug": |
|
|
|
export BUILDOZER_LOG_LEVEL=2 |
|
|
|
|
|
@ -310,17 +310,15 @@ class Logger: |
|
|
|
|
|
|
|
|
|
|
|
def configure_logging(config: 'SimpleConfig', *, log_to_file: Optional[bool] = None) -> None: |
|
|
|
from .util import is_android_debug_apk |
|
|
|
|
|
|
|
verbosity = config.get('verbosity') |
|
|
|
verbosity_shortcuts = config.get('verbosity_shortcuts') |
|
|
|
_configure_stderr_logging(verbosity=verbosity, verbosity_shortcuts=verbosity_shortcuts) |
|
|
|
|
|
|
|
if log_to_file is None: |
|
|
|
log_to_file = config.get('log_to_file', False) |
|
|
|
is_android = 'ANDROID_DATA' in os.environ |
|
|
|
if is_android: |
|
|
|
from jnius import autoclass |
|
|
|
build_config = autoclass("org.electrum.electrum.BuildConfig") |
|
|
|
log_to_file |= bool(build_config.DEBUG) |
|
|
|
log_to_file |= is_android_debug_apk() |
|
|
|
if log_to_file: |
|
|
|
log_directory = pathlib.Path(config.path) / "logs" |
|
|
|
_configure_file_logging(log_directory) |
|
|
|
|
|
@ -444,7 +444,8 @@ def android_ext_dir(): |
|
|
|
return primary_external_storage_path() |
|
|
|
|
|
|
|
def android_backup_dir(): |
|
|
|
d = os.path.join(android_ext_dir(), 'org.electrum.electrum') |
|
|
|
pkgname = get_android_package_name() |
|
|
|
d = os.path.join(android_ext_dir(), pkgname) |
|
|
|
if not os.path.exists(d): |
|
|
|
os.mkdir(d) |
|
|
|
return d |
|
|
@ -511,6 +512,26 @@ def get_new_wallet_name(wallet_folder: str) -> str: |
|
|
|
return filename |
|
|
|
|
|
|
|
|
|
|
|
def is_android_debug_apk() -> bool: |
|
|
|
is_android = 'ANDROID_DATA' in os.environ |
|
|
|
if not is_android: |
|
|
|
return False |
|
|
|
from jnius import autoclass |
|
|
|
pkgname = get_android_package_name() |
|
|
|
build_config = autoclass(f"{pkgname}.BuildConfig") |
|
|
|
return bool(build_config.DEBUG) |
|
|
|
|
|
|
|
|
|
|
|
def get_android_package_name() -> str: |
|
|
|
is_android = 'ANDROID_DATA' in os.environ |
|
|
|
assert is_android |
|
|
|
from jnius import autoclass |
|
|
|
from android.config import ACTIVITY_CLASS_NAME |
|
|
|
activity = autoclass(ACTIVITY_CLASS_NAME).mActivity |
|
|
|
pkgname = str(activity.getPackageName()) |
|
|
|
return pkgname |
|
|
|
|
|
|
|
|
|
|
|
def assert_bytes(*args): |
|
|
|
""" |
|
|
|
porting helper, assert args type |
|
|
|
|
|
@ -324,10 +324,8 @@ def main(): |
|
|
|
if is_android: |
|
|
|
import importlib.util |
|
|
|
android_gui = 'kivy' if importlib.util.find_spec('kivy') else 'qml' |
|
|
|
from jnius import autoclass |
|
|
|
build_config = autoclass("org.electrum.electrum.BuildConfig") |
|
|
|
config_options = { |
|
|
|
'verbosity': '*' if build_config.DEBUG else '', |
|
|
|
'verbosity': '*' if util.is_android_debug_apk() else '', |
|
|
|
'cmd': 'gui', |
|
|
|
'gui': android_gui, |
|
|
|
'single_password':True, |
|
|
|