No Description

MainPresenter.java 9.3KB

    package ai.pai.lensman.main; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.net.ConnectivityManager; import android.os.IBinder; import android.support.annotation.StringRes; import com.android.common.utils.LogHelper; import com.android.common.utils.NetworkUtil; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import ai.pai.lensman.App; import ai.pai.lensman.R; import ai.pai.lensman.bean.PhotoBean; import ai.pai.lensman.bean.SessionBean; import ai.pai.lensman.db.DBService; import ai.pai.lensman.db.Preferences; import ai.pai.lensman.service.OrderDealService; import ai.pai.lensman.service.UploadService; import ai.pai.lensman.upgrade.BoxUpgradeActivity; import ai.pai.lensman.upgrade.CheckBoxUpgradeInfoInteractor; class MainPresenter implements MainContract.Presenter,SyncTimeInteractor.SyncTimeListener,CheckBoxUpgradeInfoInteractor.FetchUpgradeInfoListener, UploadService.PhotoUploadListener, QueryBoxStatusInteractor.BoxStatusListener,OrderDealService.OrderServiceListener { private int sessionSeq; private String lensmanId; private ArrayList<SessionBean> sessionList; private MainContract.View view; private SyncTimeInteractor syncTimeInteractor; private QueryBoxStatusInteractor boxStatusInteractor; private CheckBoxUpgradeInfoInteractor checkBoxUpgradeInfoInteractor; private ServiceConnection uploadServiceConnection; private ServiceConnection orderServiceConnection; private boolean isTimeSync = false; private boolean isBoxConnected = true; private boolean isBoxUpdateChecked = false; private BroadcastReceiver wifiReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { if(NetworkUtil.isWifiConnected(context)){ view.showBoxConnectedView(); App.getAppContext().startService(new Intent(App.getAppContext(), UploadService.class)); }else{ isBoxConnected = false; view.showBoxDisconnectedView(); } } } }; MainPresenter(MainContract.View view){ this.view = view; this.lensmanId = Preferences.getInstance().getLensManId(); boxStatusInteractor = new QueryBoxStatusInteractor(this); syncTimeInteractor = new SyncTimeInteractor(lensmanId,this); checkBoxUpgradeInfoInteractor = new CheckBoxUpgradeInfoInteractor(lensmanId,this); uploadServiceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { ((UploadService.MyBinder) iBinder).getService().setPhotoUploadListener(MainPresenter.this); } @Override public void onServiceDisconnected(ComponentName componentName) { } }; orderServiceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { ((OrderDealService.OrderServiceBinder) iBinder).getService().setOrderServiceListener(MainPresenter.this); } @Override public void onServiceDisconnected(ComponentName componentName) { } }; } @Override public void start() { if(NetworkUtil.isWifiConnected(App.getAppContext())){ view.showBoxConnectedView(); }else{ view.showBoxDisconnectedView(); } view.setNewSessionBtnEnabled(false); view.showTimeSyncView(); if(!isTimeSync){ syncTimeInteractor.startJob(); } boxStatusInteractor.startJob(); if(!isBoxUpdateChecked){ checkBoxUpgradeInfoInteractor.startJob(); } registerWifiChangeReceiver(); App.getAppContext().startService(new Intent(App.getAppContext(), OrderDealService.class)); App.getAppContext().bindService(new Intent(App.getAppContext(),OrderDealService.class), orderServiceConnection, Context.BIND_AUTO_CREATE); App.getAppContext().startService(new Intent(App.getAppContext(), UploadService.class)); App.getAppContext().bindService(new Intent(App.getAppContext(),UploadService.class), uploadServiceConnection, Context.BIND_AUTO_CREATE); sessionList = DBService.getInstance().getSessionBeanListByDay(getSessionDateInLongFormat()); onDataReady(); } private void onDataReady(){ if(!isTimeSync){ return; } view.setNewSessionBtnEnabled(true); if(sessionList.size()==0){ view.showEmptyView(); }else{ view.showSessionViews(); view.refreshSessionViews(sessionList); } sessionSeq = sessionList.size(); } @Override public void stop() { boxStatusInteractor.cancelJob(); syncTimeInteractor.cancelJob(); checkBoxUpgradeInfoInteractor.cancelJob(); App.getAppContext().unbindService(uploadServiceConnection); App.getAppContext().unbindService(orderServiceConnection); App.getAppContext().unregisterReceiver(wifiReceiver); } @Override public SessionBean createNewSession() { SessionBean sessionBean = new SessionBean(); sessionBean.lensmanId = lensmanId; sessionBean.sessionDate=getSessionDateInLongFormat(); sessionBean.sessionSeq = sessionSeq+1; sessionBean.sessionId = lensmanId+ new Md5FileNameGenerator().generate(String.valueOf(System.currentTimeMillis())); LogHelper.d("czy","createNewSession = "+sessionBean.sessionId); sessionList.add(sessionBean); return sessionBean; } @Override public void resyncTime() { if(syncTimeInteractor!=null){ syncTimeInteractor.cancelJob(); syncTimeInteractor.startJob(); } } private long getSessionDateInLongFormat(){ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String dateStr = format.format(new Date()); return Long.parseLong(dateStr); } @Override public synchronized void onPhotoUploaded(PhotoBean bean) { int position = sessionList.size()-bean.sessionSeq; if(position < 0 || position>=sessionList.size()){ return; } SessionBean sessionBean = sessionList.get(position); ArrayList<PhotoBean> photoList = sessionBean.sessionPhotos; if(photoList==null || photoList.size()==0){ photoList = new ArrayList<>(); photoList.add(bean); }else{ for(PhotoBean photoBean : photoList){ if(photoBean.photoId == bean.photoId){ photoBean.uploadStatus = PhotoBean.UploadStatus.STATUS_SUCCESS; break; } } } sessionBean.sessionPhotos = photoList; view.updateSessionUploadViewAt(position); } @Override public synchronized void onPhotoUploadError(PhotoBean bean) { int position = sessionList.size()-bean.sessionSeq; if(position < 0 || position>=sessionList.size()){ return; } SessionBean sessionBean = sessionList.get(position); ArrayList<PhotoBean> photoList = sessionBean.sessionPhotos; if(photoList==null || photoList.size()==0){ photoList = new ArrayList<>(); photoList.add(bean); }else{ for(PhotoBean photoBean : photoList){ if(photoBean.photoId == bean.photoId){ photoBean.uploadStatus = PhotoBean.UploadStatus.STATUS_ERROR; break; } } } sessionBean.sessionPhotos = photoList; view.updateSessionUploadViewAt(position); } private void registerWifiChangeReceiver() { IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); App.getAppContext().registerReceiver(wifiReceiver,filter); } @Override public void onBoxStatusFetched(String boxNo, String boxStatus, int boxStatusCode) { if(200 == boxStatusCode){ isBoxConnected = true; view.showBoxConnectedView(); }else{ isBoxConnected = false; view.showBoxDisconnectedView(); } } @Override public void onOrderArrived() { if(!isBoxConnected){ view.showSnackBar(R.string.new_order_and_check_box); } } @Override public void onOrderCompleted() { } @Override public void onTimeSync(boolean result, @StringRes int strId) { isTimeSync = result; if(result){ onDataReady(); }else{ if(strId!=0){ view.showRetrySyncView(strId); } } } @Override public void onUpgradeInfoFetched(boolean result, String bpversion_str) { isBoxUpdateChecked = true; if(result){ view.showBoxUpgradeActivity(bpversion_str); } } }
