Project lint checked and step added to config.yml

This commit is contained in:
2022-10-02 17:43:52 +01:00
parent e07e10079e
commit 8100f0b879
26 changed files with 71 additions and 63 deletions

View File

@@ -8,4 +8,5 @@ jobs:
- run: flutter doctor - run: flutter doctor
- run: flutter pub get - run: flutter pub get
- run: flutter pub run build_runner build - run: flutter pub run build_runner build
- run: flutter analyze lib
- run: flutter test - run: flutter test

2
.gitignore vendored
View File

@@ -33,7 +33,7 @@ migrate_working_dir/
.pub/ .pub/
/build/ /build/
*.g.dart *.g.dart
*.mock.dart *.mocks.dart
# Symbolication related # Symbolication related
app.*.symbols app.*.symbols

View File

@@ -1,6 +1,6 @@
import 'package:stacked/stacked.dart'; import 'package:stacked/stacked.dart';
import 'Utils/ViewState.dart'; import 'Utils/view_state.dart';
abstract class BaseViewmodel extends BaseViewModel{ abstract class BaseViewmodel extends BaseViewModel{

View File

@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
import 'package:stacked/stacked.dart'; import 'package:stacked/stacked.dart';
import 'package:toast/toast.dart'; import 'package:toast/toast.dart';
import 'BaseViewModel.dart'; import 'base_viewmodel.dart';
import 'Utils/Constants.dart'; import 'Utils/constants.dart';
import 'Utils/ViewState.dart'; import 'Utils/view_state.dart';
import 'Utils/ViewUtils.dart'; import 'Utils/view_utils.dart';
abstract class BaseStatelessWidget<T extends BaseViewmodel> abstract class BaseStatelessWidget<T extends BaseViewmodel>
extends StatelessWidget { extends StatelessWidget {
@@ -16,6 +16,7 @@ abstract class BaseStatelessWidget<T extends BaseViewmodel>
Widget displayWidget(BuildContext context, T model, Widget? child); Widget displayWidget(BuildContext context, T model, Widget? child);
@override @override
// ignore: avoid_renaming_method_parameters
Widget build(BuildContext parent) { Widget build(BuildContext parent) {
ToastContext().init(parent); ToastContext().init(parent);
return Scaffold( return Scaffold(

View File

@@ -1,3 +1,4 @@
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
class AppDio { class AppDio {

View File

@@ -1,11 +1,12 @@
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:retrofit/retrofit.dart'; import 'package:retrofit/retrofit.dart';
import '../model/Currency.dart'; import '../model/currency.dart';
import 'app_dio.dart'; import 'app_dio.dart';
part 'backupCurrencyApi.g.dart'; part 'backup_currency_api.g.dart';
@RestApi(baseUrl: "https://api.frankfurter.app/") @RestApi(baseUrl: "https://api.frankfurter.app/")
abstract class BackupCurrencyApi { abstract class BackupCurrencyApi {

View File

@@ -1,15 +1,16 @@
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:easy_cc_flutter/data/network/app_dio.dart'; import 'package:easy_cc_flutter/data/network/app_dio.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:retrofit/retrofit.dart'; import 'package:retrofit/retrofit.dart';
import '../model/Currency.dart'; import '../model/currency.dart';
part 'currencyApi.g.dart'; part 'currency_api.g.dart';
@RestApi(baseUrl: "https://free.currencyconverterapi.com/api/v3/") @RestApi(baseUrl: "https://free.currencyconverterapi.com/api/v3/")
abstract class CurrencyApi { abstract class CurrencyApi {
factory CurrencyApi(Dio dio) = _CurrencyApi; factory CurrencyApi(Dio dio, {String baseUrl}) = _CurrencyApi;
static const api = String.fromEnvironment('currencyApiKey'); static const api = String.fromEnvironment('currencyApiKey');
static CurrencyApi create() { static CurrencyApi create() {

View File

@@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:retrofit/retrofit.dart'; import 'package:retrofit/retrofit.dart';

View File

@@ -1,9 +1,9 @@
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'CurrencyPair.dart'; import 'currency_pair.dart';
const String CURRENCY_ONE = "conversion_one"; const String currencyOne = "conversion_one";
const String CURRENCY_TWO = "conversion_two"; const String currencyTwo = "conversion_two";
class PreferenceProvider { class PreferenceProvider {
late final SharedPreferences _prefs; late final SharedPreferences _prefs;
@@ -12,13 +12,13 @@ class PreferenceProvider {
} }
Future<void> saveConversionPair(String s1, String s2) async { Future<void> saveConversionPair(String s1, String s2) async {
await _prefs.setString(CURRENCY_ONE, s1); await _prefs.setString(currencyOne, s1);
await _prefs.setString(CURRENCY_TWO, s2); await _prefs.setString(currencyTwo, s2);
} }
CurrencyPair getConversionPair() { CurrencyPair getConversionPair() {
String? s1 = _prefs.getString(CURRENCY_ONE); String? s1 = _prefs.getString(currencyOne);
String? s2 = _prefs.getString(CURRENCY_TWO); String? s2 = _prefs.getString(currencyTwo);
return CurrencyPair(s1, s2); return CurrencyPair(s1, s2);
} }

View File

@@ -1,5 +1,5 @@
import '../model/Currency.dart'; import '../model/currency.dart';
import '../prefs/CurrencyPair.dart'; import '../prefs/currency_pair.dart';
abstract class Repository { abstract class Repository {
CurrencyPair getConversionPair(); CurrencyPair getConversionPair();

View File

@@ -1,16 +1,16 @@
import 'dart:io'; import 'dart:io';
import 'package:easy_cc_flutter/Utils/currencyUtils.dart'; import 'package:easy_cc_flutter/Utils/currency_utils.dart';
import 'package:easy_cc_flutter/data/model/Currency.dart'; import 'package:easy_cc_flutter/data/model/currency.dart';
import 'package:easy_cc_flutter/data/prefs/CurrencyPair.dart'; import 'package:easy_cc_flutter/data/prefs/currency_pair.dart';
import 'package:easy_cc_flutter/data/prefs/PreferenceProvider.dart';
import '../../locator.dart'; import '../../locator.dart';
import '../../main.dart'; import '../../main.dart';
import '../network/backupCurrencyApi.dart'; import '../network/backup_currency_api.dart';
import '../network/currencyApi.dart'; import '../network/currency_api.dart';
import '../network/safeApiCall.dart'; import '../network/safe_api_call.dart';
import 'Repository.dart'; import '../prefs/preference_provider.dart';
import 'repository.dart';
class RepositoryImpl extends Repository with SafeApiCall { class RepositoryImpl extends Repository with SafeApiCall {
final PreferenceProvider _prefs = locator<PreferenceProvider>(); final PreferenceProvider _prefs = locator<PreferenceProvider>();

View File

@@ -1,14 +1,16 @@
import 'package:easy_cc_flutter/MainViewModel.dart'; import 'package:easy_cc_flutter/main_view_model.dart';
import 'package:easy_cc_flutter/Utils/SelectionType.dart'; import 'package:easy_cc_flutter/Utils/selection_type.dart';
import 'package:easy_cc_flutter/views/DropDownBox.dart'; import 'package:easy_cc_flutter/views/drop_down_box.dart';
import 'package:easy_cc_flutter/views/EditText.dart'; import 'package:easy_cc_flutter/views/converter_edit_text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'BaseStatelessWidget.dart'; import 'base_widget.dart';
import 'Utils/Constants.dart'; import 'Utils/constants.dart';
class HomePage extends BaseStatelessWidget<MainViewModel> { class HomePage extends BaseStatelessWidget<MainViewModel> {
const HomePage({super.key});
@override @override
MainViewModel createViewModel() { MainViewModel createViewModel() {
return MainViewModel(); return MainViewModel();

View File

@@ -1,11 +1,10 @@
import 'package:dio/dio.dart'; import 'package:easy_cc_flutter/main_view_model.dart';
import 'package:easy_cc_flutter/MainViewModel.dart'; import 'package:easy_cc_flutter/data/network/backup_currency_api.dart';
import 'package:easy_cc_flutter/data/network/backupCurrencyApi.dart'; import 'package:easy_cc_flutter/data/network/currency_api.dart';
import 'package:easy_cc_flutter/data/network/currencyApi.dart'; import 'package:easy_cc_flutter/data/repository/repository_impl.dart';
import 'package:easy_cc_flutter/data/repository/RepositoryImpl.dart';
import 'package:get_it/get_it.dart'; import 'package:get_it/get_it.dart';
import 'data/prefs/PreferenceProvider.dart'; import 'data/prefs/preference_provider.dart';
GetIt locator = GetIt.instance; GetIt locator = GetIt.instance;

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
import 'Home.dart'; import 'data/prefs/preference_provider.dart';
import 'data/prefs/PreferenceProvider.dart'; import 'home.dart';
import 'locator.dart'; import 'locator.dart';
var logger = Logger( var logger = Logger(
@@ -36,7 +36,7 @@ class MyApp extends StatelessWidget {
// is not restarted. // is not restarted.
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
), ),
home: HomePage(), home: const HomePage(),
); );
} }
} }

View File

@@ -1,10 +1,10 @@
import 'package:easy_cc_flutter/BaseViewModel.dart'; import 'package:easy_cc_flutter/base_viewmodel.dart';
import 'package:easy_cc_flutter/Utils/SelectionType.dart'; import 'package:easy_cc_flutter/Utils/selection_type.dart';
import 'Utils/Constants.dart'; import 'Utils/constants.dart';
import 'data/prefs/CurrencyPair.dart'; import 'data/prefs/currency_pair.dart';
import 'data/repository/Repository.dart'; import 'data/repository/repository.dart';
import 'data/repository/RepositoryImpl.dart'; import 'data/repository/repository_impl.dart';
import 'locator.dart'; import 'locator.dart';
class MainViewModel extends BaseViewmodel { class MainViewModel extends BaseViewmodel {

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import '../Utils/Constants.dart'; import '../Utils/constants.dart';
class ConverterEditText extends StatelessWidget { class ConverterEditText extends StatelessWidget {
final String _hintText; final String _hintText;

View File

@@ -1,7 +1,7 @@
import 'package:dropdown_search/dropdown_search.dart'; import 'package:dropdown_search/dropdown_search.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../Utils/Constants.dart'; import '../Utils/constants.dart';
class DropDownBox extends StatelessWidget { class DropDownBox extends StatelessWidget {
final List<String> _selection; final List<String> _selection;

View File

@@ -1,12 +1,13 @@
import 'dart:io'; import 'dart:io';
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:easy_cc_flutter/data/model/Currency.dart'; import 'package:easy_cc_flutter/data/model/currency.dart';
import 'package:easy_cc_flutter/data/network/backupCurrencyApi.dart'; import 'package:easy_cc_flutter/data/network/backup_currency_api.dart';
import 'package:easy_cc_flutter/data/network/currencyApi.dart'; import 'package:easy_cc_flutter/data/network/currency_api.dart';
import 'package:easy_cc_flutter/data/prefs/CurrencyPair.dart'; import 'package:easy_cc_flutter/data/prefs/currency_pair.dart';
import 'package:easy_cc_flutter/data/prefs/PreferenceProvider.dart'; import 'package:easy_cc_flutter/data/prefs/preference_provider.dart';
import 'package:easy_cc_flutter/data/repository/RepositoryImpl.dart'; import 'package:easy_cc_flutter/data/repository/repository_impl.dart';
import 'package:easy_cc_flutter/locator.dart'; import 'package:easy_cc_flutter/locator.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart'; import 'package:mockito/annotations.dart';

View File

@@ -1,15 +1,15 @@
import 'dart:io'; import 'dart:io';
import 'package:easy_cc_flutter/MainViewModel.dart'; import 'package:easy_cc_flutter/main_view_model.dart';
import 'package:easy_cc_flutter/Utils/SelectionType.dart'; import 'package:easy_cc_flutter/Utils/selection_type.dart';
import 'package:easy_cc_flutter/data/model/Currency.dart'; import 'package:easy_cc_flutter/data/model/currency.dart';
import 'package:easy_cc_flutter/data/prefs/CurrencyPair.dart'; import 'package:easy_cc_flutter/data/prefs/currency_pair.dart';
import 'package:easy_cc_flutter/data/repository/RepositoryImpl.dart'; import 'package:easy_cc_flutter/data/repository/repository_impl.dart';
import 'package:easy_cc_flutter/locator.dart'; import 'package:easy_cc_flutter/locator.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/annotations.dart'; import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart'; import 'package:mockito/mockito.dart';
import 'package:easy_cc_flutter/Utils/ViewState.dart'; import 'package:easy_cc_flutter/Utils/view_state.dart';
import 'viewmodel_test.mocks.dart'; import 'viewmodel_test.mocks.dart';