diff --git a/tests/test_frame_apk_vr.py b/tests/test_frame_apk_vr.py index aa0d984..da87d15 100644 --- a/tests/test_frame_apk_vr.py +++ b/tests/test_frame_apk_vr.py @@ -18,11 +18,14 @@ import frame_android from test_frame_apk import pool +DEFAULT = 'android.intent.category.DEFAULT' + + def manifest(utf8=False, launcher=False, category=None, samsung=False, split=False, alias=False): strings = ['manifest', 'package', 'org.test.vr', 'application', 'activity', 'intent-filter', 'action', 'category', 'name', vr.MAIN, category or next(iter(sorted(vr.VR))), vr.LAUNCHER, 'http://schemas.android.com/apk/res/android', 'meta-data', 'value', - 'com.samsung.android.vr.application.mode', 'vr_only', 'activity-alias'] + 'com.samsung.android.vr.application.mode', 'vr_only', 'activity-alias', DEFAULT, next(iter(sorted(vr.VR)))] def start(tag, attrs=()): body = struct.pack('; Godot 4 puts LAUNCHER only there. - return {'launchable': any(LAUNCHER in f['categories'] for f in mains if not f['alias']), - 'vr_activity': bool(vr_filters), 'vr': bool(vr_filters) or samsung}, \ - [f for f in vr_filters if not f['alias']] + real = [f for f in mains if not f['alias']] + targets = [f for f in real if VR & f['categories']] + if not targets and any(LAUNCHER in f['categories'] or VR & f['categories'] for f in mains if f['alias']): + targets = [f for f in real if f['templates']] # the patch copies an existing + launchable = any(LAUNCHER in f['categories'] for f in real) + return {'launchable': launchable, 'repairable': not launchable and bool(targets), + 'vr_activity': bool(vr_filters), 'vr': bool(vr_filters) or samsung}, targets def _append_string(chunk, text): @@ -64,7 +68,7 @@ def add_launcher_category(axml_bytes): if info['launchable']: return axml_bytes if not filters: - raise frame_apk.ApkError('no VR activity with a MAIN intent filter to patch') + raise frame_apk.ApkError('no activity with a MAIN intent filter that Frame Control can patch') target = filters[0] chunks = list(frame_apk._chunks(axml_bytes, 8, len(axml_bytes))) pool = next(c for c in chunks if c[0] == 1) @@ -87,7 +91,7 @@ def add_launcher_category(axml_bytes): struct.pack_into('