kodo - Gogs: Go Git Service

Nav apraksta

FFIB: 4fa973cbf4 更新隐私条款 4 gadi atpakaļ
..
migrations 8b7c49ddb9 add app to add page user_agreement/contact_us 10 gadi atpakaļ
static 627187a7d7 Update Kodo 8 gadi atpakaļ
templates 4fa973cbf4 更新隐私条款 4 gadi atpakaļ
__init__.py 8b7c49ddb9 add app to add page user_agreement/contact_us 10 gadi atpakaļ
admin.py fabef63211 set line_length=200 for isort 10 gadi atpakaļ
info_views.py b90bf186bc brand_domain 8 gadi atpakaļ
models.py fabef63211 set line_length=200 for isort 10 gadi atpakaļ
oauth_views.py a5226ca282 :art: Python3 support iteritems => items 4 gadi atpakaļ
preauth_views.py b7caee0a32 Preauth 8 gadi atpakaļ
sale_views.py a77de03be7 update clerk_sale_submit_api 5 gadi atpakaļ
screen_views.py 1ae491b9f1 get_query_value 8 gadi atpakaļ
supersr_views.py b9200f9ed2 Sales 7 gadi atpakaļ
tests.py fabef63211 set line_length=200 for isort 10 gadi atpakaļ
urls.py f998fb9ef7 :art: iSort & PEP8 5 gadi atpakaļ
views.py 34aac5d903 Move page relative urls from pai2/urls.py to page/urls.py 9 gadi atpakaļ