Skip to content

Commit 67d9f04

Browse files
[MMLV, MMCA] Move permissions_external_storage to mobileHelpers.py
1 parent efe43d0 commit 67d9f04

File tree

3 files changed

+29
-38
lines changed

3 files changed

+29
-38
lines changed

src/MobileCrashAnalyzer/ui/main_window.py

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,14 @@
1717
from shared.storage import CrashReport, Rawlog
1818
from shared.utils import Paths
1919
from shared.ui.mobile_about_dialog import MobileAboutDialog
20+
import shared.utils.mobileHelpers as helpers
2021

2122
# Just import if the os is Android to avoid Android peculiarities
2223
try:
2324
from android import activity, mActivity, permissions
2425
J_FileOutputStream = autoclass("java.io.FileOutputStream")
2526
J_FileUtils = autoclass("android.os.FileUtils")
2627
J_Intent = autoclass("android.content.Intent")
27-
J_PythonActivity = autoclass('org.kivy.android.PythonActivity')
28-
J_Environment = autoclass("android.os.Environment")
29-
J_Settings = autoclass("android.provider.Settings")
30-
J_Uri = autoclass("android.net.Uri")
3128
OPERATING_SYSTEM = "Android"
3229
except:
3330
OPERATING_SYSTEM = None
@@ -91,7 +88,7 @@ def on_start(self, *args):
9188
# Use if the os is Android to avoid Android peculiarities
9289
if OPERATING_SYSTEM == "Android":
9390
logger.info("Asking for permission for external storage")
94-
self.permissions_external_storage()
91+
helpers.permissions_external_storage()
9592

9693
context = cast('android.content.Context', mActivity.getApplicationContext())
9794
logger.info(f"Startup application context: {context}")
@@ -155,20 +152,6 @@ def on_new_intent(self, intent):
155152
156153
"""
157154

158-
# See: https://stackoverflow.com/questions/64849485/why-is-filemanager-not-working-on-android-kivymd
159-
def permissions_external_storage(self, *args):
160-
if not J_Environment.isExternalStorageManager():
161-
try:
162-
logger.debug("Ask for ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION")
163-
context = mActivity.getApplicationContext()
164-
uri = J_Uri.parse("package:" + context.getPackageName())
165-
intent = J_Intent(J_Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri)
166-
except Exception as e:
167-
logger.debug("ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION Failed! Open ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION")
168-
intent = J_Intent(J_Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
169-
currentActivity = cast("android.app.Activity", J_PythonActivity.mActivity)
170-
currentActivity.startActivityForResult(intent, 101)
171-
172155
def openFile(self, *args):
173156
logger.debug("Create file select popup dialog...")
174157

src/MobileLogViewer/ui/main_window.py

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from kivy.uix.label import Label
1010
from kivy.uix.popup import Popup
1111
from kivy.factory import Factory
12-
from kivy.utils import platform
1312

1413
import functools
1514
import os
@@ -22,10 +21,6 @@
2221
J_FileOutputStream = autoclass("java.io.FileOutputStream")
2322
J_FileUtils = autoclass("android.os.FileUtils")
2423
J_Intent = autoclass("android.content.Intent")
25-
J_PythonActivity = autoclass('org.kivy.android.PythonActivity')
26-
J_Environment = autoclass("android.os.Environment")
27-
J_Settings = autoclass("android.provider.Settings")
28-
J_Uri = autoclass("android.net.Uri")
2924
OPERATING_SYSTEM = "Android"
3025
except:
3126
OPERATING_SYSTEM = None
@@ -34,6 +29,7 @@
3429
from shared.storage import Rawlog
3530
from shared.utils import Paths
3631
from shared.ui.mobile_about_dialog import MobileAboutDialog
32+
import shared.utils.mobileHelpers as helpers
3733

3834
import logging
3935
logger = logging.getLogger(__name__)
@@ -104,7 +100,7 @@ def on_start(self, *args):
104100
# Use if the os is Android to avoid Android peculiarities
105101
if OPERATING_SYSTEM == "Android":
106102
logger.info("Asking for permission for external storage")
107-
self.permissions_external_storage()
103+
helpers.permissions_external_storage()
108104

109105
context = cast('android.content.Context', mActivity.getApplicationContext())
110106
logger.info(f"Startup application context: {context}")
@@ -165,19 +161,6 @@ def on_new_intent(self, intent):
165161
self.openFile(cacheFile)
166162
os.remove(cacheFile)
167163
"""
168-
# See: https://stackoverflow.com/questions/64849485/why-is-filemanager-not-working-on-android-kivymd
169-
def permissions_external_storage(self, *args):
170-
if not J_Environment.isExternalStorageManager():
171-
try:
172-
logger.debug("Ask for ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION")
173-
context = mActivity.getApplicationContext()
174-
uri = J_Uri.parse("package:" + context.getPackageName())
175-
intent = J_Intent(J_Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri)
176-
except Exception as e:
177-
logger.debug("ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION Failed! Open ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION")
178-
intent = J_Intent(J_Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
179-
currentActivity = cast("android.app.Activity", J_PythonActivity.mActivity)
180-
currentActivity.startActivityForResult(intent, 101)
181164

182165
def selectFile(self, *args):
183166
# Create popup window to select file

src/shared/utils/mobileHelpers.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from jnius import autoclass, cast
2+
from android import activity, mActivity, permissions
3+
4+
J_Intent = autoclass("android.content.Intent")
5+
J_PythonActivity = autoclass('org.kivy.android.PythonActivity')
6+
J_Environment = autoclass("android.os.Environment")
7+
J_Settings = autoclass("android.provider.Settings")
8+
J_Uri = autoclass("android.net.Uri")
9+
10+
import logging
11+
logger = logging.getLogger(__name__)
12+
13+
# See: https://stackoverflow.com/questions/64849485/why-is-filemanager-not-working-on-android-kivymd
14+
def permissions_external_storage(self, *args):
15+
if not J_Environment.isExternalStorageManager():
16+
try:
17+
logger.debug("Ask for ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION")
18+
context = mActivity.getApplicationContext()
19+
uri = J_Uri.parse("package:" + context.getPackageName())
20+
intent = J_Intent(J_Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri)
21+
except Exception as e:
22+
logger.debug("ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION Failed! Open ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION")
23+
intent = J_Intent(J_Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
24+
currentActivity = cast("android.app.Activity", J_PythonActivity.mActivity)
25+
currentActivity.startActivityForResult(intent, 101)

0 commit comments

Comments
 (0)