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
Jonatas
2020-09-30 14:26:26 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6abe15eafdc017b381e22e0fc8ed80768e06e9c4
6abe15ea
1 parent
a37966d4
remove duplicate activity on example
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
34 deletions
getx/example/android/app/src/main/java/getx/demo/app/example/MainActivity.kt
packages/get_instance/lib/src/get_instance.dart
packages/get_instance/lib/src/utils/secure_operations.dart
getx/example/android/app/src/main/java/getx/demo/app/example/MainActivity.kt
deleted
100644 → 0
View file @
a37966d
package getx.demo.app.example
import io.flutter.embedding.android.FlutterActivity
class MainActivity : FlutterActivity() {
}
packages/get_instance/lib/src/get_instance.dart
View file @
6abe15e
...
...
@@ -4,6 +4,7 @@ import 'dart:collection';
import
'package:get_core/get_core.dart'
;
import
'lifecycle.dart'
;
import
'utils/secure_operations.dart'
;
class
GetInstance
{
factory
GetInstance
()
=>
_getInstance
??=
GetInstance
.
_
();
...
...
@@ -12,8 +13,6 @@ class GetInstance {
static
GetInstance
_getInstance
;
// static final config = Get();
/// Holds references to every registered Instance when using
/// [Get.put()]
static
final
Map
<
String
,
_InstanceBuilderFactory
>
_singl
=
{};
...
...
@@ -227,26 +226,26 @@ class GetInstance {
return
i
;
}
// S putOrFind<S>(S Function() dep, {String tag}) {
// final key = _getKey(S, tag);
S
putOrFind
<
S
>(
InstanceBuilderCallback
<
S
>
dep
,
{
String
tag
})
{
final
key
=
_getKey
(
S
,
tag
);
// if (_singl.containsKey(key)) {
// return _singl[key].getDependency() as S;
// } else {
// if (_factory.containsKey(key)) {
// S _value = put<S>((_factory[key].builder() as S), tag: tag);
if
(
_singl
.
containsKey
(
key
))
{
return
_singl
[
key
].
getDependency
()
as
S
;
}
else
{
if
(
_factory
.
containsKey
(
key
))
{
final
_value
=
put
<
S
>((
_factory
[
key
].
builder
()
as
S
),
tag:
tag
);
// if (Get.smartManagement != SmartManagement.keepFactory) {
// if (!_factory[key].fenix) {
// _factory.remove(key);
// }
// }
// return _value;
// }
if
(
Get
.
smartManagement
!=
SmartManagement
.
keepFactory
)
{
if
(!
_factory
[
key
].
fenix
)
{
_factory
.
remove
(
key
);
}
}
return
_value
;
}
// return GetInstance().put(dep(), tag: tag);
// }
// }
return
GetInstance
().
put
(
dep
(),
tag:
tag
);
}
}
/// Finds the registered type <[S]> (or [tag])
/// In case of using Get.[create] to register a type <[S]> or [tag],
...
...
@@ -307,15 +306,7 @@ class GetInstance {
return
true
;
}
// Future<bool> delete<S>({
// String tag,
// String key,
// bool force = false,
// }) async {
// final s = await queue
// .add<bool>(() async => dele<S>(tag: tag, key: key, force: force));
// return s;
// }
static
final
GetQueue
_queue
=
GetQueue
();
/// Delete registered Class Instance [S] (or [tag]) and, closes any open
/// controllers [DisposableInterface], cleans up the memory
...
...
@@ -334,6 +325,12 @@ class GetInstance {
/// the Instance. **don't use** it unless you know what you are doing.
/// - [force] Will delete an Instance even if marked as [permanent].
Future
<
bool
>
delete
<
S
>({
String
tag
,
String
key
,
bool
force
=
false
})
async
{
return
_queue
.
secure
<
bool
>(()
{
return
_delete
<
S
>(
tag:
tag
,
key:
key
,
force:
force
);
});
}
Future
<
bool
>
_delete
<
S
>({
String
tag
,
String
key
,
bool
force
=
false
})
async
{
final
newKey
=
key
??
_getKey
(
S
,
tag
);
if
(!
_singl
.
containsKey
(
newKey
))
{
...
...
packages/get_instance/lib/src/utils/secure_operations.dart
0 → 100644
View file @
6abe15e
import
'dart:async'
;
class
GetQueue
{
final
List
<
_Item
>
_queue
=
[];
bool
_active
=
false
;
void
_check
()
async
{
if
(!
_active
&&
_queue
.
isNotEmpty
)
{
_active
=
true
;
var
item
=
_queue
.
removeAt
(
0
);
try
{
item
.
completer
.
complete
(
await
item
.
job
());
}
on
Exception
catch
(
e
)
{
item
.
completer
.
completeError
(
e
);
}
_active
=
false
;
_check
();
}
}
Future
<
T
>
secure
<
T
>(
Function
job
)
{
var
completer
=
Completer
<
T
>();
_queue
.
add
(
_Item
<
T
>(
completer
,
job
));
_check
();
return
completer
.
future
;
}
}
class
_Item
<
T
>
{
final
Completer
<
T
>
completer
;
final
Function
job
;
_Item
(
this
.
completer
,
this
.
job
);
}
...
...
Please
register
or
login
to post a comment