Browse Source

LuPromise refractor; tests

tags/v1.0.0
Robin Thoni 7 years ago
parent
commit
4f9720367a
21 changed files with 384 additions and 137 deletions
  1. 5
    3
      app/src/main/java/com/rthoni/stssaguenay/business/RoutesBusiness.java
  2. 5
    3
      app/src/main/java/com/rthoni/stssaguenay/business/StopsBusiness.java
  3. 2
    1
      app/src/main/java/com/rthoni/stssaguenay/dataaccess/RoutesDataAccess.java
  4. 2
    1
      app/src/main/java/com/rthoni/stssaguenay/dataaccess/SchedulesDataAccess.java
  5. 2
    1
      app/src/main/java/com/rthoni/stssaguenay/dataaccess/StopsDataAccess.java
  6. 3
    2
      app/src/main/java/com/rthoni/stssaguenay/dataaccess/UsersSettingsDataAccess.java
  7. 11
    9
      app/src/main/java/com/rthoni/stssaguenay/ui/activities/MainActivity.java
  8. 3
    2
      app/src/main/java/com/rthoni/stssaguenay/ui/activities/StopPickerActivity.java
  9. 7
    5
      app/src/main/java/com/rthoni/stssaguenay/ui/fragments/HomeFragment.java
  10. 7
    5
      app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopListPickerFragment.java
  11. 7
    5
      app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopMapPickerFragment.java
  12. 7
    5
      app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopRoutesPickerFragment.java
  13. 8
    6
      app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopViewerFragment.java
  14. 9
    0
      luticateutils/src/main/java/com/luticate/utils/business/LuConsumer.java
  15. 9
    0
      luticateutils/src/main/java/com/luticate/utils/business/LuConverter.java
  16. 55
    76
      luticateutils/src/main/java/com/luticate/utils/business/LuPromise.java
  17. 8
    7
      luticateutils/src/main/java/com/luticate/utils/dataaccess/LuRequest.java
  18. 44
    0
      luticateutils/src/main/java/com/luticate/utils/dbo/LuPromiseError.java
  19. 6
    4
      luticateutils/src/main/java/com/luticate/utils/ui/fragments/AbstractPaginationFragment.java
  20. 3
    2
      luticateutils/src/main/java/com/luticate/utils/ui/views/AbstractPaginationView.java
  21. 181
    0
      luticateutils/src/test/java/com/luticate/utils/PromiseTest.java

+ 5
- 3
app/src/main/java/com/rthoni/stssaguenay/business/RoutesBusiness.java View File

1
 package com.rthoni.stssaguenay.business;
1
 package com.rthoni.stssaguenay.business;
2
 
2
 
3
+import com.luticate.utils.business.LuConsumer;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
5
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
6
+import com.luticate.utils.dbo.LuPromiseError;
5
 import com.rthoni.stssaguenay.dataaccess.RoutesDataAccess;
7
 import com.rthoni.stssaguenay.dataaccess.RoutesDataAccess;
6
 import com.rthoni.stssaguenay.dbo.RoutesDbo;
8
 import com.rthoni.stssaguenay.dbo.RoutesDbo;
7
 
9
 
