Mercurial > libervia-desktop-kivy
diff cagou/core/platform_/android.py @ 381:eb3f622d8791
android: create/clean a temporary directory on startup:
directory returned by tempfiles on Android is actually the root directory of the
application, so it is not cleaned. To work around that a `/tmp` directory inside it is now
created, and cleaned on startup if it already exists.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 04 Feb 2020 20:47:17 +0100 |
parents | 9d3481663964 |
children | c7f1176cd2a9 |
line wrap: on
line diff
--- a/cagou/core/platform_/android.py Tue Feb 04 20:47:17 2020 +0100 +++ b/cagou/core/platform_/android.py Tue Feb 04 20:47:17 2020 +0100 @@ -22,6 +22,8 @@ import json from functools import partial from urllib.parse import urlparse +from pathlib import Path +import shutil from jnius import autoclass, cast from android import activity from sat.core.i18n import _ @@ -77,6 +79,15 @@ activity.bind(on_new_intent=self.on_new_intent) self.cache.append((self.on_new_intent, mActivity.getIntent())) host.addListener('profilePlugged', self.onProfilePlugged) + local_dir = Path(host.getConfig('', 'local_dir')).resolve() + self.tmp_dir = local_dir / 'tmp' + # we assert to avoid disaster if `/ 'tmp'` is removed by mistake on the line + # above + assert self.tmp_dir.resolve() != local_dir + # we reset tmp dir on each run, to be sure that there is no residual file + if self.tmp_dir.exists(): + shutil.rmtree(self.tmp_dir) + self.tmp_dir.mkdir(0o700) def on_initFrontendState(self): # XXX: we use a separated socket instead of bridge because if we