+import android.content.ComponentName;
4
+import android.content.Context;
3 5
 import android.content.Intent;
6
+import android.content.ServiceConnection;
7
+import android.os.IBinder;
4 8
 
5 9
 import java.text.SimpleDateFormat;
6 10
 import java.util.ArrayList;
@@ -8,11 +12,13 @@ import java.util.Date;
8 12
 
9 13
 import ai.pai.lensman.App;
10 14
 import ai.pai.lensman.base.BaseInteractor;
15
+import ai.pai.lensman.bean.PhotoBean;
11 16
 import ai.pai.lensman.bean.SessionBean;
12 17
 import ai.pai.lensman.db.DBService;
18
+import ai.pai.lensman.db.Preferences;
13 19
 import ai.pai.lensman.service.UploadService;
14 20
 
15
-public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.InteractorListener<ArrayList<String>> {
21
+public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.InteractorListener<ArrayList<String>>,UploadService.PhotoUploadListener {
16 22
 
17 23
     private UploadContract.View uploadView;
18 24
     private ArrayList<SessionBean> sessionList;
@@ -20,12 +26,25 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.
20 26
     private int sessionSeq;
21 27
     private ArrayList<String> sessionIds;
22 28
     private FetchSessionIdsInteractor interactor;
29
+    private ServiceConnection serviceConnection;
23 30
 
24
-    public UploadPresenter(UploadContract.View view,String lensmanId){
31
+    public UploadPresenter(UploadContract.View view){
25 32
         this.uploadView = view;
26
-        this.lensmanId = lensmanId;
33
+        this.lensmanId = Preferences.getInstance().getLensManId();
27 34
         sessionIds = new ArrayList<>();
28 35
         interactor = new FetchSessionIdsInteractor(lensmanId,100,this);
36
+        serviceConnection = new ServiceConnection() {
37
+            @Override
38
+            public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
39
+                UploadService.MyBinder binder = (UploadService.MyBinder)iBinder;
40
+                ((UploadService.MyBinder) iBinder).getService().setPhotoUploadListener(UploadPresenter.this);
41
+            }
42
+
43
+            @Override
44
+            public void onServiceDisconnected(ComponentName componentName) {
45
+
46
+            }
47
+        };
29 48
     }
30 49
 
31 50
 
@@ -49,11 +68,12 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.
49 68
         sessionSeq = sessionList.size();
50 69
 
51 70
         App.getAppContext().startService(new Intent(App.getAppContext(), UploadService.class));
71
+        App.getAppContext().bindService(new Intent(App.getAppContext(),UploadService.class),serviceConnection, Context.BIND_AUTO_CREATE);
52 72
     }
53 73
 
54 74
     @Override
55 75
     public void stop() {
56
-
76
+        App.getAppContext().unbindService(serviceConnection);
57 77
     }
58 78
 
59 79
     @Override
@@ -83,7 +103,13 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.
83 103
 
84 104
     @Override
85 105
     public void onInteractFail(String errorMsg) {
86
-//        interactor.startJob();
106
+        interactor.startJob();
87 107
     }
88 108
 
109
+
110
+    @Override
111
+    public void onPhotoUploaded(PhotoBean bean) {
112
+
113
+        uploadView.updateSessionUploadView(null);
114
+    }
89 115
 }

Sign In - Gogs: Go Git Service

Sign In