Skip to content
Snippets Groups Projects
Commit 82667de7 authored by Erik Hinkelmanns's avatar Erik Hinkelmanns
Browse files

Merge remote-tracking branch 'origin/main' into mergeHELL

# Conflicts:
#	lib/main.dart
parents 646c30b9 6afc269a
No related branches found
No related tags found
No related merge requests found
...@@ -74,7 +74,7 @@ class _HUDState extends State<HUD> { ...@@ -74,7 +74,7 @@ class _HUDState extends State<HUD> {
}, },
children: const [ children: const [
HomePage(), HomePage(),
emptyMoodpage(), StateMoodPage(),
StateSearcgPage(), StateSearcgPage(),
], ],
), ),
......
import 'package:ambient/widgets/navbars.dart';
import 'dart:io'; import 'dart:io';
import 'package:vector_math/vector_math.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:palette_generator/palette_generator.dart'; import 'package:palette_generator/palette_generator.dart';
...@@ -11,10 +11,26 @@ class StateMoodPage extends StatefulWidget { ...@@ -11,10 +11,26 @@ class StateMoodPage extends StatefulWidget {
State<StateMoodPage> createState() => MoodPage(); State<StateMoodPage> createState() => MoodPage();
} }
enum Moods { none, happy, sad }
extension MoodsExtention on Moods {
Color get color {
switch (this) {
case Moods.none:
return Color.fromARGB(255, 75, 75, 75);
case Moods.happy:
return Color.fromARGB(255, 237, 219, 18);
case Moods.sad:
return Color.fromARGB(255, 64, 71, 167);
}
}
}
class MoodPage extends State<StateMoodPage> { class MoodPage extends State<StateMoodPage> {
late File _image; late File _image;
final ImagePicker _picker = ImagePicker(); final ImagePicker _picker = ImagePicker();
late PaletteGenerator paletteGenerator; late PaletteGenerator paletteGenerator;
Moods? currentMood = Moods.happy;
String imagePath = ""; String imagePath = "";
_getFromGallery() async { _getFromGallery() async {
...@@ -34,6 +50,54 @@ class MoodPage extends State<StateMoodPage> { ...@@ -34,6 +50,54 @@ class MoodPage extends State<StateMoodPage> {
} }
} }
_getColorDistance(Color c1, Color c2) {
double distance = 0;
Vector3 v1 =
Vector3(c1.red.toDouble(), c1.green.toDouble(), c1.blue.toDouble());
Vector3 v2 =
Vector3(c2.red.toDouble(), c2.green.toDouble(), c2.blue.toDouble());
distance = v1.distanceTo(v2).toInt().toDouble();
return distance;
}
_determineMoodToMatch(Color col) {
double distance = 1000.0;
Moods newMood = Moods.none;
for (var value in Moods.values) {
if (_getColorDistance(col, value.color) < distance &&
value != Moods.none) {
distance = _getColorDistance(col, value.color);
newMood = value;
}
}
return newMood;
}
_getMoodList() {
return Column(children: <Widget>[
RadioListTile<Moods>(
title: const Text('Happy'),
value: Moods.happy,
groupValue: currentMood,
onChanged: (Moods? value) {
setState(() {
currentMood = value;
});
},
),
RadioListTile<Moods>(
title: const Text('Sad'),
value: Moods.sad,
groupValue: currentMood,
onChanged: (Moods? value) {
setState(() {
currentMood = value;
});
},
),
]);
}
_getContainerTodisplay() { _getContainerTodisplay() {
BoxDecoration deco = new BoxDecoration(); BoxDecoration deco = new BoxDecoration();
var image; var image;
...@@ -46,8 +110,8 @@ class MoodPage extends State<StateMoodPage> { ...@@ -46,8 +110,8 @@ class MoodPage extends State<StateMoodPage> {
), ),
); );
} else { } else {
deco = new BoxDecoration( deco = const BoxDecoration(
color: Colors.purple, color: Color.fromARGB(255, 64, 71, 167),
); );
} }
return Container( return Container(
...@@ -83,11 +147,14 @@ class MoodPage extends State<StateMoodPage> { ...@@ -83,11 +147,14 @@ class MoodPage extends State<StateMoodPage> {
(BuildContext context, AsyncSnapshot<PaletteGenerator> snapshot) { (BuildContext context, AsyncSnapshot<PaletteGenerator> snapshot) {
switch (snapshot.connectionState) { switch (snapshot.connectionState) {
case ConnectionState.waiting: case ConnectionState.waiting:
return Center(child: CircularProgressIndicator()); return const Center(child: CircularProgressIndicator());
default: default:
if (snapshot.hasError) { if (snapshot.hasError) {
return PaletteSquare(color: Color.fromARGB(255, 236, 177, 173)); return const PaletteSquare(
color: Color.fromARGB(255, 173, 188, 236));
} else { } else {
currentMood =
_determineMoodToMatch(snapshot.data!.dominantColor!.color);
return Row(children: <Widget>[ return Row(children: <Widget>[
PaletteSquare(color: snapshot.data!.mutedColor!.color), PaletteSquare(color: snapshot.data!.mutedColor!.color),
PaletteSquare(color: snapshot.data!.vibrantColor!.color), PaletteSquare(color: snapshot.data!.vibrantColor!.color),
...@@ -103,16 +170,19 @@ class MoodPage extends State<StateMoodPage> { ...@@ -103,16 +170,19 @@ class MoodPage extends State<StateMoodPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar(
title: const Text("MoodPage"),
),
body: Center( body: Center(
child: Column( child: Column(
//mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
_getContainerTodisplay(), _getContainerTodisplay(),
_getCollorIndicator(), _getCollorIndicator(),
_getMoodList(),
TextButton( TextButton(
style: ButtonStyle( style: ButtonStyle(
foregroundColor: foregroundColor: MaterialStateProperty.all(
MaterialStateProperty.all(Theme.of(context).hintColor), Theme.of(context).primaryColorLight),
backgroundColor: MaterialStateProperty.all( backgroundColor: MaterialStateProperty.all(
Theme.of(context).backgroundColor), Theme.of(context).backgroundColor),
), ),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment