Skip to content

Commit 159a786

Browse files
committed
Add a bottom navigation bar with a new About page in companion app
Foundation for future improvements, such as standalone operation.
1 parent bee2f6d commit 159a786

File tree

7 files changed

+500
-296
lines changed

7 files changed

+500
-296
lines changed

companion_app/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ android {
7272
}
7373

7474
dependencies {
75-
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
75+
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
7676
}
7777

7878
flutter {

companion_app/android/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pluginManagement {
1818

1919
plugins {
2020
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version "8.2.2" apply false
21+
id "com.android.application" version "8.6.0" apply false
2222
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
2323
}
2424

companion_app/lib/info_screen.dart

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:url_launcher/url_launcher.dart';
3+
4+
class InfoScreen extends StatelessWidget {
5+
const InfoScreen({Key? key}) : super(key: key);
6+
7+
@override
8+
Widget build(BuildContext context) {
9+
return SingleChildScrollView(
10+
child: Column(
11+
crossAxisAlignment: CrossAxisAlignment.start,
12+
children: <Widget>[
13+
Row(
14+
children: const [
15+
Icon(Icons.backup, size: 28, color: Colors.green),
16+
SizedBox(width: 8),
17+
Text(
18+
"Open Android Backup",
19+
style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
20+
),
21+
],
22+
),
23+
const SizedBox(height: 8),
24+
const Text(
25+
"Open Android Backup is a tiny shell script & Flutter app that makes securely backing up Android devices easy, without vendor lock-ins or using closed-source software that could put your data at risk.",
26+
),
27+
const SizedBox(height: 24),
28+
Row(
29+
children: const [
30+
Icon(Icons.info_outline, size: 28, color: Colors.green),
31+
SizedBox(width: 8),
32+
Text(
33+
"About this app",
34+
style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
35+
),
36+
],
37+
),
38+
const SizedBox(height: 8),
39+
const Text(
40+
"The Open Android Backup companion app allows for backups of data not normally accessible through adb. No data is uploaded to a remote server: it is saved to the internal storage and then read by the script running on your computer.",
41+
),
42+
const SizedBox(height: 24),
43+
Row(
44+
children: const [
45+
Icon(Icons.code, size: 28, color: Colors.green),
46+
SizedBox(width: 8),
47+
Text(
48+
"Open Source",
49+
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
50+
),
51+
],
52+
),
53+
const SizedBox(height: 8),
54+
const Text(
55+
"Both the app and script are open-source and available on GitHub. Contributions are welcome!",
56+
),
57+
const SizedBox(height: 16),
58+
Padding(
59+
padding: const EdgeInsets.symmetric(vertical: 8.0),
60+
child: InkWell(
61+
onTap: () async {
62+
final url = Uri.parse('https://github.com/mrrfv/open-android-backup');
63+
await launchUrl(url, mode: LaunchMode.externalApplication);
64+
},
65+
child: Row(
66+
mainAxisSize: MainAxisSize.min,
67+
children: const [
68+
Icon(Icons.link, color: Colors.green),
69+
SizedBox(width: 6),
70+
Text(
71+
'View on GitHub',
72+
style: TextStyle(
73+
color: Colors.green,
74+
decoration: TextDecoration.underline,
75+
fontWeight: FontWeight.bold,
76+
),
77+
),
78+
],
79+
),
80+
),
81+
),
82+
],
83+
),
84+
);
85+
}
86+
}

0 commit comments

Comments
 (0)