Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 13-improve-app-metadata
  • master
  • Release_0.0.1_1
  • Release_0.0.2_2
  • Release_0.0.3_3
  • Release_0.0.4_4
  • Release_0.0.5_5
  • Release_0.0.6_6
  • Release_0.0.7_7
  • Release_0.0.8_8
  • Release_0.0.9_9
  • Release_0.1.0_10
  • Release_0.1.1_11
  • Release_0.2.0_12
  • Release_0.2.1_13
  • Release_0.3.0_14
  • Release_0.3.1_15
  • Release_0.3.2_16
  • Release_0.4.0_17
  • Release_0.5.0_18
  • Release_0.6.0_19
  • Release_0.7.0_20
  • Release_0.7.1_21
  • Release_0.7.2_22
  • Release_0.8.0_23
25 results

Target

Select target project
  • android/org.benoitharrault.stopmotion
1 result
Select Git revision
  • 13-improve-app-metadata
  • master
  • Release_0.0.1_1
  • Release_0.0.2_2
  • Release_0.0.3_3
  • Release_0.0.4_4
  • Release_0.0.5_5
  • Release_0.0.6_6
  • Release_0.0.7_7
  • Release_0.0.8_8
  • Release_0.0.9_9
  • Release_0.1.0_10
  • Release_0.1.1_11
  • Release_0.2.0_12
  • Release_0.2.1_13
  • Release_0.3.0_14
  • Release_0.3.1_15
  • Release_0.3.2_16
  • Release_0.4.0_17
  • Release_0.5.0_18
  • Release_0.6.0_19
  • Release_0.7.0_20
  • Release_0.7.1_21
  • Release_0.7.2_22
  • Release_0.8.0_23
