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
parent
commit
e72f575eea
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 5
      contrib/android/make_apk
  2. 8
      electrum/logging.py
  3. 23
      electrum/util.py
  4. 4
      run_electrum

5
contrib/android/make_apk

@ -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

8
electrum/logging.py

@ -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)

23
electrum/util.py

@ -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

4
run_electrum

@ -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,

Loading…
Cancel
Save