Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
fluttertpc_get
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Gabriel Rohden
2020-09-08 13:53:21 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a834a816aadd2088155895f6687ca1d0b91f2da4
a834a816
1 parent
16f24ea6
fix: Fix new lint issues
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
42 additions
and
25 deletions
example/lib/main.dart
example/lib/pages/home/bindings/home_binding.dart
example/lib/pages/home/data/home_repository.dart
example/lib/pages/home/domain/adapters/repository_adapter.dart
example/lib/pages/home/presentation/controllers/home_controller.dart
example/lib/pages/home/presentation/views/country_view.dart
example/lib/pages/home/presentation/views/details_view.dart
example/lib/pages/home/presentation/views/home_view.dart
example/lib/routes/app_pages.dart
example/lib/shared/logger/logger_utils.dart
example/test/test.dart
lib/src/state_manager/rx/rx_core/rx_impl.dart
example/lib/main.dart
View file @
a834a81
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get_demo/routes/app_pages.dart'
;
import
'routes/app_pages.dart'
;
import
'shared/logger/logger_utils.dart'
;
void
main
(
)
{
...
...
example/lib/pages/home/bindings/home_binding.dart
View file @
a834a81
import
'package:dio/dio.dart'
;
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/domain/adapters/repository_adapter.dart'
;
import
'package:get_demo/pages/home/presentation/controllers/home_controller.dart'
;
import
'../data/home_repository.dart'
;
import
'../domain/adapters/repository_adapter.dart'
;
import
'../presentation/controllers/home_controller.dart'
;
class
HomeBinding
extends
Bindings
{
@override
...
...
example/lib/pages/home/data/home_repository.dart
View file @
a834a81
import
'package:dio/dio.dart'
;
import
'package:get_demo/pages/home/domain/adapters/repository_adapter.dart'
;
import
'package:get_demo/pages/home/domain/entity/cases_model.dart'
;
import
'../domain/adapters/repository_adapter.dart'
;
import
'../domain/entity/cases_model.dart'
;
class
HomeRepository
implements
IHomeRepository
{
HomeRepository
({
this
.
dio
});
...
...
@@ -13,7 +14,7 @@ class HomeRepository implements IHomeRepository {
final
response
=
await
dio
.
get
(
"https://api.covid19api.com/summary"
);
return
CasesModel
.
fromJson
(
response
.
data
as
Map
<
String
,
dynamic
>);
}
catch
(
e
)
{
}
on
Exception
catch
(
e
)
{
print
(
e
.
toString
());
return
Future
.
error
(
e
.
toString
());
}
...
...
example/lib/pages/home/domain/adapters/repository_adapter.dart
View file @
a834a81
import
'
package:get_demo/pages/home/domain
/entity/cases_model.dart'
;
import
'
..
/entity/cases_model.dart'
;
// ignore: one_member_abstracts
abstract
class
IHomeRepository
{
Future
<
CasesModel
>
getCases
();
}
...
...
example/lib/pages/home/presentation/controllers/home_controller.dart
View file @
a834a81
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/domain/adapters/repository_adapter.dart'
;
import
'package:get_demo/pages/home/domain/entity/cases_model.dart'
;
import
'../../domain/adapters/repository_adapter.dart'
;
import
'../../domain/entity/cases_model.dart'
;
enum
Status
{
loading
,
success
,
error
}
...
...
@@ -22,14 +23,16 @@ class HomeController extends GetxController {
/// fetch cases from Api
Future
<
void
>
fetchDataFromApi
()
async
{
/// When the repository returns the value, change the status to success, and fill in "cases"
/// When the repository returns the value, change the status to success,
/// and fill in "cases"
return
homeRepository
.
getCases
().
then
(
(
data
)
{
cases
(
data
);
status
(
Status
.
success
);
},
/// In case of error, print the error and change the status to Status.error
/// In case of error, print the error and change the status
/// to Status.error
onError:
(
err
)
{
print
(
"
$err
"
);
return
status
(
Status
.
error
);
...
...
example/lib/pages/home/presentation/views/country_view.dart
View file @
a834a81
import
'dart:ui'
;
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/domain/entity/cases_model.dart'
;
import
'../controllers/home_controller.dart'
;
class
CountryView
extends
GetWidget
<
HomeController
>
{
...
...
@@ -30,7 +31,7 @@ class CountryView extends GetWidget<HomeController> {
child:
ListView
.
builder
(
itemCount:
controller
.
cases
.
value
.
countries
.
length
,
itemBuilder:
(
context
,
index
)
{
Country
country
=
controller
.
cases
.
value
.
countries
[
index
];
final
country
=
controller
.
cases
.
value
.
countries
[
index
];
return
ListTile
(
onTap:
()
{
Get
.
toNamed
(
'/details'
,
arguments:
country
);
...
...
example/lib/pages/home/presentation/views/details_view.dart
View file @
a834a81
...
...
@@ -2,12 +2,13 @@ import 'dart:ui';
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/domain/entity/cases_model.dart'
;
import
'../../domain/entity/cases_model.dart'
;
class
DetailsView
extends
StatelessWidget
{
@override
Widget
build
(
BuildContext
context
)
{
Country
country
=
Get
.
arguments
as
Country
;
final
country
=
Get
.
arguments
as
Country
;
return
Container
(
decoration:
BoxDecoration
(
image:
DecorationImage
(
...
...
example/lib/pages/home/presentation/views/home_view.dart
View file @
a834a81
...
...
@@ -2,7 +2,8 @@ import 'dart:ui';
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/presentation/controllers/home_controller.dart'
;
import
'../controllers/home_controller.dart'
;
class
HomeView
extends
GetView
<
HomeController
>
{
@override
...
...
@@ -28,7 +29,7 @@ class HomeView extends GetView<HomeController> {
body:
Center
(
child:
Obx
(
()
{
Status
status
=
controller
.
status
.
value
;
final
status
=
controller
.
status
.
value
;
if
(
status
==
Status
.
loading
)
return
CircularProgressIndicator
();
if
(
status
==
Status
.
error
)
return
Text
(
'Error on connection :('
);
return
Column
(
...
...
example/lib/routes/app_pages.dart
View file @
a834a81
import
'package:get/get.dart'
;
import
'package:get_demo/pages/home/bindings/home_binding.dart'
;
import
'package:get_demo/pages/home/presentation/views/country_view.dart'
;
import
'package:get_demo/pages/home/presentation/views/details_view.dart'
;
import
'package:get_demo/pages/home/presentation/views/home_view.dart'
;
import
'../pages/home/bindings/home_binding.dart'
;
import
'../pages/home/presentation/views/country_view.dart'
;
import
'../pages/home/presentation/views/details_view.dart'
;
import
'../pages/home/presentation/views/home_view.dart'
;
part
'app_routes.dart'
;
// ignore: avoid_classes_with_only_static_members
class
AppPages
{
static
const
INITIAL
=
Routes
.
HOME
;
...
...
example/lib/shared/logger/logger_utils.dart
View file @
a834a81
class
Logger
{
// Sample of abstract logging function
static
void
write
(
String
text
,
{
bool
isError
=
false
})
{
print
(
'**
'
+
text
+
' ['
+
isError
.
toString
()
+
'
]'
);
print
(
'**
$text
[
$isError
]'
);
}
}
...
...
example/test/test.dart
View file @
a834a81
...
...
@@ -49,7 +49,7 @@ void main() {
binding
.
builder
();
/// recover your controller
HomeController
controller
=
Get
.
find
();
final
controller
=
Get
.
find
<
HomeController
>
();
/// check if onInit was called
expect
(
controller
.
initialized
,
true
);
...
...
lib/src/state_manager/rx/rx_core/rx_impl.dart
View file @
a834a81
...
...
@@ -4,7 +4,8 @@ import 'dart:collection';
import
'../rx_core/rx_interface.dart'
;
/// global object that registers against `GetX` and `Obx`, and allows the reactivity
/// global object that registers against `GetX` and `Obx`, and allows the
/// reactivity
/// of those `Widgets` and Rx values.
RxInterface
getObs
;
...
...
@@ -207,6 +208,9 @@ class RxBool extends _RxImpl<bool> {
/// Toggles the bool [value] between false and true.
/// A shortcut for `flag.value = !flag.value;`
/// FIXME: why return this? fluent interface is not
/// not really a dart thing since we have '..' operator
// ignore: avoid_returning_this
RxBool
toggle
()
{
subject
.
add
(
_value
=
!
_value
);
return
this
;
...
...
@@ -295,7 +299,8 @@ class RxInt extends _BaseRxNum<int> {
}
/// Foundation class used for custom `Types` outside the common native Dart types.
/// Foundation class used for custom `Types` outside the common native Dart
/// types.
/// For example, any custom "Model" class, like User().obs will use `Rx` as
/// wrapper.
class
Rx
<
T
>
extends
_RxImpl
<
T
>
{
...
...
Please
register
or
login
to post a comment