flavors
This commit is contained in:
parent
312c6df662
commit
e51d8b6c56
6 changed files with 112 additions and 60 deletions
32
.vscode/launch.json
vendored
32
.vscode/launch.json
vendored
|
@ -7,25 +7,51 @@
|
||||||
{
|
{
|
||||||
"name": "Debug",
|
"name": "Debug",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"type": "dart"
|
"type": "dart",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"dev",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Test",
|
"name": "Test",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "./test/",
|
"program": "./test/",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"dev",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Profile",
|
"name": "Profile",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"flutterMode": "profile"
|
"flutterMode": "profile",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"dev",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Release",
|
"name": "Release",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"flutterMode": "release"
|
"flutterMode": "release",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"dev",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PRODUCTION",
|
||||||
|
"type": "dart",
|
||||||
|
"request": "launch",
|
||||||
|
"flutterMode": "release",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"prod",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -39,7 +39,7 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
applicationId "rocks.mucke"
|
// applicationId "rocks.mucke"
|
||||||
minSdkVersion 19
|
minSdkVersion 19
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutterVersionCode.toInteger()
|
||||||
|
@ -47,6 +47,16 @@ android {
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flavorDimensions "app"
|
||||||
|
productFlavors {
|
||||||
|
dev {
|
||||||
|
applicationId = "rocks.mucke.dev"
|
||||||
|
}
|
||||||
|
prod {
|
||||||
|
applicationId = "rocks.mucke"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
// TODO: Add your own signing config for the release build.
|
// TODO: Add your own signing config for the release build.
|
||||||
|
|
|
@ -154,7 +154,7 @@ class CurrentlyPlayingPage extends StatelessWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _openMoreMenu(BuildContext context) {
|
Future<void> _openMoreMenu(BuildContext context) async {
|
||||||
final AudioStore audioStore = GetIt.I<AudioStore>();
|
final AudioStore audioStore = GetIt.I<AudioStore>();
|
||||||
final MusicDataStore musicDataStore = GetIt.I<MusicDataStore>();
|
final MusicDataStore musicDataStore = GetIt.I<MusicDataStore>();
|
||||||
final NavigationStore navStore = GetIt.I<NavigationStore>();
|
final NavigationStore navStore = GetIt.I<NavigationStore>();
|
||||||
|
@ -163,10 +163,10 @@ class CurrentlyPlayingPage extends StatelessWidget {
|
||||||
if (song == null)
|
if (song == null)
|
||||||
return;
|
return;
|
||||||
// EXPLORATORY
|
// EXPLORATORY
|
||||||
final albums = musicDataStore.albumStream.value ?? [];
|
final albums = await musicDataStore.albumStream.first;
|
||||||
final album = albums.singleWhere((a) => a.title == song.album);
|
final album = albums.singleWhere((a) => a.title == song.album);
|
||||||
|
|
||||||
final artists = musicDataStore.artistStream.value ?? [];
|
final artists = await musicDataStore.artistStream.first;
|
||||||
final artist = artists.singleWhere((a) => a.name == album.artist);
|
final artist = artists.singleWhere((a) => a.name == album.artist);
|
||||||
|
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
|
|
|
@ -4,6 +4,7 @@ import '../theming.dart';
|
||||||
import '../widgets/header.dart';
|
import '../widgets/header.dart';
|
||||||
import '../widgets/highlight.dart';
|
import '../widgets/highlight.dart';
|
||||||
import '../widgets/shuffle_all_button.dart';
|
import '../widgets/shuffle_all_button.dart';
|
||||||
|
import 'settings_page.dart';
|
||||||
|
|
||||||
class HomePage extends StatefulWidget {
|
class HomePage extends StatefulWidget {
|
||||||
const HomePage({Key? key}) : super(key: key);
|
const HomePage({Key? key}) : super(key: key);
|
||||||
|
@ -19,9 +20,18 @@ class _HomePageState extends State<HomePage> {
|
||||||
return SafeArea(
|
return SafeArea(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
const Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(top: 8.0, left: HORIZONTAL_PADDING),
|
padding: const EdgeInsets.only(top: 8.0, left: HORIZONTAL_PADDING),
|
||||||
child: Header(title: 'Home'),
|
child: Header(
|
||||||
|
title: 'Home',
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).push(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (BuildContext context) => const SettingsPage(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: HORIZONTAL_PADDING),
|
padding: const EdgeInsets.symmetric(horizontal: HORIZONTAL_PADDING),
|
||||||
|
|
|
@ -14,7 +14,9 @@ class SettingsPage extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final MusicDataStore store = GetIt.I<MusicDataStore>();
|
final MusicDataStore store = GetIt.I<MusicDataStore>();
|
||||||
|
|
||||||
return ListView(
|
return SafeArea(
|
||||||
|
child: Material(
|
||||||
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
height: 12.0,
|
height: 12.0,
|
||||||
|
@ -60,6 +62,8 @@ class SettingsPage extends StatelessWidget {
|
||||||
height: 4.0,
|
height: 4.0,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,18 +3,20 @@ import 'package:flutter/material.dart';
|
||||||
import '../theming.dart';
|
import '../theming.dart';
|
||||||
|
|
||||||
class Header extends StatelessWidget {
|
class Header extends StatelessWidget {
|
||||||
const Header({Key? key, required this.title}) : super(key: key);
|
const Header({Key? key, required this.title, this.onPressed}) : super(key: key);
|
||||||
|
|
||||||
final String title;
|
final String title;
|
||||||
|
final Function? onPressed;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Row(
|
return Row(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(title, style: TEXT_HEADER),
|
Text(title, style: TEXT_HEADER),
|
||||||
|
if (onPressed != null)
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.more_vert),
|
icon: const Icon(Icons.more_vert),
|
||||||
onPressed: () {},
|
onPressed: () => onPressed!(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
|
Loading…
Add table
Reference in a new issue