make export settings activity transparent

This commit is contained in:
Benjamin Halko 2023-09-27 12:21:27 -07:00
parent 2250e1bcab
commit 72ae132fcd
No known key found for this signature in database
GPG Key ID: 790C70040EB331A0
6 changed files with 32 additions and 37 deletions

View File

@ -46,13 +46,13 @@
android:name=".ExportSettingsActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:theme="@style/ExportSettingsTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"/>
android:resource="@style/ExportSettingsTheme"/>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>

View File

@ -3,6 +3,7 @@ package app.revanced.manager.flutter
import android.app.Activity
import android.content.Intent
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.android.TransparencyMode
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import java.io.Serializable
@ -37,4 +38,8 @@ class ExportSettingsActivity : FlutterActivity() {
override fun getDartEntrypointFunctionName(): String {
return "mainExportSettings"
}
override fun getTransparencyMode(): TransparencyMode {
return TransparencyMode.transparent
}
}

View File

@ -15,4 +15,10 @@
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
<style name="ExportSettingsTheme" parent="android:Theme.Light.NoTitleBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">#52000000</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>

View File

@ -306,9 +306,9 @@
"managerContributors": "Manager contributors"
},
"exportSettingsView": {
"widgetTitle": "Export settings",
"description": "Would you like to export your settings to the latest version of ReVanced Manager?",
"exportButton": "Export",
"widgetTitle": "Import settings",
"description": "Would you like to import your settings to the previous version of ReVanced Manager?",
"exportButton": "Import",
"dismissButton": "No thanks"
}
}

View File

@ -10,26 +10,23 @@ class ExportSettingsView extends StatelessWidget {
@override
Widget build(BuildContext context) {
_exportSettingsViewModel.init(context);
return Material(
child: AlertDialog(
title: I18nText('exportSettingsView.widgetTitle'),
content: I18nText('exportSettingsView.description'),
icon: const Icon(Icons.update),
actions: <Widget> [
CustomMaterialButton(
isFilled: false,
label: I18nText('exportSettingsView.dismissButton'),
onPressed: _exportSettingsViewModel.deny,
),
CustomMaterialButton(
label: I18nText('exportSettingsView.exportButton'),
onPressed: () async {
await _exportSettingsViewModel.accept();
},
),
],
return AlertDialog(
title: I18nText('exportSettingsView.widgetTitle'),
content: I18nText('exportSettingsView.description'),
icon: const Icon(Icons.update),
actions: <Widget> [
CustomMaterialButton(
isFilled: false,
label: I18nText('exportSettingsView.dismissButton'),
onPressed: _exportSettingsViewModel.deny,
),
CustomMaterialButton(
label: I18nText('exportSettingsView.exportButton'),
onPressed: () async {
await _exportSettingsViewModel.accept();
},
),
],
);
}
}

View File

@ -15,19 +15,6 @@ class ExportSettingsViewModel extends BaseViewModel {
final _channel = const MethodChannel('app.revanced.manager.flutter/settings');
final ManagerAPI _managerAPI = locator<ManagerAPI>();
void init(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
systemNavigationBarColor: Colors.transparent,
systemNavigationBarIconBrightness:
DynamicTheme.of(context)!.theme.brightness == Brightness.light
? Brightness.dark
: Brightness.light,
),
);
}
Future<void> accept() async {
final externalDir = await getExternalStorageDirectory();