25 results
Show changes
Showing
with 24 additions and 156 deletions
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/models/data/picture.dart'; import 'package:stopmotion/models/data/picture.dart';
import 'package:stopmotion/models/settings/settings_activity.dart'; import 'package:stopmotion/models/settings/settings_activity.dart';
import 'package:stopmotion/models/settings/settings_global.dart'; import 'package:stopmotion/models/settings/settings_global.dart';
import 'package:stopmotion/utils/tools.dart';
class Activity { class Activity {
Activity({ Activity({
......
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/default_activity_settings.dart'; import 'package:stopmotion/config/default_activity_settings.dart';
import 'package:stopmotion/utils/tools.dart';
class ActivitySettings { class ActivitySettings {
final String movieType; final String movieType;
......
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/default_global_settings.dart'; import 'package:stopmotion/config/default_global_settings.dart';
import 'package:stopmotion/utils/tools.dart';
class GlobalSettings { class GlobalSettings {
String skin; String skin;
......
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
class AppHeader extends StatelessWidget {
const AppHeader({super.key, required this.text});
final String text;
@override
Widget build(BuildContext context) {
return Text(
tr(text),
textAlign: TextAlign.start,
style: Theme.of(context).textTheme.headlineMedium!.apply(fontWeightDelta: 2),
);
}
}
class AppTitle extends StatelessWidget {
const AppTitle({super.key, required this.text});
final String text;
@override
Widget build(BuildContext context) {
return Text(
tr(text),
textAlign: TextAlign.start,
style: Theme.of(context).textTheme.titleLarge!.apply(fontWeightDelta: 2),
);
}
}
import 'package:flutter/material.dart';
import 'package:stopmotion/utils/color_extensions.dart';
class OutlinedText extends StatelessWidget {
const OutlinedText({
super.key,
required this.text,
required this.fontSize,
required this.textColor,
this.outlineColor,
});
final String text;
final double fontSize;
final Color textColor;
final Color? outlineColor;
@override
Widget build(BuildContext context) {
final double delta = fontSize / 30;
return Text(
text,
style: TextStyle(
inherit: true,
fontSize: fontSize,
fontWeight: FontWeight.w600,
color: textColor,
shadows: [
Shadow(
offset: Offset(-delta, -delta),
color: outlineColor ?? textColor.darken(),
),
Shadow(
offset: Offset(delta, -delta),
color: outlineColor ?? textColor.darken(),
),
Shadow(
offset: Offset(delta, delta),
color: outlineColor ?? textColor.darken(),
),
Shadow(
offset: Offset(-delta, delta),
color: outlineColor ?? textColor.darken(),
),
],
),
);
}
}
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/activity_page.dart'; import 'package:stopmotion/config/activity_page.dart';
import 'package:stopmotion/cubit/nav_cubit_pages.dart'; import 'package:stopmotion/cubit/nav_cubit_pages.dart';
...@@ -36,7 +35,7 @@ class BottomNavBar extends StatelessWidget { ...@@ -36,7 +35,7 @@ class BottomNavBar extends StatelessWidget {
return BottomNavigationBar( return BottomNavigationBar(
currentIndex: state, currentIndex: state,
onTap: (int index) => context.read<NavCubitPage>().updateIndex(index), onTap: (int index) => BlocProvider.of<NavCubitPage>(context).updateIndex(index),
type: BottomNavigationBarType.fixed, type: BottomNavigationBarType.fixed,
elevation: 0, elevation: 0,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/screen.dart'; import 'package:stopmotion/config/screen.dart';
import 'package:stopmotion/cubit/activity_cubit.dart'; import 'package:stopmotion/cubit/activity_cubit.dart';
import 'package:stopmotion/cubit/nav_cubit_screens.dart'; import 'package:stopmotion/cubit/nav_cubit_screens.dart';
import 'package:stopmotion/ui/helpers/app_titles.dart';
class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
const GlobalAppBar({super.key}); const GlobalAppBar({super.key});
...@@ -21,7 +20,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -21,7 +20,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// go to Settings page // go to Settings page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubitScreen>().goToSettingsPage(); BlocProvider.of<NavCubitScreen>(context).goToSettingsPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
...@@ -32,7 +31,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -32,7 +31,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// go to About page // go to About page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubitScreen>().goToAboutPage(); BlocProvider.of<NavCubitScreen>(context).goToAboutPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
...@@ -43,7 +42,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -43,7 +42,7 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// back to Home page // back to Home page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubitScreen>().goToActivityPage(); BlocProvider.of<NavCubitScreen>(context).goToActivityPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/cubit/activity_cubit.dart'; import 'package:stopmotion/cubit/activity_cubit.dart';
import 'package:stopmotion/ui/widgets/take_picture_widget.dart'; import 'package:stopmotion/ui/widgets/take_picture_widget.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/cubit/activity_cubit.dart'; import 'package:stopmotion/cubit/activity_cubit.dart';
import 'package:stopmotion/models/activity/activity.dart'; import 'package:stopmotion/models/activity/activity.dart';
import 'package:stopmotion/ui/helpers/outlined_text_widget.dart';
import 'package:stopmotion/utils/color_extensions.dart';
class PageHome extends StatelessWidget { class PageHome extends StatelessWidget {
const PageHome({super.key}); const PageHome({super.key});
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/cubit/activity_cubit.dart'; import 'package:stopmotion/cubit/activity_cubit.dart';
import 'package:stopmotion/models/activity/activity.dart'; import 'package:stopmotion/models/activity/activity.dart';
import 'package:stopmotion/ui/helpers/outlined_text_widget.dart';
import 'package:stopmotion/utils/color_extensions.dart';
class PagePlayer extends StatelessWidget { class PagePlayer extends StatelessWidget {
const PagePlayer({super.key}); const PagePlayer({super.key});
......
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/ui/helpers/app_titles.dart';
class ScreenAbout extends StatelessWidget { class ScreenAbout extends StatelessWidget {
const ScreenAbout({super.key}); const ScreenAbout({super.key});
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/activity_page.dart'; import 'package:stopmotion/config/activity_page.dart';
import 'package:stopmotion/cubit/nav_cubit_pages.dart'; import 'package:stopmotion/cubit/nav_cubit_pages.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/ui/settings/settings_form.dart'; import 'package:stopmotion/ui/settings/settings_form.dart';
import 'package:stopmotion/ui/helpers/app_titles.dart';
class ScreenSettings extends StatelessWidget { class ScreenSettings extends StatelessWidget {
const ScreenSettings({super.key}); const ScreenSettings({super.key});
......
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/ui/settings/theme_card.dart'; import 'package:stopmotion/ui/settings/theme_card.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/cubit/theme_cubit.dart'; import 'package:stopmotion/cubit/theme_cubit.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/config/screen.dart'; import 'package:stopmotion/config/screen.dart';
import 'package:stopmotion/cubit/nav_cubit_screens.dart'; import 'package:stopmotion/cubit/nav_cubit_screens.dart';
......
...@@ -2,10 +2,9 @@ import 'dart:io'; ...@@ -2,10 +2,9 @@ import 'dart:io';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/utils/picture_storage.dart'; import 'package:stopmotion/utils/picture_storage.dart';
import 'package:stopmotion/utils/tools.dart';
class TakePictureWidget extends StatefulWidget { class TakePictureWidget extends StatefulWidget {
const TakePictureWidget({super.key}); const TakePictureWidget({super.key});
......
import 'dart:ui';
extension ColorExtension on Color {
Color darken([int percent = 40]) {
assert(1 <= percent && percent <= 100);
final value = 1 - percent / 100;
return Color.fromARGB(
alpha,
(red * value).round(),
(green * value).round(),
(blue * value).round(),
);
}
Color lighten([int percent = 40]) {
assert(1 <= percent && percent <= 100);
final value = percent / 100;
return Color.fromARGB(
alpha,
(red + ((255 - red) * value)).round(),
(green + ((255 - green) * value)).round(),
(blue + ((255 - blue) * value)).round(),
);
}
Color avg(Color other) {
final red = (this.red + other.red) ~/ 2;
final green = (this.green + other.green) ~/ 2;
final blue = (this.blue + other.blue) ~/ 2;
final alpha = (this.alpha + other.alpha) ~/ 2;
return Color.fromARGB(alpha, red, green, blue);
}
}
import 'dart:io'; import 'dart:io';
import 'package:path/path.dart'; import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart'; import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:stopmotion/utils/tools.dart';
class PictureStorage { class PictureStorage {
Future<String> get _localPath async { Future<String> get _localPath async {
......
import 'package:flutter/foundation.dart';
void printlog(String message) {
if (!kReleaseMode) {
debugPrint(message);
}
}