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

暫無描述

huangqimin: 212f24c882 MarketCode 6 年之前
..
algorithm f38d3bf980 Caesar Alg 8 年之前
error 212f24c882 MarketCode 6 年之前
redis 211ab99a32 :art: member/user/coupon/detail & member/user/coupon/use 6 年之前
sql f3cf68f957 Add PAI2_HOME_WX_API for request.weixin 9 年之前
zbar 3d0d214667 :sparkles: Member Infos 7 年之前
__init__.py 52ce35cbfc add api uuid_init/uuid 11 年之前
admin_utils.py 9e4ac4fd3b Add admin_status for GroupUserInfo 9 年之前
disk_utils.py af2b3f483f change download.html to be generated from download.tmpl.html 10 年之前
group_photo_utils.py 0e7b5eb1af Update order_by of group session photos 9 年之前
message_utils.py 21b4a5403a add api lensman_brief_api 10 年之前
original_CGzC_10a50000c8811190.bak.jpg 290ff6960f pyzbar 7 年之前
original_CGzC_10a50000c8811190.jpg 680f424408 Update water mark 9 年之前
paiai_96_96.png 4a8b4f8819 add watermark 11 年之前
paiai_water_mark.png 680f424408 Update water mark 9 年之前
price_utils.py 24e345a32f Add price func get_group_photo_price 9 年之前
qiniucdn.py 4ce7f5c87b :art: Member Relative APIs 7 年之前
rdm_utils.py 4efb7f6f87 Statistic 8 年之前
storage_qiniu_utils.py f2fc73685d Update package django_xxx 8 年之前
storage_utils.py f2fc73685d Update package django_xxx 8 年之前
thumbnail_utils.py 5c9e21b29b add Only Once Function statistic_thumbnail_size to statistic thumbnail size 10 年之前
time_utils.py 511533855d Change oauth to use http 9 年之前
url_utils.py 135c21b40c from models_ext import BaseModelMixin, upload_file_url, upload_path 8 年之前
version_utils.py 13816e8774 Fix Bug: REQUEST 8 年之前
watermark_utils.py 5411626ebe Change watermark position 9 年之前
wx_utils.py 32a7d9ffa0 Update wx relative 9 年之前