Ahmed Fwela

Merge branch 'master' of git://github.com/jonataslaw/getx into fix-router-outlet

  1 +## [4.2.4]
  2 +- Fix Get.offAll removing GetxServices from memory
  3 +
1 ## [4.2.3] 4 ## [4.2.3]
2 - Fix back button on navigator 2 5 - Fix back button on navigator 2
3 - Added parameters and arguments to Get.rootDelegate 6 - Added parameters and arguments to Get.rootDelegate
@@ -473,6 +473,17 @@ class GetInstance { @@ -473,6 +473,17 @@ class GetInstance {
473 return; 473 return;
474 } 474 }
475 475
  476 + final i = builder.dependency;
  477 +
  478 + if (i is GetxServiceMixin && !force) {
  479 + return;
  480 + }
  481 +
  482 + if (i is GetLifeCycleBase) {
  483 + i.onDelete();
  484 + Get.log('"$newKey" onDelete() called');
  485 + }
  486 +
476 builder.dependency = null; 487 builder.dependency = null;
477 builder.isInit = false; 488 builder.isInit = false;
478 Get.log('Instance "$newKey" was restarted.'); 489 Get.log('Instance "$newKey" was restarted.');
1 name: get 1 name: get
2 description: Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX. 2 description: Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX.
3 -version: 4.2.3 3 +version: 4.2.4
4 homepage: https://github.com/jonataslaw/getx 4 homepage: https://github.com/jonataslaw/getx
5 5
6 environment: 6 environment:
@@ -114,6 +114,19 @@ void main() { @@ -114,6 +114,19 @@ void main() {
114 Get.reset(); 114 Get.reset();
115 }); 115 });
116 116
  117 + test('GetxService test', () async {
  118 + Get.lazyPut<PermanentService>(() => PermanentService());
  119 + var sv1 = Get.find<PermanentService>();
  120 + var sv2 = Get.find<PermanentService>();
  121 + expect(sv1, sv2);
  122 + expect(Get.isRegistered<PermanentService>(), true);
  123 + Get.delete<PermanentService>();
  124 + expect(Get.isRegistered<PermanentService>(), true);
  125 + Get.delete<PermanentService>(force: true);
  126 + expect(Get.isRegistered<PermanentService>(), false);
  127 + Get.reset();
  128 + });
  129 +
117 test('Get.lazyPut with abstract class test', () async { 130 test('Get.lazyPut with abstract class test', () async {
118 final api = Api(); 131 final api = Api();
119 Get.lazyPut<Service>(() => api); 132 Get.lazyPut<Service>(() => api);
@@ -157,6 +170,8 @@ void main() { @@ -157,6 +170,8 @@ void main() {
157 }); 170 });
158 } 171 }
159 172
  173 +class PermanentService extends GetxService {}
  174 +
160 class Controller extends DisposableController { 175 class Controller extends DisposableController {
161 int init = 0; 176 int init = 0;
162 int close = 0; 177 int close = 0;