20
     {
22
     {
21
         final LuPromise<List<RoutesDbo>> promise = new LuPromise<>();
23
         final LuPromise<List<RoutesDbo>> promise = new LuPromise<>();
22
         if (_routesDbos == null) {
24
         if (_routesDbos == null) {
23
-            RoutesDataAccess.getAll(config).then(new LuPromise.LuConsumer<List<RoutesDbo>>() {
25
+            RoutesDataAccess.getAll(config).then(new LuConsumer<List<RoutesDbo>>() {
24
                 @Override
26
                 @Override
25
                 public void execute(List<RoutesDbo> data) {
27
                 public void execute(List<RoutesDbo> data) {
26
                     _routesDbos = data;
28
                     _routesDbos = data;
27
                     promise.resolve(data);
29
                     promise.resolve(data);
28
                 }
30
                 }
29
-            }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
31
+            }, new LuConsumer<LuPromiseError>() {
30
                 @Override
32
                 @Override
31
-                public void execute(LuPromise.LuPromiseError data) {
33
+                public void execute(LuPromiseError data) {
32
                     promise.reject(data);
34
                     promise.reject(data);
33
                 }
35
                 }
34
             });
36
             });

+ 5
- 3
app/src/main/java/com/rthoni/stssaguenay/business/StopsBusiness.java View File

1
 package com.rthoni.stssaguenay.business;
1
 package com.rthoni.stssaguenay.business;
2
 
2
 
3
+import com.luticate.utils.business.LuConsumer;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
5
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
6
+import com.luticate.utils.dbo.LuPromiseError;
5
 import com.rthoni.stssaguenay.dataaccess.StopsDataAccess;
7
 import com.rthoni.stssaguenay.dataaccess.StopsDataAccess;
6
 import com.rthoni.stssaguenay.dbo.StopsDbo;
8
 import com.rthoni.stssaguenay.dbo.StopsDbo;
7
 
9
 
18
     {
20
     {
19
         final LuPromise<List<StopsDbo>> promise = new LuPromise<>();
21
         final LuPromise<List<StopsDbo>> promise = new LuPromise<>();
20
         if (_stopsDbos == null) {
22
         if (_stopsDbos == null) {
21
-            StopsDataAccess.getAll(config).then(new LuPromise.LuConsumer<List<StopsDbo>>() {
23
+            StopsDataAccess.getAll(config).then(new LuConsumer<List<StopsDbo>>() {
22
                 @Override
24
                 @Override
23
                 public void execute(List<StopsDbo> data) {
25
                 public void execute(List<StopsDbo> data) {
24
                     _stopsDbos = data;
26
                     _stopsDbos = data;
25
                     promise.resolve(data);
27
                     promise.resolve(data);
26
                 }
28
                 }
27
-            }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
29
+            }, new LuConsumer<LuPromiseError>() {
28
                 @Override
30
                 @Override
29
-                public void execute(LuPromise.LuPromiseError data) {
31
+                public void execute(LuPromiseError data) {
30
                     promise.reject(data);
32
                     promise.reject(data);
31
                 }
33
                 }
32
             });
34
             });

+ 2
- 1
app/src/main/java/com/rthoni/stssaguenay/dataaccess/RoutesDataAccess.java View File

1
 package com.rthoni.stssaguenay.dataaccess;
1
 package com.rthoni.stssaguenay.dataaccess;
2
 
2
 
3
+import com.luticate.utils.business.LuConverter;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
6
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
16
     public static LuPromise<List<RoutesDbo>> getAll(LuDataAccessConfigDbo config)
17
     public static LuPromise<List<RoutesDbo>> getAll(LuDataAccessConfigDbo config)
17
     {
18
     {
18
         return get(config, RoutesDbo.PaginatedRoutesDbo.class, "routes")
19
         return get(config, RoutesDbo.PaginatedRoutesDbo.class, "routes")
19
-                .map(new LuPromise.LuConverter<RoutesDbo.PaginatedRoutesDbo, List<RoutesDbo>>() {
20
+                .map(new LuConverter<RoutesDbo.PaginatedRoutesDbo, List<RoutesDbo>>() {
20
                     @Override
21
                     @Override
21
                     public List<RoutesDbo> convert(RoutesDbo.PaginatedRoutesDbo data) {
22
                     public List<RoutesDbo> convert(RoutesDbo.PaginatedRoutesDbo data) {
22
                         return data.getData();
23
                         return data.getData();

+ 2
- 1
app/src/main/java/com/rthoni/stssaguenay/dataaccess/SchedulesDataAccess.java View File

1
 package com.rthoni.stssaguenay.dataaccess;
1
 package com.rthoni.stssaguenay.dataaccess;
2
 
2
 
3
+import com.luticate.utils.business.LuConverter;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
6
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
43
         }
44
         }
44
         map.put("stops", stops.toString());
45
         map.put("stops", stops.toString());
45
 
46
 
46
-        return post(config, SchedulesDbo.SchedulesDboArray.class, "schedules/multiple", map).map(new LuPromise.LuConverter<SchedulesDbo.SchedulesDboArray, List<SchedulesDbo>>() {
47
+        return post(config, SchedulesDbo.SchedulesDboArray.class, "schedules/multiple", map).map(new LuConverter<SchedulesDbo.SchedulesDboArray, List<SchedulesDbo>>() {
47
             @Override
48
             @Override
48
             public List<SchedulesDbo> convert(SchedulesDbo.SchedulesDboArray data) {
49
             public List<SchedulesDbo> convert(SchedulesDbo.SchedulesDboArray data) {
49
                 return data.getData();
50
                 return data.getData();

+ 2
- 1
app/src/main/java/com/rthoni/stssaguenay/dataaccess/StopsDataAccess.java View File

1
 package com.rthoni.stssaguenay.dataaccess;
1
 package com.rthoni.stssaguenay.dataaccess;
2
 
2
 
3
+import com.luticate.utils.business.LuConverter;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
6
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
15
     public static LuPromise<List<StopsDbo>> getAll(LuDataAccessConfigDbo config)
16
     public static LuPromise<List<StopsDbo>> getAll(LuDataAccessConfigDbo config)
16
     {
17
     {
17
         return get(config, StopsDbo.PaginatedStopsDbo.class, "stops")
18
         return get(config, StopsDbo.PaginatedStopsDbo.class, "stops")
18
-        .map(new LuPromise.LuConverter<StopsDbo.PaginatedStopsDbo, List<StopsDbo>>() {
19
+        .map(new LuConverter<StopsDbo.PaginatedStopsDbo, List<StopsDbo>>() {
19
             @Override
20
             @Override
20
             public List<StopsDbo> convert(StopsDbo.PaginatedStopsDbo data) {
21
             public List<StopsDbo> convert(StopsDbo.PaginatedStopsDbo data) {
21
                 return data.getData();
22
                 return data.getData();

+ 3
- 2
app/src/main/java/com/rthoni/stssaguenay/dataaccess/UsersSettingsDataAccess.java View File

1
 package com.rthoni.stssaguenay.dataaccess;
1
 package com.rthoni.stssaguenay.dataaccess;
2
 
2
 
3
+import com.luticate.utils.business.LuConverter;
3
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.business.LuPromise;
4
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dataaccess.LuDataAccess;
5
 import com.luticate.utils.dbo.LuBoolDbo;
6
 import com.luticate.utils.dbo.LuBoolDbo;
39
         HashMap<String, String> map = new HashMap<>();
40
         HashMap<String, String> map = new HashMap<>();
40
         map.put("id", JSONObject.quote(id));
41
         map.put("id", JSONObject.quote(id));
41
         return get(config, LuStringDbo.class, "users/settings", map)
42
         return get(config, LuStringDbo.class, "users/settings", map)
42
-                .map(new LuPromise.LuConverter<LuStringDbo, String>() {
43
+                .map(new LuConverter<LuStringDbo, String>() {
43
                     @Override
44
                     @Override
44
                     public String convert(LuStringDbo data) {
45
                     public String convert(LuStringDbo data) {
45
                         return data.getString();
46
                         return data.getString();
53
         map.put("id", JSONObject.quote(id));
54
         map.put("id", JSONObject.quote(id));
54
         map.put("settings", JSONObject.quote(data));
55
         map.put("settings", JSONObject.quote(data));
55
         return post(config, LuBoolDbo.class, "users/settings", map)
56
         return post(config, LuBoolDbo.class, "users/settings", map)
56
-                .map(new LuPromise.LuConverter<LuBoolDbo, LuVoidDbo>() {
57
+                .map(new LuConverter<LuBoolDbo, LuVoidDbo>() {
57
                     @Override
58
                     @Override
58
                     public LuVoidDbo convert(LuBoolDbo data) {
59
                     public LuVoidDbo convert(LuBoolDbo data) {
59
                         return new LuVoidDbo();
60
                         return new LuVoidDbo();

+ 11
- 9
app/src/main/java/com/rthoni/stssaguenay/ui/activities/MainActivity.java View File

35
 import com.google.android.gms.ads.AdRequest;
35
 import com.google.android.gms.ads.AdRequest;
36
 import com.google.android.gms.ads.AdView;
36
 import com.google.android.gms.ads.AdView;
37
 import com.google.android.gms.ads.MobileAds;
37
 import com.google.android.gms.ads.MobileAds;
38
+import com.luticate.utils.business.LuConsumer;
38
 import com.luticate.utils.business.LuPromise;
39
 import com.luticate.utils.business.LuPromise;
39
 import com.luticate.utils.dataaccess.LuRequest;
40
 import com.luticate.utils.dataaccess.LuRequest;
41
+import com.luticate.utils.dbo.LuPromiseError;
40
 import com.luticate.utils.dbo.LuVoidDbo;
42
 import com.luticate.utils.dbo.LuVoidDbo;
41
 import com.rthoni.stssaguenay.R;
43
 import com.rthoni.stssaguenay.R;
42
 import com.rthoni.stssaguenay.business.STSBusiness;
44
 import com.rthoni.stssaguenay.business.STSBusiness;
214
     {
216
     {
215
         _fab.setVisibility(View.VISIBLE);
217
         _fab.setVisibility(View.VISIBLE);
216
         HomeFragment f = new HomeFragment();
218
         HomeFragment f = new HomeFragment();
217
-        f.setOnFavouriteStopClicked(new LuPromise.LuConsumer<UserFavouriteStopsDbo>() {
219
+        f.setOnFavouriteStopClicked(new LuConsumer<UserFavouriteStopsDbo>() {
218
             @Override
220
             @Override
219
             public void execute(UserFavouriteStopsDbo data) {
221
             public void execute(UserFavouriteStopsDbo data) {
220
                 goToStop(data.getStop());
222
                 goToStop(data.getStop());
398
 
400
 
399
         UserDbo user = STSBusiness.getLoggedUser(MainActivity.this);
401
         UserDbo user = STSBusiness.getLoggedUser(MainActivity.this);
400
         UsersSettingsBusiness.get(STSBusiness.getConfig(this), user.getId())
402
         UsersSettingsBusiness.get(STSBusiness.getConfig(this), user.getId())
401
-                .then(new LuPromise.LuConsumer<String>() {
403
+                .then(new LuConsumer<String>() {
402
                     @Override
404
                     @Override
403
                     public void execute(final String data) {
405
                     public void execute(final String data) {
404
                         progressDialog.dismiss();
406
                         progressDialog.dismiss();
406
                             Toast.makeText(MainActivity.this, R.string.encryption_empty, Toast.LENGTH_LONG).show();
408
                             Toast.makeText(MainActivity.this, R.string.encryption_empty, Toast.LENGTH_LONG).show();
407
                             return;
409
                             return;
408
                         }
410
                         }
409
-                        askPassword(false).then(new LuPromise.LuConsumer<String>() {
411
+                        askPassword(false).then(new LuConsumer<String>() {
410
                             @Override
412
                             @Override
411
                             public void execute(String password) {
413
                             public void execute(String password) {
412
                                 UsersSettingsDbo settingsDbo = UsersSettingsBusiness.decryptSettings(data, password);
414
                                 UsersSettingsDbo settingsDbo = UsersSettingsBusiness.decryptSettings(data, password);
421
                             }
423
                             }
422
                         });
424
                         });
423
                     }
425
                     }
424
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
426
+                }, new LuConsumer<LuPromiseError>() {
425
                     @Override
427
                     @Override
426
-                    public void execute(LuPromise.LuPromiseError data) {
428
+                    public void execute(LuPromiseError data) {
427
                         progressDialog.dismiss();
429
                         progressDialog.dismiss();
428
                         Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();
430
                         Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();
429
                     }
431
                     }
432
 
434
 
433
     public void backupSettings()
435
     public void backupSettings()
434
     {
436
     {
435
-        askPassword(true).then(new LuPromise.LuConsumer<String>() {
437
+        askPassword(true).then(new LuConsumer<String>() {
436
             @Override
438
             @Override
437
             public void execute(String password) {
439
             public void execute(String password) {
438
                 UserDbo user = STSBusiness.getLoggedUser(MainActivity.this);
440
                 UserDbo user = STSBusiness.getLoggedUser(MainActivity.this);
445
                 progressDialog.setTitle(R.string.loading);
447
                 progressDialog.setTitle(R.string.loading);
446
                 progressDialog.setMessage(getString(R.string.settings_backing_up));
448
                 progressDialog.setMessage(getString(R.string.settings_backing_up));
447
                 UsersSettingsBusiness.put(STSBusiness.getConfig(MainActivity.this), data, user.getId())
449
                 UsersSettingsBusiness.put(STSBusiness.getConfig(MainActivity.this), data, user.getId())
448
-                        .then(new LuPromise.LuConsumer<LuVoidDbo>() {
450
+                        .then(new LuConsumer<LuVoidDbo>() {
449
                             @Override
451
                             @Override
450
                             public void execute(LuVoidDbo data) {
452
                             public void execute(LuVoidDbo data) {
451
                                 progressDialog.dismiss();
453
                                 progressDialog.dismiss();
452
                                 Toast.makeText(MainActivity.this, R.string.settings_backed_up, Toast.LENGTH_LONG).show();
454
                                 Toast.makeText(MainActivity.this, R.string.settings_backed_up, Toast.LENGTH_LONG).show();
453
                             }
455
                             }
454
-                        }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
456
+                        }, new LuConsumer<LuPromiseError>() {
455
                             @Override
457
                             @Override
456
-                            public void execute(LuPromise.LuPromiseError data) {
458
+                            public void execute(LuPromiseError data) {
457
                                 progressDialog.dismiss();
459
                                 progressDialog.dismiss();
458
                                 Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();
460
                                 Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();
459
                             }
461
                             }

+ 3
- 2
app/src/main/java/com/rthoni/stssaguenay/ui/activities/StopPickerActivity.java View File

8
 import com.google.android.gms.ads.AdRequest;
8
 import com.google.android.gms.ads.AdRequest;
9
 import com.google.android.gms.ads.AdView;
9
 import com.google.android.gms.ads.AdView;
10
 import com.google.android.gms.ads.MobileAds;
10
 import com.google.android.gms.ads.MobileAds;
11
+import com.luticate.utils.business.LuConsumer;
11
 import com.luticate.utils.business.LuPromise;
12
 import com.luticate.utils.business.LuPromise;
12
 import com.rthoni.stssaguenay.R;
13
 import com.rthoni.stssaguenay.R;
13
 import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo;
14
 import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo;
60
 
61
 
61
     public void goToStops()
62
     public void goToStops()
62
     {
63
     {
63
-        LuPromise.LuConsumer<StopsDbo> consumer = new LuPromise.LuConsumer<StopsDbo>() {
64
+        LuConsumer<StopsDbo> consumer = new LuConsumer<StopsDbo>() {
64
             @Override
65
             @Override
65
             public void execute(StopsDbo data) {
66
             public void execute(StopsDbo data) {
66
                 if (_selectRoutes) {
67
                 if (_selectRoutes) {
93
     {
94
     {
94
         StopRoutesPickerFragment f = new StopRoutesPickerFragment();
95
         StopRoutesPickerFragment f = new StopRoutesPickerFragment();
95
         f.setStopsDbo(stopDbo);
96
         f.setStopsDbo(stopDbo);
96
-        f.setOnRoutesSelected(new LuPromise.LuConsumer<UserFavouriteStopsDbo>() {
97
+        f.setOnRoutesSelected(new LuConsumer<UserFavouriteStopsDbo>() {
97
             @Override
98
             @Override
98
             public void execute(UserFavouriteStopsDbo data) {
99
             public void execute(UserFavouriteStopsDbo data) {
99
                 saveFavouriteStop(data);
100
                 saveFavouriteStop(data);

+ 7
- 5
app/src/main/java/com/rthoni/stssaguenay/ui/fragments/HomeFragment.java View File

14
 import android.widget.TextView;
14
 import android.widget.TextView;
15
 import android.widget.Toast;
15
 import android.widget.Toast;
16
 
16
 
17
+import com.luticate.utils.business.LuConsumer;
17
 import com.luticate.utils.business.LuPromise;
18
 import com.luticate.utils.business.LuPromise;
19
+import com.luticate.utils.dbo.LuPromiseError;
18
 import com.rthoni.stssaguenay.R;
20
 import com.rthoni.stssaguenay.R;
19
 import com.rthoni.stssaguenay.business.STSBusiness;
21
 import com.rthoni.stssaguenay.business.STSBusiness;
20
 import com.rthoni.stssaguenay.business.SchedulesBusiness;
22
 import com.rthoni.stssaguenay.business.SchedulesBusiness;
46
 
48
 
47
     private FavouriteStopsAdapter _adapter;
49
     private FavouriteStopsAdapter _adapter;
48
 
50
 
49
-    private LuPromise.LuConsumer<UserFavouriteStopsDbo> _onFavouriteStopClicked;
51
+    private LuConsumer<UserFavouriteStopsDbo> _onFavouriteStopClicked;
50
 
52
 
51
     public static class ViewHolder extends RecyclerView.ViewHolder {
53
     public static class ViewHolder extends RecyclerView.ViewHolder {
52
         public View _parentView;
54
         public View _parentView;
212
         LocalDateTime date = LocalDateTime.now(dtz).plusMinutes(-30);
214
         LocalDateTime date = LocalDateTime.now(dtz).plusMinutes(-30);
213
 
215
 
214
         SchedulesBusiness.getMultiple(STSBusiness.getConfig(getContext()), _adapter.getFavourites(), date, 10)
216
         SchedulesBusiness.getMultiple(STSBusiness.getConfig(getContext()), _adapter.getFavourites(), date, 10)
215
-                .then(new LuPromise.LuConsumer<List<SchedulesDbo>>() {
217
+                .then(new LuConsumer<List<SchedulesDbo>>() {
216
                     @Override
218
                     @Override
217
                     public void execute(List<SchedulesDbo> data) {
219
                     public void execute(List<SchedulesDbo> data) {
218
                         _adapter.setSchedules(data);
220
                         _adapter.setSchedules(data);
219
                         _swipeRefreshLayout.setRefreshing(false);
221
                         _swipeRefreshLayout.setRefreshing(false);
220
                     }
222
                     }
221
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
223
+                }, new LuConsumer<LuPromiseError>() {
222
                     @Override
224
                     @Override
223
-                    public void execute(LuPromise.LuPromiseError data) {
225
+                    public void execute(LuPromiseError data) {
224
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
226
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
225
                         _swipeRefreshLayout.setRefreshing(false);
227
                         _swipeRefreshLayout.setRefreshing(false);
226
                     }
228
                     }
227
                 });
229
                 });
228
     }
230
     }
229
 
231
 
230
-    public void setOnFavouriteStopClicked(LuPromise.LuConsumer<UserFavouriteStopsDbo> onFavouriteStopClicked) {
232
+    public void setOnFavouriteStopClicked(LuConsumer<UserFavouriteStopsDbo> onFavouriteStopClicked) {
231
         _onFavouriteStopClicked = onFavouriteStopClicked;
233
         _onFavouriteStopClicked = onFavouriteStopClicked;
232
     }
234
     }
233
 }
235
 }

+ 7
- 5
app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopListPickerFragment.java View File

19
 import android.widget.TextView;
19
 import android.widget.TextView;
20
 import android.widget.Toast;
20
 import android.widget.Toast;
21
 
21
 
22
+import com.luticate.utils.business.LuConsumer;
22
 import com.luticate.utils.business.LuPromise;
23
 import com.luticate.utils.business.LuPromise;
24
+import com.luticate.utils.dbo.LuPromiseError;
23
 import com.rthoni.stssaguenay.R;
25
 import com.rthoni.stssaguenay.R;
24
 import com.rthoni.stssaguenay.business.STSBusiness;
26
 import com.rthoni.stssaguenay.business.STSBusiness;
25
 import com.rthoni.stssaguenay.business.StopsBusiness;
27
 import com.rthoni.stssaguenay.business.StopsBusiness;
46
 
48
 
47
     private StopsAdapter _stopsAdapter;
49
     private StopsAdapter _stopsAdapter;
48
 
50
 
49
-    private LuPromise.LuConsumer<StopsDbo> _onStopSelectedConsumer;
51
+    private LuConsumer<StopsDbo> _onStopSelectedConsumer;
50
 
52
 
51
     public static class ViewHolder extends RecyclerView.ViewHolder {
53
     public static class ViewHolder extends RecyclerView.ViewHolder {
52
         public TextView _textView;
54
         public TextView _textView;
178
         progressDialog.setMessage(getString(R.string.loading_stops));
180
         progressDialog.setMessage(getString(R.string.loading_stops));
179
 
181
 
180
         StopsBusiness.getAll(STSBusiness.getConfig(getContext()))
182
         StopsBusiness.getAll(STSBusiness.getConfig(getContext()))
181
-                .then(new LuPromise.LuConsumer<List<StopsDbo>>() {
183
+                .then(new LuConsumer<List<StopsDbo>>() {
182
                     @Override
184
                     @Override
183
                     public void execute(List<StopsDbo> data) {
185
                     public void execute(List<StopsDbo> data) {
184
                         progressDialog.dismiss();
186
                         progressDialog.dismiss();
185
                         _stopsAdapter.setStops(data, _searchText.getText().toString());
187
                         _stopsAdapter.setStops(data, _searchText.getText().toString());
186
                     }
188
                     }
187
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
189
+                }, new LuConsumer<LuPromiseError>() {
188
                     @Override
190
                     @Override
189
-                    public void execute(LuPromise.LuPromiseError data) {
191
+                    public void execute(LuPromiseError data) {
190
                         progressDialog.dismiss();
192
                         progressDialog.dismiss();
191
                         _stopsAdapter.setStops(new Vector<StopsDbo>(), _searchText.getText().toString());
193
                         _stopsAdapter.setStops(new Vector<StopsDbo>(), _searchText.getText().toString());
192
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
194
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
201
         }
203
         }
202
     }
204
     }
203
 
205
 
204
-    public void setOnStopSelectedConsumer(LuPromise.LuConsumer<StopsDbo> onStopSelectedConsumer) {
206
+    public void setOnStopSelectedConsumer(LuConsumer<StopsDbo> onStopSelectedConsumer) {
205
         _onStopSelectedConsumer = onStopSelectedConsumer;
207
         _onStopSelectedConsumer = onStopSelectedConsumer;
206
     }
208
     }
207
 }
209
 }

+ 7
- 5
app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopMapPickerFragment.java View File

24
 import com.google.maps.android.clustering.ClusterItem;
24
 import com.google.maps.android.clustering.ClusterItem;
25
 import com.google.maps.android.clustering.ClusterManager;
25
 import com.google.maps.android.clustering.ClusterManager;
26
 import com.google.maps.android.clustering.view.DefaultClusterRenderer;
26
 import com.google.maps.android.clustering.view.DefaultClusterRenderer;
27
+import com.luticate.utils.business.LuConsumer;
27
 import com.luticate.utils.business.LuPromise;
28
 import com.luticate.utils.business.LuPromise;
29
+import com.luticate.utils.dbo.LuPromiseError;
28
 import com.rthoni.stssaguenay.R;
30
 import com.rthoni.stssaguenay.R;
29
 import com.rthoni.stssaguenay.business.STSBusiness;
31
 import com.rthoni.stssaguenay.business.STSBusiness;
30
 import com.rthoni.stssaguenay.business.StopsBusiness;
32
 import com.rthoni.stssaguenay.business.StopsBusiness;
90
     @BindView(R.id.mapView)
92
     @BindView(R.id.mapView)
91
     MapView _mapView;
93
     MapView _mapView;
92
 
94
 
93
-    private LuPromise.LuConsumer<StopsDbo> _onStopSelectedConsumer;
95
+    private LuConsumer<StopsDbo> _onStopSelectedConsumer;
94
 
96
 
95
     private GoogleMap _map;
97
     private GoogleMap _map;
96
 
98
 
202
         progressDialog.setMessage(getString(R.string.loading_stops));
204
         progressDialog.setMessage(getString(R.string.loading_stops));
203
 
205
 
204
         StopsBusiness.getAll(STSBusiness.getConfig(getContext()))
206
         StopsBusiness.getAll(STSBusiness.getConfig(getContext()))
205
-                .then(new LuPromise.LuConsumer<List<StopsDbo>>() {
207
+                .then(new LuConsumer<List<StopsDbo>>() {
206
                     @Override
208
                     @Override
207
                     public void execute(List<StopsDbo> data) {
209
                     public void execute(List<StopsDbo> data) {
208
                         progressDialog.dismiss();
210
                         progressDialog.dismiss();
211
                             addStops();
213
                             addStops();
212
                         }
214
                         }
213
                     }
215
                     }
214
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
216
+                }, new LuConsumer<LuPromiseError>() {
215
                     @Override
217
                     @Override
216
-                    public void execute(LuPromise.LuPromiseError data) {
218
+                    public void execute(LuPromiseError data) {
217
                         progressDialog.dismiss();
219
                         progressDialog.dismiss();
218
                         _stopsDbos = null;
220
                         _stopsDbos = null;
219
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
221
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
239
         }
241
         }
240
     }
242
     }
241
 
243
 
242
-    public void setOnStopSelectedConsumer(LuPromise.LuConsumer<StopsDbo> onStopSelectedConsumer) {
244
+    public void setOnStopSelectedConsumer(LuConsumer<StopsDbo> onStopSelectedConsumer) {
243
         _onStopSelectedConsumer = onStopSelectedConsumer;
245
         _onStopSelectedConsumer = onStopSelectedConsumer;
244
     }
246
     }
245
 }
247
 }

+ 7
- 5
app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopRoutesPickerFragment.java View File

16
 import android.widget.Toast;
16
 import android.widget.Toast;
17
 
17
 
18
 import com.amulyakhare.textdrawable.TextDrawable;
18
 import com.amulyakhare.textdrawable.TextDrawable;
19
+import com.luticate.utils.business.LuConsumer;
19
 import com.luticate.utils.business.LuPromise;
20
 import com.luticate.utils.business.LuPromise;
21
+import com.luticate.utils.dbo.LuPromiseError;
20
 import com.rthoni.stssaguenay.R;
22
 import com.rthoni.stssaguenay.R;
21
 import com.rthoni.stssaguenay.business.RoutesBusiness;
23
 import com.rthoni.stssaguenay.business.RoutesBusiness;
22
 import com.rthoni.stssaguenay.business.STSBusiness;
24
 import com.rthoni.stssaguenay.business.STSBusiness;
48
 
50
 
49
     private RoutesAdapter _routesAdapter;
51
     private RoutesAdapter _routesAdapter;
50
 
52
 
51
-    private LuPromise.LuConsumer<UserFavouriteStopsDbo> _onRoutesSelected;
53
+    private LuConsumer<UserFavouriteStopsDbo> _onRoutesSelected;
52
 
54
 
53
     public static class ViewHolder extends RecyclerView.ViewHolder {
55
     public static class ViewHolder extends RecyclerView.ViewHolder {
54
         public ImageView _imageView;
56
         public ImageView _imageView;
157
         progressDialog.setMessage(getString(R.string.loading_routes));
159
         progressDialog.setMessage(getString(R.string.loading_routes));
158
 
160
 
159
         RoutesBusiness.getAll(STSBusiness.getConfig(getContext()))
161
         RoutesBusiness.getAll(STSBusiness.getConfig(getContext()))
160
-                .then(new LuPromise.LuConsumer<List<RoutesDbo>>() {
162
+                .then(new LuConsumer<List<RoutesDbo>>() {
161
                     @Override
163
                     @Override
162
                     public void execute(List<RoutesDbo> data) {
164
                     public void execute(List<RoutesDbo> data) {
163
                         progressDialog.dismiss();
165
                         progressDialog.dismiss();
164
                         List<RoutesDbo> routes = RoutesBusiness.getRoutesDbos(data, _stopsDbo.getRoutes());
166
                         List<RoutesDbo> routes = RoutesBusiness.getRoutesDbos(data, _stopsDbo.getRoutes());
165
                         _routesAdapter.setRoutes(routes);
167
                         _routesAdapter.setRoutes(routes);
166
                     }
168
                     }
167
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
169
+                }, new LuConsumer<LuPromiseError>() {
168
                     @Override
170
                     @Override
169
-                    public void execute(LuPromise.LuPromiseError data) {
171
+                    public void execute(LuPromiseError data) {
170
                         progressDialog.dismiss();
172
                         progressDialog.dismiss();
171
                         _routesAdapter.setRoutes(new Vector<RoutesDbo>());
173
                         _routesAdapter.setRoutes(new Vector<RoutesDbo>());
172
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
174
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
184
         }
186
         }
185
     }
187
     }
186
 
188
 
187
-    public void setOnRoutesSelected(LuPromise.LuConsumer<UserFavouriteStopsDbo> onRoutesSelected) {
189
+    public void setOnRoutesSelected(LuConsumer<UserFavouriteStopsDbo> onRoutesSelected) {
188
         _onRoutesSelected = onRoutesSelected;
190
         _onRoutesSelected = onRoutesSelected;
189
     }
191
     }
190
 }
192
 }

+ 8
- 6
app/src/main/java/com/rthoni/stssaguenay/ui/fragments/StopViewerFragment.java View File

15
 import android.widget.Toast;
15
 import android.widget.Toast;
16
 
16
 
17
 import com.amulyakhare.textdrawable.TextDrawable;
17
 import com.amulyakhare.textdrawable.TextDrawable;
18
+import com.luticate.utils.business.LuConsumer;
18
 import com.luticate.utils.business.LuPromise;
19
 import com.luticate.utils.business.LuPromise;
20
+import com.luticate.utils.dbo.LuPromiseError;
19
 import com.rthoni.stssaguenay.R;
21
 import com.rthoni.stssaguenay.R;
20
 import com.rthoni.stssaguenay.business.RoutesBusiness;
22
 import com.rthoni.stssaguenay.business.RoutesBusiness;
21
 import com.rthoni.stssaguenay.business.STSBusiness;
23
 import com.rthoni.stssaguenay.business.STSBusiness;
162
         progressDialog.setMessage(getString(R.string.loading_routes));
164
         progressDialog.setMessage(getString(R.string.loading_routes));
163
 
165
 
164
         RoutesBusiness.getAll(STSBusiness.getConfig(getContext()))
166
         RoutesBusiness.getAll(STSBusiness.getConfig(getContext()))
165
-                .then(new LuPromise.LuConsumer<List<RoutesDbo>>() {
167
+                .then(new LuConsumer<List<RoutesDbo>>() {
166
                     @Override
168
                     @Override
167
                     public void execute(List<RoutesDbo> data) {
169
                     public void execute(List<RoutesDbo> data) {
168
                         progressDialog.dismiss();
170
                         progressDialog.dismiss();
170
                         _adapter.setRoutes(routes);
172
                         _adapter.setRoutes(routes);
171
                         loadSchedules();
173
                         loadSchedules();
172
                     }
174
                     }
173
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
175
+                }, new LuConsumer<LuPromiseError>() {
174
                     @Override
176
                     @Override
175
-                    public void execute(LuPromise.LuPromiseError data) {
177
+                    public void execute(LuPromiseError data) {
176
                         progressDialog.dismiss();
178
                         progressDialog.dismiss();
177
                         _adapter.setRoutes(new Vector<RoutesDbo>());
179
                         _adapter.setRoutes(new Vector<RoutesDbo>());
178
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
180
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
200
         LocalDateTime date = LocalDateTime.now(dtz).plusMinutes(-30);
202
         LocalDateTime date = LocalDateTime.now(dtz).plusMinutes(-30);
201
 
203
 
202
         SchedulesBusiness.getMultiple(STSBusiness.getConfig(getContext()), favouriteStopsDbos, date, 20)
204
         SchedulesBusiness.getMultiple(STSBusiness.getConfig(getContext()), favouriteStopsDbos, date, 20)
203
-                .then(new LuPromise.LuConsumer<List<SchedulesDbo>>() {
205
+                .then(new LuConsumer<List<SchedulesDbo>>() {
204
                     @Override
206
                     @Override
205
                     public void execute(List<SchedulesDbo> data) {
207
                     public void execute(List<SchedulesDbo> data) {
206
                         progressDialog.dismiss();
208
                         progressDialog.dismiss();
207
                         _adapter.setSchedules(data);
209
                         _adapter.setSchedules(data);
208
                     }
210
                     }
209
-                }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
211
+                }, new LuConsumer<LuPromiseError>() {
210
                     @Override
212
                     @Override
211
-                    public void execute(LuPromise.LuPromiseError data) {
213
+                    public void execute(LuPromiseError data) {
212
                         progressDialog.dismiss();
214
                         progressDialog.dismiss();
213
 //                        _routesAdapter.setRoutes(new Vector<RoutesDbo>()); TODO
215
 //                        _routesAdapter.setRoutes(new Vector<RoutesDbo>()); TODO
214
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();
216
                         Toast.makeText(getContext(), data.getError(), Toast.LENGTH_LONG).show();

+ 9
- 0
luticateutils/src/main/java/com/luticate/utils/business/LuConsumer.java View File

1
+package com.luticate.utils.business;
2
+
3
+/**
4
+ * Created by robin on 10/22/16.
5
+ */
6
+
7
+public interface LuConsumer<T> {
8
+    void execute(T data);
9
+}

+ 9
- 0
luticateutils/src/main/java/com/luticate/utils/business/LuConverter.java View File

1
+package com.luticate.utils.business;
2
+
3
+/**
4
+ * Created by robin on 10/22/16.
5
+ */
6
+
7
+public interface LuConverter<T, T2> {
8
+    T2 convert(T data);
9
+}

+ 55
- 76
luticateutils/src/main/java/com/luticate/utils/business/LuPromise.java View File

1
 package com.luticate.utils.business;
1
 package com.luticate.utils.business;
2
 
2
 
3
+import com.luticate.utils.dbo.LuPromiseError;
4
+
5
+import java.util.List;
6
+import java.util.Vector;
7
+
3
 /**
8
 /**
4
  *
9
  *
5
  * Created by robin on 11/27/15.
10
  * Created by robin on 11/27/15.
6
  */
11
  */
7
 public class LuPromise<T> {
12
 public class LuPromise<T> {
8
 
13
 
9
-    public interface LuConsumer<T> {
10
-        void execute(T data);
11
-    }
12
-
13
-    public interface LuConverter<T, T2> {
14
-        T2 convert(T data);
14
+    public enum LuPromiseStatus {
15
+        Running,
16
+        Resolved,
17
+        Failed
15
     }
18
     }
16
 
19
 
17
-    public static class LuPromiseError {
20
+    private List<LuConsumer<T>> _onSuccess = new Vector<>();
18
 
21
 
19
-        public LuPromiseError()
20
-        {
22
+    private List<LuConsumer<LuPromiseError>> _onFailed = new Vector<>();
21
 
23
 
22
-        }
24
+    protected LuPromiseStatus _status = LuPromiseStatus.Running;
23
 
25
 
24
-        public LuPromiseError(String error, int statusCode)
25
-        {
26
-            _error = error;
27
-            _statusCode = statusCode;
28
-        }
26
+    protected T _data = null;
29
 
27
 
30
-        public String getError() {
31
-            return _error;
32
-        }
28
+    protected LuPromiseError _error = null;
33
 
29
 
34
-        public void setError(String error) {
35
-            _error = error;
36
-        }
37
-
38
-        public int getStatusCode() {
39
-            return _statusCode;
40
-        }
41
-
42
-        public void setStatusCode(int statusCode) {
43
-            _statusCode = statusCode;
44
-        }
45
-
46
-        private String _error;
47
-
48
-        private int _statusCode;
49
-
50
-        @Override
51
-        public String toString() {
52
-            return _error + " (HTTP Code : " + _statusCode + ")";
53
-        }
30
+    public LuPromiseStatus getStatus()
31
+    {
32
+        return _status;
54
     }
33
     }
55
 
34
 
56
-    public enum LuPromiseStatus {
57
-        Running,
58
-        Resolved,
59
-        Failed
35
+    public T getData()
36
+    {
37
+        return _data;
60
     }
38
     }
61
 
39
 
62
-    private LuConsumer<T> _onSuccess = new LuConsumer<T>() {
63
-        @Override
64
-        public void execute(T data) {
65
-        }
66
-    };
67
-
68
-    private LuConsumer<LuPromiseError> _onFailed = new LuConsumer<LuPromiseError>() {
69
-        @Override
70
-        public void execute(LuPromiseError data) {
71
-        }
72
-    };
73
-
74
-    private LuPromiseStatus _status = LuPromiseStatus.Running;
75
-
76
-    private T _data = null;
77
-
78
-    private LuPromiseError _error = null;
40
+    public LuPromiseError getError()
41
+    {
42
+        return _error;
43
+    }
79
 
44
 
80
     public LuPromise<T> then(LuConsumer<T> onSuccess, LuConsumer<LuPromiseError> onFailed)
45
     public LuPromise<T> then(LuConsumer<T> onSuccess, LuConsumer<LuPromiseError> onFailed)
81
     {
46
     {
82
-        _onFailed = onFailed;
47
+        _onFailed.add(onFailed);
83
         if (_status == LuPromiseStatus.Failed) {
48
         if (_status == LuPromiseStatus.Failed) {
84
-            _onFailed.execute(_error);
49
+            if (onFailed != null) {
50
+                onFailed.execute(_error);
51
+            }
85
         }
52
         }
86
         return then(onSuccess);
53
         return then(onSuccess);
87
     }
54
     }
88
 
55
 
89
     public LuPromise<T> then(LuConsumer<T> onSuccess)
56
     public LuPromise<T> then(LuConsumer<T> onSuccess)
90
     {
57
     {
91
-        _onSuccess = onSuccess;
58
+        _onSuccess.add(onSuccess);
92
         if (_status == LuPromiseStatus.Resolved) {
59
         if (_status == LuPromiseStatus.Resolved) {
93
-            _onSuccess.execute(_data);
60
+            if (onSuccess != null) {
61
+                onSuccess.execute(_data);
62
+            }
94
         }
63
         }
95
         return this;
64
         return this;
96
     }
65
     }
97
 
66
 
98
-    public void resolve(T data)
67
+    public LuPromise<T> resolve(T data)
99
     {
68
     {
100
         if (_status == LuPromiseStatus.Running) {
69
         if (_status == LuPromiseStatus.Running) {
101
             _data = data;
70
             _data = data;
102
             _error = null;
71
             _error = null;
103
             _status = LuPromiseStatus.Resolved;
72
             _status = LuPromiseStatus.Resolved;
104
-            _onSuccess.execute(_data);
73
+            onSuccess();
105
         }
74
         }
75
+        return this;
106
     }
76
     }
107
 
77
 
108
-    public void reject(LuPromiseError error)
78
+    public LuPromise<T> reject(LuPromiseError error)
109
     {
79
     {
110
         if (_status == LuPromiseStatus.Running) {
80
         if (_status == LuPromiseStatus.Running) {
111
             _data = null;
81
             _data = null;
112
             _error = error;
82
             _error = error;
113
             _status = LuPromiseStatus.Failed;
83
             _status = LuPromiseStatus.Failed;
114
-            _onFailed.execute(_error);
84
+            onFailed();
115
         }
85
         }
86
+        return this;
116
     }
87
     }
117
 
88
 
118
     public <T2> LuPromise<T2> map(final LuConverter<T, T2> converter)
89
     public <T2> LuPromise<T2> map(final LuConverter<T, T2> converter)
123
             public void execute(T data) {
94
             public void execute(T data) {
124
                 promise.resolve(converter.convert(data));
95
                 promise.resolve(converter.convert(data));
125
             }
96
             }
126
-        }, new LuConsumer<LuPromiseError>() {
127
-            @Override
128
-            public void execute(LuPromiseError error) {
129
-                promise.reject(error);
130
-            }
131
-        });
97
+        }, getRejectConsumer());
132
         return promise;
98
         return promise;
133
     }
99
     }
134
 
100
 
135
-    public LuConsumer<LuPromiseError> rejectConsumer()
101
+    public LuConsumer<LuPromiseError> getRejectConsumer()
136
     {
102
     {
137
         return new LuConsumer<LuPromiseError>() {
103
         return new LuConsumer<LuPromiseError>() {
138
             @Override
104
             @Override
142
         };
108
         };
143
     }
109
     }
144
 
110
 
145
-    public LuPromiseStatus getStatus()
111
+    protected void onSuccess()
146
     {
112
     {
147
-        return _status;
113
+        for (LuConsumer<T> c : _onSuccess) {
114
+            if (c != null) {
115
+                c.execute(_data);
116
+            }
117
+        }
118
+    }
119
+
120
+    protected void onFailed()
121
+    {
122
+        for (LuConsumer<LuPromiseError> c : _onFailed) {
123
+            if (c != null) {
124
+                c.execute(_error);
125
+            }
126
+        }
148
     }
127
     }
149
 }
128
 }

+ 8
- 7
luticateutils/src/main/java/com/luticate/utils/dataaccess/LuRequest.java View File

13
 import com.luticate.utils.business.LuPromise;
13
 import com.luticate.utils.business.LuPromise;
14
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
14
 import com.luticate.utils.dbo.LuDataAccessConfigDbo;
15
 import com.luticate.utils.dbo.LuDbo;
15
 import com.luticate.utils.dbo.LuDbo;
16
+import com.luticate.utils.dbo.LuPromiseError;
16
 
17
 
17
 import org.json.JSONObject;
18
 import org.json.JSONObject;
18
 
19
 
55
                     } catch (Exception e)
56
                     } catch (Exception e)
56
                     {
57
                     {
57
                         e.printStackTrace();
58
                         e.printStackTrace();
58
-                        promise.reject(new LuPromise.LuPromiseError("Failed to parse success server response", 200));
59
+                        promise.reject(new LuPromiseError("Failed to parse success server response", 200));
59
                     }
60
                     }
60
                 } catch (Exception e) {
61
                 } catch (Exception e) {
61
                     e.printStackTrace();
62
                     e.printStackTrace();
62
-                    promise.reject(new LuPromise.LuPromiseError("Failed to initialize server response", 200));
63
+                    promise.reject(new LuPromiseError("Failed to initialize server response", 200));
63
                 }
64
                 }
64
             }
65
             }
65
         };
66
         };
78
                         {
79
                         {
79
                             code = error.networkResponse.statusCode;
80
                             code = error.networkResponse.statusCode;
80
                             JSONObject data = new JSONObject(new String(error.networkResponse.data));
81
                             JSONObject data = new JSONObject(new String(error.networkResponse.data));
81
-                            promise.reject(new LuPromise.LuPromiseError(data.getString("Message"), code));
82
+                            promise.reject(new LuPromiseError(data.getString("Message"), code));
82
                         }
83
                         }
83
                         else {
84
                         else {
84
                             if (error.getCause() != null) {
85
                             if (error.getCause() != null) {
85
-                                promise.reject(new LuPromise.LuPromiseError(error.getCause().getMessage(), code));
86
+                                promise.reject(new LuPromiseError(error.getCause().getMessage(), code));
86
                             }
87
                             }
87
                             else {
88
                             else {
88
-                                promise.reject(new LuPromise.LuPromiseError(error.toString(), code));
89
+                                promise.reject(new LuPromiseError(error.toString(), code));
89
                             }
90
                             }
90
                         }
91
                         }
91
                     }
92
                     }
92
                     else {
93
                     else {
93
-                        promise.reject(new LuPromise.LuPromiseError("Unknown network error", code));
94
+                        promise.reject(new LuPromiseError("Unknown network error", code));
94
                     }
95
                     }
95
                 } catch (Exception e)
96
                 } catch (Exception e)
96
                 {
97
                 {
97
-                    promise.reject(new LuPromise.LuPromiseError(e.getMessage(), code));
98
+                    promise.reject(new LuPromiseError(e.getMessage(), code));
98
                 }
99
                 }
99
             }
100
             }
100
         };
101
         };

+ 44
- 0
luticateutils/src/main/java/com/luticate/utils/dbo/LuPromiseError.java View File

1
+package com.luticate.utils.dbo;
2
+
3
+/**
4
+ * Created by robin on 10/22/16.
5
+ */
6
+
7
+public class LuPromiseError {
8
+
9
+    private String _error;
10
+
11
+    private int _statusCode;
12
+
13
+    public LuPromiseError()
14
+    {
15
+    }
16
+
17
+    public LuPromiseError(String error, int statusCode)
18
+    {
19
+        _error = error;
20
+        _statusCode = statusCode;
21
+    }
22
+
23
+    public String getError() {
24
+        return _error;
25
+    }
26
+
27
+    public void setError(String error) {
28
+        _error = error;
29
+    }
30
+
31
+    public int getStatusCode() {
32
+        return _statusCode;
33
+    }
34
+
35
+    public void setStatusCode(int statusCode) {
36
+        _statusCode = statusCode;
37
+    }
38
+
39
+    @Override
40
+    public String toString() {
41
+        return _error + " (Status code : " + _statusCode + ")";
42
+    }
43
+
44
+}

+ 6
- 4
luticateutils/src/main/java/com/luticate/utils/ui/fragments/AbstractPaginationFragment.java View File

9
 import android.view.View;
9
 import android.view.View;
10
 import android.view.ViewGroup;
10
 import android.view.ViewGroup;
11
 
11
 
12
+import com.luticate.utils.business.LuConsumer;
12
 import com.luticate.utils.business.LuPromise;
13
 import com.luticate.utils.business.LuPromise;
13
 import com.luticate.utils.dbo.LuDbo;
14
 import com.luticate.utils.dbo.LuDbo;
14
 import com.luticate.utils.dbo.LuPaginatedDbo;
15
 import com.luticate.utils.dbo.LuPaginatedDbo;
16
+import com.luticate.utils.dbo.LuPromiseError;
15
 import com.luticate.utils.ui.views.AbstractPaginationView;
17
 import com.luticate.utils.ui.views.AbstractPaginationView;
16
 
18
 
17
 import java.util.Vector;
19
 import java.util.Vector;
42
         super.onStart();
44
         super.onStart();
43
         View v = getView();
45
         View v = getView();
44
         AbstractPaginationView paginationView = (AbstractPaginationView) v.findViewById(getPaginationViewId());
46
         AbstractPaginationView paginationView = (AbstractPaginationView) v.findViewById(getPaginationViewId());
45
-        paginationView.setOnPageChanged(new LuPromise.LuConsumer<Integer>() {
47
+        paginationView.setOnPageChanged(new LuConsumer<Integer>() {
46
             @Override
48
             @Override
47
             public void execute(Integer page) {
49
             public void execute(Integer page) {
48
                 loadPage(page);
50
                 loadPage(page);
106
         if (_items != null) {
108
         if (_items != null) {
107
             _items.setData(new Vector<Dbo>());
109
             _items.setData(new Vector<Dbo>());
108
         }
110
         }
109
-        getLoadPagePromise(page, _perPage, _query).then(new LuPromise.LuConsumer<LuPaginatedDbo<Dbo>>() {
111
+        getLoadPagePromise(page, _perPage, _query).then(new LuConsumer<LuPaginatedDbo<Dbo>>() {
110
             @Override
112
             @Override
111
             public void execute(LuPaginatedDbo<Dbo> items) {
113
             public void execute(LuPaginatedDbo<Dbo> items) {
112
                 _items = items;
114
                 _items = items;
118
                 onPageChanged();
120
                 onPageChanged();
119
                 showProgress(false);
121
                 showProgress(false);
120
             }
122
             }
121
-        }, new LuPromise.LuConsumer<LuPromise.LuPromiseError>() {
123
+        }, new LuConsumer<LuPromiseError>() {
122
             @Override
124
             @Override
123
-            public void execute(LuPromise.LuPromiseError error) {
125
+            public void execute(LuPromiseError error) {
124
 
126
 
125
                 showProgress(false);
127
                 showProgress(false);
126
             }
128
             }

+ 3
- 2
luticateutils/src/main/java/com/luticate/utils/ui/views/AbstractPaginationView.java View File

4
 import android.util.AttributeSet;
4
 import android.util.AttributeSet;
5
 import android.widget.LinearLayout;
5
 import android.widget.LinearLayout;
6
 
6
 
7
+import com.luticate.utils.business.LuConsumer;
7
 import com.luticate.utils.business.LuPromise;
8
 import com.luticate.utils.business.LuPromise;
8
 
9
 
9
 import java.util.List;
10
 import java.util.List;
14
  */
15
  */
15
 public abstract class AbstractPaginationView extends LinearLayout {
16
 public abstract class AbstractPaginationView extends LinearLayout {
16
 
17
 
17
-    private LuPromise.LuConsumer<Integer> _onPageChanged = null;
18
+    private LuConsumer<Integer> _onPageChanged = null;
18
 
19
 
19
     private int _page = 0;
20
     private int _page = 0;
20
 
21
 
101
         return isInEditMode() ? 24 : _page;
102
         return isInEditMode() ? 24 : _page;
102
     }
103
     }
103
 
104
 
104
-    public void setOnPageChanged(LuPromise.LuConsumer<Integer> onPageChanged) {
105
+    public void setOnPageChanged(LuConsumer<Integer> onPageChanged) {
105
         _onPageChanged = onPageChanged;
106
         _onPageChanged = onPageChanged;
106
     }
107
     }
107
 
108
 

+ 181
- 0
luticateutils/src/test/java/com/luticate/utils/PromiseTest.java View File

1
+package com.luticate.utils;
2
+
3
+import com.luticate.utils.business.LuConsumer;
4
+import com.luticate.utils.business.LuConverter;
5
+import com.luticate.utils.business.LuPromise;
6
+import com.luticate.utils.dbo.LuPromiseError;
7
+import com.luticate.utils.dbo.LuVoidDbo;
8
+
9
+import org.junit.Test;
10
+
11
+import static org.junit.Assert.*;
12
+
13
+/**
14
+ * Created by robin on 10/22/16.
15
+ */
16
+
17
+public class PromiseTest {
18
+
19
+    @Test
20
+    public void resolveTest()
21
+    {
22
+        LuPromise<Integer> promise = new LuPromise<>();
23
+        final int[] results = new int[]{42, 24, 4242};
24
+
25
+        promise.then(new LuConsumer<Integer>() {
26
+            @Override
27
+            public void execute(Integer data) {
28
+                assertEquals(42, results[0]);
29
+                assertEquals(24, results[1]);
30
+                assertEquals(4242, results[2]);
31
+                ++results[0];
32
+            }
33
+        }, new LuConsumer<LuPromiseError>() {
34
+            @Override
35
+            public void execute(LuPromiseError data) {
36
+                assertEquals(42, results[0]);
37
+                assertEquals(24, results[1]);
38
+                assertEquals(4242, results[2]);
39
+                --results[0];
40
+            }
41
+        }).then(new LuConsumer<Integer>() {
42
+            @Override
43
+            public void execute(Integer data) {
44
+                assertEquals(43, results[0]);
45
+                assertEquals(24, results[1]);
46
+                assertEquals(4242, results[2]);
47
+                ++results[1];
48
+            }
49
+        }, new LuConsumer<LuPromiseError>() {
50
+            @Override
51
+            public void execute(LuPromiseError data) {
52
+                assertEquals(41, results[0]);
53
+                assertEquals(24, results[1]);
54
+                assertEquals(4242, results[2]);
55
+                --results[1];
56
+            }
57
+        });
58
+        assertEquals(42, results[0]);
59
+        assertEquals(24, results[1]);
60
+        assertEquals(4242, results[2]);
61
+        assertEquals(LuPromise.LuPromiseStatus.Running, promise.getStatus());
62
+        assertNull(promise.getData());
63
+
64
+        promise.resolve(4224).then(new LuConsumer<Integer>() {
65
+            @Override
66
+            public void execute(Integer data) {
67
+                assertEquals(43, results[0]);
68
+                assertEquals(25, results[1]);
69
+                assertEquals(4242, results[2]);
70
+                ++results[2];
71
+            }
72
+        }, new LuConsumer<LuPromiseError>() {
73
+            @Override
74
+            public void execute(LuPromiseError data) {
75
+                assertEquals(41, results[0]);
76
+                assertEquals(23, results[1]);
77
+                assertEquals(4242, results[2]);
78
+                --results[2];
79
+            }
80
+        });
81
+        assertEquals(43, results[0]);
82
+        assertEquals(25, results[1]);
83
+        assertEquals(4243, results[2]);
84
+        assertEquals(LuPromise.LuPromiseStatus.Resolved, promise.getStatus());
85
+        assertEquals(4224, promise.getData().intValue());
86
+    }
87
+
88
+    @Test
89
+    public void rejectTest()
90
+    {
91
+        LuPromise<Integer> promise = new LuPromise<>();
92
+        final int[] results = new int[]{42, 24, 4242};
93
+
94
+        promise.then(new LuConsumer<Integer>() {
95
+            @Override
96
+            public void execute(Integer data) {
97
+                assertEquals(42, results[0]);
98
+                assertEquals(24, results[1]);
99
+                assertEquals(4242, results[2]);
100
+                ++results[0];
101
+            }
102
+        }, new LuConsumer<LuPromiseError>() {
103
+            @Override
104
+            public void execute(LuPromiseError data) {
105
+                assertEquals(42, results[0]);
106
+                assertEquals(24, results[1]);
107
+                assertEquals(4242, results[2]);
108
+                --results[0];
109
+            }
110
+        }).then(new LuConsumer<Integer>() {
111
+            @Override
112
+            public void execute(Integer data) {
113
+                assertEquals(43, results[0]);
114
+                assertEquals(24, results[1]);
115
+                assertEquals(4242, results[2]);
116
+                ++results[1];
117
+            }
118
+        }, new LuConsumer<LuPromiseError>() {
119
+            @Override
120
+            public void execute(LuPromiseError data) {
121
+                assertEquals(41, results[0]);
122
+                assertEquals(24, results[1]);
123
+                assertEquals(4242, results[2]);
124
+                --results[1];
125
+            }
126
+        });
127
+        assertEquals(42, results[0]);
128
+        assertEquals(24, results[1]);
129
+        assertEquals(4242, results[2]);
130
+        assertEquals(LuPromise.LuPromiseStatus.Running, promise.getStatus());
131
+        assertNull(promise.getData());
132
+
133
+        promise.reject(null).then(new LuConsumer<Integer>() {
134
+            @Override
135
+            public void execute(Integer data) {
136
+                assertEquals(43, results[0]);
137
+                assertEquals(25, results[1]);
138
+                assertEquals(4242, results[2]);
139
+                ++results[2];
140
+            }
141
+        }, new LuConsumer<LuPromiseError>() {
142
+            @Override
143
+            public void execute(LuPromiseError data) {
144
+                assertEquals(41, results[0]);
145
+                assertEquals(23, results[1]);
146
+                assertEquals(4242, results[2]);
147
+                --results[2];
148
+            }
149
+        });
150
+        assertEquals(41, results[0]);
151
+        assertEquals(23, results[1]);
152
+        assertEquals(4241, results[2]);
153
+        assertEquals(LuPromise.LuPromiseStatus.Failed, promise.getStatus());
154
+        assertNull(promise.getData());
155
+    }
156
+
157
+    @Test
158
+    public void mapTest()
159
+    {
160
+        LuPromise<Integer> promise = new LuPromise<>();
161
+        final int[] result = new int[1];
162
+        promise.map(new LuConverter<Integer, Boolean>() {
163
+            @Override
164
+            public Boolean convert(Integer data) {
165
+                return data == 42;
166
+            }
167
+        }).then(new LuConsumer<Boolean>() {
168
+            @Override
169
+            public void execute(Boolean data) {
170
+                result[0] = data ? 4242 : 2424;
171
+            }
172
+        }, new LuConsumer<LuPromiseError>() {
173
+            @Override
174
+            public void execute(LuPromiseError data) {
175
+                result[0] = 2442;
176
+            }
177
+        });
178
+        promise.resolve(42);
179
+        assertEquals(result[0], 4242);
180
+    }
181
+}

Loading…
Cancel
Save