Commit 0612c9909879dbd3bb695cc8d22baf9b19704cf9

Authored by 李攀
1 parent 55b014ef

流程部分异常处理,二维码更新功能

... ... @@ -11,8 +11,8 @@ def isWindows = {
11 11 }
12 12
13 13 ext {
14   - APP_VERSION_CODE = 1;
15   - APP_VERSION_NAME = "v1.0";
  14 + APP_VERSION_CODE = 2;
  15 + APP_VERSION_NAME = "v2.0";
16 16 }
17 17
18 18 android {
... ...
... ... @@ -19,6 +19,9 @@
19 19 tools:ignore="ProtectedPermissions"/>
20 20 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
21 21 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  22 + <action android:name="android.intent.action.PACKAGE_ADDED"/>
  23 + <action android:name="android.intent.action.PACKAGE_REMOVED"/>
  24 + <action android:name="android.intent.action.PACKAGE_REPLACED"/>
22 25
23 26 <!--
24 27 windows not support lable replace by gradle,just replace by string values
... ... @@ -85,6 +88,28 @@
85 88 <action android:name="android.intent.action.BOOT_COMPLETED"/>
86 89 </intent-filter>
87 90 </receiver>
  91 + <receiver android:enabled="true" android:exported="true" android:name=".receiver.AppInstalledReceiver">
  92 + <intent-filter>
  93 + <action android:name="android.intent.action.BOOT_COMPLETED"/>
  94 + <data android:scheme="package"/>
  95 + </intent-filter>
  96 + <intent-filter>
  97 + <action android:name="android.intent.action.PACKAGE_ADDED"/>
  98 + <data android:scheme="package"/>
  99 + </intent-filter>
  100 + <intent-filter>
  101 + <action android:name="android.intent.action.PACKAGE_INSTALL"/>
  102 + <data android:scheme="package"/>
  103 + </intent-filter>
  104 + <intent-filter>
  105 + <action android:name="android.intent.action.PACKAGE_CHANGED"/>
  106 + <data android:scheme="package"/>
  107 + </intent-filter>
  108 + <intent-filter>
  109 + <action android:name="android.intent.action.PACKAGE_REPLACED"/>
  110 + <data android:scheme="package"/>
  111 + </intent-filter>
  112 + </receiver>
88 113 <receiver android:name=".service.MovieCompleteReceiver">
89 114 <intent-filter>
90 115 <action android:name="com.xgimi.gimicinema.get_data.movie_complete"/>
... ...
... ... @@ -173,6 +173,7 @@ public class OkHttpClientManager {
173 173 // SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
174 174 Date parse = new Date(date);
175 175 return parse.getTime() / 1000;
  176 +
176 177 }
177 178
178 179
... ...
... ... @@ -40,6 +40,10 @@ public interface SmartControlContract {
40 40 void updateOrderInfo(RoomStatusInfo oderInfo);
41 41
42 42 void prepareRoomQrCodeInfo(RoomQrCodeInfo qrCodeInfo);
  43 +
  44 + void updateInitGetOrderInfo(boolean b);
  45 +
  46 + void setOpenDoorTime(int i);
43 47 }
44 48
45 49 interface Presenter extends BasePresenter {
... ... @@ -51,5 +55,7 @@ public interface SmartControlContract {
51 55 void reportOpenDoorStatus(String oderSn);
52 56
53 57 void getCleanQrCode(String orderSn, String roomSn);
  58 +
  59 + void getSysTime(Context context);
54 60 }
55 61 }
... ...
... ... @@ -14,6 +14,8 @@ import com.xgimi.gimicinema.application.FangTangApplication;
14 14 import com.xgimi.gimicinema.model.IRoomInfoModel;
15 15 import com.xgimi.gimicinema.model.RoomInfoModelImpl;
16 16
  17 +import java.util.Calendar;
  18 +
17 19 /**
18 20 * Created by zyh on 2017/5/19
19 21 */
... ... @@ -96,11 +98,13 @@ public class SmartControlPresenter implements SmartControlContract.Presenter {
96 98 public void onGetRoomStatusSuccess(RoomStatusInfo info) {
97 99 Log.d("room-info", "getOrderInfo#onGetRoomStatusSuccess:" + info.toString());
98 100 mainView.updateOrderInfo(info);
  101 + mainView.updateInitGetOrderInfo(false);
99 102 }
100 103
101 104 @Override
102 105 public void onGetRoomStatusFailure(WrongMsg wrongMsg) {
103 106 Log.d("room-info", "onGetRoomStatusFailure :" + wrongMsg.toString());
  107 + mainView.updateInitGetOrderInfo(false);
104 108 }
105 109 });
106 110 }
... ... @@ -149,4 +153,36 @@ public class SmartControlPresenter implements SmartControlContract.Presenter {
149 153 }
150 154 });
151 155 }
  156 +
  157 + @Override
  158 + public void getSysTime(Context context) {
  159 + String imei = SystemUtils.getPid(context, BuildConfig.BUILD_TYPE);
  160 + roomInfoModel.getRoomSysTime(imei, new RoomInfoModelImpl.GetServerTimeListener() {
  161 + @Override
  162 + public void onGetTimeSuccess(long time) {
  163 + Calendar instance = Calendar.getInstance();
  164 + instance.setTimeInMillis(time * 1000);
  165 + int hour = instance.get(Calendar.HOUR_OF_DAY);
  166 + int minute = instance.get(Calendar.MINUTE);
  167 + Log.d("getSysTime", "current minute:" + (hour * 60 + minute) + "");
  168 + mainView.setOpenDoorTime(hour * 60 + minute);
  169 + }
  170 +
  171 + @Override
  172 + public void onGetTimeFailure(WrongMsg wrongMsg) {
  173 + Log.d("getSysTime", calServerTimeMin() + "");
  174 + mainView.setOpenDoorTime(calServerTimeMin());
  175 +
  176 + }
  177 + });
  178 + }
  179 +
  180 + private int calServerTimeMin() {
  181 + Calendar cal = Calendar.getInstance();
  182 + int hour = cal.get(Calendar.HOUR_OF_DAY);//小时
  183 + int minute = cal.get(Calendar.MINUTE);//分
  184 + int serverTimeMin = (hour * 60 + minute);
  185 + Log.d("room-info", "current minute:" + (hour * 60 + minute) + "");
  186 + return serverTimeMin;
  187 + }
152 188 }
... ...
... ... @@ -6,6 +6,7 @@ import android.content.ComponentName;
6 6 import android.content.Context;
7 7 import android.content.Intent;
8 8 import android.content.IntentFilter;
  9 +import android.content.SharedPreferences;
9 10 import android.content.pm.PackageManager;
10 11 import android.os.Handler;
11 12 import android.os.IBinder;
... ... @@ -23,8 +24,14 @@ import com.gimi.common.cinema.model.MessageEvent;
23 24 import com.gimi.common.cinema.model.RoomInfo;
24 25 import com.gimi.common.cinema.model.RoomQrCodeInfo;
25 26 import com.gimi.common.cinema.model.RoomStatusInfo;
  27 +import com.gimi.common.cinema.model.SambaMsg;
  28 +import com.gimi.common.cinema.utils.ActivityCollector;
26 29 import com.gimi.common.cinema.utils.CToast;
27 30 import com.gimi.common.cinema.utils.OpenMMUtils;
  31 +import com.gimi.common.cinema.utils.SambaFileCharge;
  32 +import com.gimi.common.cinema.utils.Utils;
  33 +import com.google.gson.Gson;
  34 +import com.google.gson.JsonSyntaxException;
28 35 import com.qnbar.smc.model.Light;
29 36 import com.qnbar.smc.model.Lights;
30 37 import com.telink.bluetooth.LeBluetooth;
... ... @@ -43,7 +50,9 @@ import com.telink.bluetooth.light.Parameters;
43 50 import com.telink.bluetooth.light.model.Mesh;
44 51 import com.telink.util.Event;
45 52 import com.telink.util.EventListener;
  53 +import com.xgimi.gimicinema.activity.AdsPreVideoPlayerActivity;
46 54 import com.xgimi.gimicinema.activity.QrCodeShowActivity;
  55 +import com.xgimi.gimicinema.activity.SimpleAdsPlayer2;
47 56 import com.xgimi.gimicinema.application.FangTangApplication;
48 57 import com.xgimi.gimicinema.poll.PollingUtils;
49 58 import com.xgimi.gimicinema.service.CountService;
... ... @@ -56,6 +65,8 @@ import java.util.List;
56 65 public class SmartControlService extends BaseService implements EventListener<String>, SmartControlContract.View {
57 66 public static final String TAG = "SmartControlService";
58 67
  68 + public static final int ORDER_PLAY_COMPLETE = 0x1101;
  69 +
59 70 private boolean hasSystemFeatureBluetoothLe = true;
60 71 private BLEBroadcastReceiver bleBroadcastReceiver = new BLEBroadcastReceiver();
61 72 private SmartControlContract.Presenter presenter;
... ... @@ -63,10 +74,12 @@ public class SmartControlService extends BaseService implements EventListener<St
63 74 private RoomStatusInfo roomStatusInfo;
64 75 private RoomInfo roomInfo;
65 76 private RoomQrCodeInfo info;
66   -
67 77 private String lockMac = "CA:EC:56:60:CA:79";
68 78 private boolean needReport = false;
69 79 //___________________________________________
  80 + private boolean initGetOderInfo;
  81 + private RoomStatusInfo lastCompleteRoomStatusInfo;
  82 + private int openDoorServerTime = 0;
70 83
71 84 private void initLock() {
72 85 // 检查当前手机是否支持ble 蓝牙,如果不支持退出程序
... ... @@ -78,6 +91,7 @@ public class SmartControlService extends BaseService implements EventListener<St
78 91 }
79 92 }
80 93
  94 +
81 95 @Override
82 96 public void onCreate() {
83 97 super.onCreate();
... ... @@ -111,6 +125,7 @@ public class SmartControlService extends BaseService implements EventListener<St
111 125 if (!LeBluetooth.getInstance().isEnabled()) {
112 126 LeBluetooth.getInstance().enable(getApplicationContext());
113 127 }
  128 + updateLastCompleteMovieInfo();
114 129
115 130 // 监听各种事件
116 131 mApplication.addEventListener(DeviceEvent.STATUS_CHANGED, this);
... ... @@ -125,9 +140,19 @@ public class SmartControlService extends BaseService implements EventListener<St
125 140 }
126 141 }, 3 * 1000);
127 142 presenter.updateRoomInfo(this);
  143 +// presenter.getOrderInfo(this);
128 144 return START_STICKY;
129 145 }
130 146
  147 + private void updateLastCompleteMovieInfo() {
  148 + try {
  149 + lastCompleteRoomStatusInfo = new Gson().fromJson(Utils.getString(this, "oder-play-completed"), RoomStatusInfo.class);
  150 + } catch (JsonSyntaxException e) {
  151 + e.printStackTrace();
  152 + }
  153 + Log.d("room-info", "lastCompleteRoomStatusInfo null:" + (lastCompleteRoomStatusInfo == null));
  154 + }
  155 +
131 156 @Override
132 157 public void onDestroy() {
133 158 Log.d("room-info", "SmartControlService onDestroy");
... ... @@ -173,6 +198,8 @@ public class SmartControlService extends BaseService implements EventListener<St
173 198 };
174 199
175 200 private void openDoor() {
  201 + updateLastCompleteMovieInfo();
  202 + presenter.getSysTime(this);
176 203 Log.d("room-info", "openDoor called");
177 204 bleBroadcastReceiver.setResponseObj(new GREENCITYBLEProtocolFactory.GREENCITYBleDataWritten() {
178 205 @Override
... ... @@ -202,8 +229,39 @@ public class SmartControlService extends BaseService implements EventListener<St
202 229 public void onMoonEvent(MessageEvent messageEvent) {
203 230 switch (messageEvent.getEventId()) {
204 231 case SocketService.JUST_OPEN_DOOR:
  232 + //check qr code is showing
205 233 openDoor();
  234 + if (ActivityCollector.isActivityExist(QrCodeShowActivity.class)
  235 + || ActivityCollector.isActivityExist(SimpleAdsPlayer2.class)
  236 + || !TextUtils.isEmpty(((FangTangApplication) FangTangApplication.getInstance()).getCurrentPlayUrl())) {
  237 + break;
  238 + }
206 239 Log.d("event bus", "open door" + messageEvent.getMessage());
  240 + //异常2清理时段管理扫码进入,没有显示清洁码
  241 + if (messageEvent.getMessage().startsWith("administrator")) {
  242 + if (roomStatusInfo != null) {
  243 + int spaceTime = openDoorServerTime - roomStatusInfo.getData().getEnd_time();
  244 + if (spaceTime < 20 && spaceTime > 0) {
  245 + if (!ActivityCollector.isActivityExist(QrCodeShowActivity.class)) {
  246 + Intent intent = new Intent(this, QrCodeShowActivity.class)
  247 + .putExtra("room_sn", roomInfo.getData().getRoom_sn())
  248 + .putExtra("order_sn", roomStatusInfo.getData().getOrder_sn());
  249 + if ("count_service".equals(countMsg)) {
  250 + intent.putExtra("count_call", true);
  251 + }
  252 + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  253 + startActivity(intent);
  254 + break;
  255 + }
  256 + //异常3 观景时段内 没有放电影
  257 + if (roomStatusInfo.getData().getEnd_time() > openDoorServerTime
  258 + && openDoorServerTime > roomStatusInfo.getData().getBegin_time()
  259 + && TextUtils.isEmpty(((FangTangApplication) FangTangApplication.getInstance()).getCurrentPlayUrl())) {
  260 + presenter.getOrderInfo(this);
  261 + }
  262 + }
  263 + }
  264 + }
207 265 break;
208 266 case SocketService.USER_OPEN_DOOR_AND_GET_MOVIE:
209 267 needReport = true;
... ... @@ -217,6 +275,11 @@ public class SmartControlService extends BaseService implements EventListener<St
217 275 // if (rightSn) {
218 276 // down();
219 277 // }
  278 + //用户时段已在播放映后广告,不再获取订单信息
  279 + if (ActivityCollector.isActivityExist(SimpleAdsPlayer2.class)
  280 + || ActivityCollector.isActivityExist(AdsPreVideoPlayerActivity.class)) {
  281 + break;
  282 + }
220 283 //check the movie
221 284 if (TextUtils.isEmpty(mApplication.getCurrentPlayUrl())) {
222 285 presenter.getOrderInfo(this);
... ... @@ -251,19 +314,41 @@ public class SmartControlService extends BaseService implements EventListener<St
251 314 } catch (Exception e) {
252 315 e.printStackTrace();
253 316 }
254   - if (roomStatusInfo != null && roomStatusInfo.getData() != null & roomInfo != null && roomInfo.getData() != null) {
255   - if (System.currentTimeMillis() - lastRequest > 3000) {
256   - lastRequest = System.currentTimeMillis();
257   - countMsg = messageEvent.getMessage();
258   - presenter.getCleanQrCode(roomStatusInfo.getData().getOrder_sn(), roomInfo.getData().getRoom_sn());
259   - }
260   - } else {
261   - String msg = "roomStatusInfo is Null:" + (roomStatusInfo == null) +
262   - ",roomInfo is Null:" + (roomInfo == null);
263   - Log.d("room-info", msg);
264   - Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
  317 + if (ActivityCollector.isActivityExist(SimpleAdsPlayer2.class)) {
  318 + ActivityCollector.getActivity(SimpleAdsPlayer2.class).finish();
  319 + }
  320 +// cc
  321 + Intent intent = new Intent(this, QrCodeShowActivity.class)
  322 +// .putExtra("qr", info.getData().getCode())
  323 + .putExtra("room_sn", roomInfo.getData().getRoom_sn())
  324 + .putExtra("order_sn", roomStatusInfo.getData().getOrder_sn());
  325 + if ("count_service".equals(countMsg)) {
  326 + intent.putExtra("count_call", true);
265 327 }
  328 + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  329 + startActivity(intent);
  330 + roomStatusInfo = null;
  331 + Log.d("room-info", "into clean activity clear oder info");
  332 +// if (roomStatusInfo != null && roomStatusInfo.getData() != null & roomInfo != null && roomInfo.getData() != null) {
  333 +// if (System.currentTimeMillis() - lastRequest > 3000) {
  334 +// lastRequest = System.currentTimeMillis();
  335 +// countMsg = messageEvent.getMessage();
  336 +// presenter.getCleanQrCode(roomStatusInfo.getData().getOrder_sn(), roomInfo.getData().getRoom_sn());
  337 +// }
  338 +// } else {
  339 +// String msg = "roomStatusInfo is Null:" + (roomStatusInfo == null) +
  340 +// ",roomInfo is Null:" + (roomInfo == null);
  341 +// Log.d("room-info", msg);
  342 +// Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
  343 +// }
266 344 break;
  345 + case ORDER_PLAY_COMPLETE:
  346 + Log.d("room-info", messageEvent.getMessage());
  347 + Utils.saveString(this, "oder-play-completed", new Gson().toJson(roomStatusInfo));
  348 + playEndAds();
  349 + break;
  350 + default:
  351 + Log.d("room-info", messageEvent.getMessage());
267 352 }
268 353 }
269 354
... ... @@ -485,7 +570,6 @@ public class SmartControlService extends BaseService implements EventListener<St
485 570 public void updateOrderInfo(RoomStatusInfo orderInfo) {
486 571 this.roomStatusInfo = orderInfo;
487 572 Log.d("room-info", "update order info");
488   - roomStatusInfo = orderInfo;
489 573 RoomStatusInfo.DataEntity data = orderInfo.getData();
490 574 int offset = data.getNow_time() - data.getBegin_time();
491 575 if (offset > 3) {
... ... @@ -499,18 +583,34 @@ public class SmartControlService extends BaseService implements EventListener<St
499 583 Constant.count = durationMinutes + 1;
500 584 PollingUtils.startPollingService(this, 60, CountService.class, CountService.STATUS_ACTION);
501 585
  586 + //异常1,若在观影时间内,非正常关闭,扫描更新订单后播放广告,显示清洁码
  587 + if (lastCompleteRoomStatusInfo != null) {
  588 + if (lastCompleteRoomStatusInfo.getData().getOrder_sn().equals(roomStatusInfo.getData().getOrder_sn())) {
  589 + if (openDoorServerTime > roomStatusInfo.getData().getBegin_time() && openDoorServerTime < roomStatusInfo.getData().getEnd_time()) {
  590 + playEndAds();
  591 +
  592 + }
  593 + return;
  594 + }
  595 + }
  596 +
502 597 LocalMovieMessage localMovieMessages = null;
503 598 if (!TextUtils.isEmpty(data.getFilm_hash())) {
504 599 localMovieMessages = new NewDBManager(this).queryPlayMovie(data.getFilm_hash());
505 600 if (localMovieMessages == null) {
506 601 show("电影信息出错,找不到相关电影");
  602 + if (offset > 3) {
  603 + CToast.makeText(this, "您已迟到" + offset + "分钟,请注意把握时间,没有找到电影输电网信息,请联系客服", 90 * 1000).show();
  604 + } else {
  605 + CToast.makeText(this, "没有找到电影输电网信息,请联系客服", 90 * 1000).show();
  606 + }
507 607 }
508 608 }
509   - if (localMovieMessages == null) {
510   - show("没有获取到相应订单信息,即将为您播放银河护卫队");
511   - localMovieMessages = new NewDBManager(this).queryPlayMovie("f1ebaee0a7fe50c7c5ce786b2eb9e753");
512   - }
513   -
  609 +// if (localMovieMessages == null) {
  610 +// show("没有获取到相应订单信息,即将为您播放银河护卫队");
  611 +// localMovieMessages = new NewDBManager(this).queryPlayMovie("f1ebaee0a7fe50c7c5ce786b2eb9e753");
  612 +// }
  613 +//
514 614 if (localMovieMessages != null) {
515 615 OpenMMUtils.openMMWithAds(this, localMovieMessages.getPlayPath(), null);
516 616 } else {
... ... @@ -531,4 +631,38 @@ public class SmartControlService extends BaseService implements EventListener<St
531 631 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
532 632 startActivity(intent);
533 633 }
  634 +
  635 + @Override
  636 + public void updateInitGetOrderInfo(boolean b) {
  637 + initGetOderInfo = b;
  638 + }
  639 +
  640 + @Override
  641 + public void setOpenDoorTime(int i) {
  642 + openDoorServerTime = i;
  643 + }
  644 +
  645 + private void playEndAds() {
  646 + SharedPreferences sharedPreferences = getSharedPreferences(Constant.XML_NAME, Context.MODE_PRIVATE);
  647 + SambaMsg sambaMsg = Utils.getSambaMsg(sharedPreferences);
  648 + String adsVideoPath;
  649 + try {
  650 + Thread.sleep(2000);
  651 + } catch (InterruptedException e) {
  652 + e.printStackTrace();
  653 + }
  654 + adsVideoPath = sambaMsg.getLocalPath() + "qnyk.mp4";
  655 + if (!SambaFileCharge.fileExist(adsVideoPath)) {
  656 + return;
  657 + }
  658 + if (roomStatusInfo != null && roomStatusInfo.getData() != null && roomInfo != null && roomInfo.getData() != null) {
  659 + Intent intentAds = new Intent(this.getApplicationContext(), SimpleAdsPlayer2.class);
  660 + intentAds.putExtra("ads_path", adsVideoPath);
  661 + intentAds
  662 + .putExtra("room_sn", roomInfo.getData().getRoom_sn())
  663 + .putExtra("order_sn", roomStatusInfo.getData().getOrder_sn());
  664 + intentAds.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  665 + startActivity(intentAds);
  666 + }
  667 + }
534 668 }
... ...
... ... @@ -146,8 +146,6 @@ public class SocketService1 extends BaseService {
146 146 @Override
147 147 public int onStartCommand(Intent intent, int flags, int startId) {
148 148 super.onStartCommand(intent, flags, startId);
149   -// ServiceCommandCollector.addService(this, this.getClass());
150   -// Log.d("BaseService1", this.getClass().toString() + "");
151 149 Log.d(TAG, "onStartCommand");
152 150 int ftTest = Utils.getInt(this, "ft-test", 0);
153 151 switch (ftTest) {
... ...
... ... @@ -3,22 +3,28 @@ package com.xgimi.gimicinema.activity;
3 3 import android.app.Activity;
4 4 import android.os.Bundle;
5 5 import android.os.Handler;
  6 +import android.text.TextUtils;
6 7 import android.util.Log;
7 8 import android.view.KeyEvent;
8 9 import android.widget.ImageView;
9 10 import android.widget.Toast;
10 11 import com.gimi.common.cinema.model.MessageEvent;
  12 +import com.gimi.common.cinema.model.RoomQrCodeInfo;
  13 +import com.gimi.common.cinema.model.WrongMsg;
11 14 import com.gimi.common.cinema.utils.QRCodeUtils;
12 15 import com.gimi.common.cinema.utils.SystemUtils;
13 16 import com.google.zxing.WriterException;
14 17 import com.qnbar.smc.utils.LightOperationUtils;
15 18 import com.xgimi.gimicinema.R;
  19 +import com.xgimi.gimicinema.mview.IUpdateQrCodeView;
16 20 import com.xgimi.gimicinema.presenter.QrCodeShowPresent;
17 21 import org.greenrobot.eventbus.EventBus;
18 22 import org.greenrobot.eventbus.Subscribe;
19 23 import org.greenrobot.eventbus.ThreadMode;
20 24
21   -public class QrCodeShowActivity extends Activity {
  25 +import static com.xgimi.gimicinema.R.id.qrCodeIv;
  26 +
  27 +public class QrCodeShowActivity extends Activity implements IUpdateQrCodeView {
22 28 public static final int KILL_SELF = 0x9983;
23 29 private Handler handler = new Handler();
24 30 private QrCodeShowPresent present;
... ... @@ -28,11 +34,21 @@ public class QrCodeShowActivity extends Activity {
28 34 LightOperationUtils.close();
29 35 LightOperationUtils.setLightValue(5);
30 36 new SystemUtils().closeFtLed(QrCodeShowActivity.this.getApplicationContext());
31   - present.reportSleepStatus(oderSn, roomSn);
  37 + present.reportSleepStatus(orderSn, roomSn);
32 38 QrCodeShowActivity.this.finish();
33 39 }
34 40 };
35   - private String oderSn, roomSn;
  41 + private String orderSn;
  42 + private String roomSn;
  43 + private ImageView iv;
  44 + private Runnable updateQrCodeRunnable = new Runnable() {
  45 + @Override
  46 + public void run() {
  47 + Log.d("room-info", "QrCodeShowActivity update qr code runnable run");
  48 + handler.postDelayed(this, 10 * 60 * 1000);
  49 + present.getQrCode(roomSn, orderSn);
  50 + }
  51 + };
36 52
37 53 @Override
38 54 protected void onCreate(Bundle savedInstanceState) {
... ... @@ -40,25 +56,24 @@ public class QrCodeShowActivity extends Activity {
40 56 setContentView(R.layout.activity_qr_code_show);
41 57 EventBus.getDefault().register(this);
42 58 //back press,movie length
43   - present = new QrCodeShowPresent();
44   -
45   - final String qr = getIntent().getStringExtra("qr");
46   - oderSn = getIntent().getStringExtra("order_sn");
  59 + present = new QrCodeShowPresent(this);
  60 +// final String qr = getIntent().getStringExtra("qr");
  61 + orderSn = getIntent().getStringExtra("order_sn");
47 62 roomSn = getIntent().getStringExtra("room_sn");
48   - boolean countCall = getIntent().getBooleanExtra("count_call", false);
49   - if (countCall) {
50   - Toast.makeText(this, "你预定的时段已结束,请携带好随身物品,欢迎下次光临", Toast.LENGTH_LONG).show();
  63 +// boolean countCall = getIntent().getBooleanExtra("count_call", false);
  64 +// if (countCall) {
  65 +// Toast.makeText(this, "你预定的时段已结束,请携带好随身物品,欢迎下次光临", Toast.LENGTH_LONG).show();
  66 +// } else {
  67 +// Toast.makeText(this, "电影观看完成,请携带好随身物品,欢迎下次光临", Toast.LENGTH_LONG).show();
  68 +// }
  69 + iv = (ImageView) findViewById(qrCodeIv);
  70 + handler.postDelayed(r, 20 * 60 * 1000);
  71 +
  72 + if (!TextUtils.isEmpty(roomSn) && !TextUtils.isEmpty(orderSn)) {
  73 + handler.post(updateQrCodeRunnable);
51 74 } else {
52   - Toast.makeText(this, "电影观看完成,请携带好随身物品,欢迎下次光临", Toast.LENGTH_LONG).show();
53   - }
54   - ImageView iv = (ImageView) findViewById(R.id.qrCodeIv);
55   - try {
56   - iv.setImageBitmap(QRCodeUtils.createQRCode(qr, 400));
57   - } catch (WriterException e) {
58   - e.printStackTrace();
  75 + Log.d("room-info", "roomSn:" + roomSn + ",orderSn:" + orderSn);
59 76 }
60   -
61   - handler.postDelayed(r, 20 * 60 * 1000);
62 77 }
63 78
64 79 @Override
... ... @@ -84,7 +99,7 @@ public class QrCodeShowActivity extends Activity {
84 99 @Override
85 100 public boolean onKeyDown(int keyCode, KeyEvent event) {
86 101 if (keyCode == KeyEvent.KEYCODE_BACK) {
87   - Toast.makeText(this,"请用管理端扫描或者等待清理时间结束",Toast.LENGTH_SHORT).show();
  102 + Toast.makeText(this, "请用管理端扫描或者等待清理时间结束", Toast.LENGTH_SHORT).show();
88 103 return true;
89 104 }
90 105 return super.onKeyDown(keyCode, event);
... ... @@ -99,4 +114,19 @@ public class QrCodeShowActivity extends Activity {
99 114 break;
100 115 }
101 116 }
  117 +
  118 + @Override
  119 + public void getQrCodeSuccess(RoomQrCodeInfo info) {
  120 + try {
  121 + Log.d("QrCodeShowActivity", info.getData().getCode());
  122 + iv.setImageBitmap(QRCodeUtils.createQRCode(info.getData().getCode(), 400));
  123 + } catch (WriterException e) {
  124 + e.printStackTrace();
  125 + }
  126 + }
  127 +
  128 + @Override
  129 + public void getQrCodeFailure(WrongMsg wrongMsg) {
  130 + Toast.makeText(this, wrongMsg.getMsg(), Toast.LENGTH_SHORT).show();
  131 + }
102 132 }
... ...
1 1 package com.xgimi.gimicinema.activity;
2 2
3   -import android.app.Activity;
4   -import android.content.BroadcastReceiver;
5 3 import android.content.Context;
6   -import android.content.Intent;
7   -import android.content.IntentFilter;
8 4 import android.media.AudioManager;
9 5 import android.media.MediaPlayer;
10 6 import android.net.Uri;
11 7 import android.os.Bundle;
12 8 import android.os.Handler;
  9 +import android.text.TextUtils;
  10 +import android.util.Log;
13 11 import android.view.KeyEvent;
  12 +import android.view.View;
  13 +import android.widget.ImageView;
  14 +import android.widget.LinearLayout;
  15 +import android.widget.Toast;
14 16 import android.widget.VideoView;
15 17 import com.gimi.common.cinema.model.Constant;
  18 +import com.gimi.common.cinema.model.RoomQrCodeInfo;
  19 +import com.gimi.common.cinema.model.WrongMsg;
  20 +import com.gimi.common.cinema.utils.QRCodeUtils;
  21 +import com.google.zxing.WriterException;
16 22 import com.xgimi.gimicinema.R;
  23 +import com.xgimi.gimicinema.mview.IUpdateQrCodeView;
  24 +import com.xgimi.gimicinema.presenter.UpdateQrCodePresenter;
17 25
18   -public class SimpleAdsPlayer2 extends Activity {
  26 +public class SimpleAdsPlayer2 extends BaseActivity implements IUpdateQrCodeView {
  27 +
  28 + private UpdateQrCodePresenter presenter;
19 29 private VideoView videoView;
20   - // private TextView textviewP;
  30 + private ImageView cleanQrCodeIv;
  31 + private LinearLayout qrCodeIv;
21 32 public String playUrl;
22   - private Handler handler = new Handler();
23   -// private Runnable killSelfRunnable = new Runnable() {
24   -// @Override
25   -// public void run() {
26   -// handler.postDelayed(this, 3 * 1000);
27   -// if (Constant.messageRun) {
28   -// SimpleAdsPlayer2.this.finish();
29   -// }
30   -// }
31   -// };
32   -
  33 + private String roomSn;
  34 + private String orderSn;
33 35 private AudioManager audioManager;
34 36 private boolean fromService;
35 37 private long startAdsTime = 0;
36 38 private int streamVolume;
  39 + private Handler handler = new Handler();
  40 + private Runnable updateQrCodeRunnable = new Runnable() {
  41 + @Override
  42 + public void run() {
  43 + Log.d("room-info", "update qr code runnable run");
  44 + handler.postDelayed(this, 10 * 60 * 1000);
  45 + presenter.getQrCode(roomSn, orderSn);
  46 + }
  47 + };
37 48
38 49 @Override
39 50 protected void onCreate(Bundle savedInstanceState) {
... ... @@ -47,10 +58,12 @@ public class SimpleAdsPlayer2 extends Activity {
47 58 startAdsTime = System.currentTimeMillis();
48 59 Constant.isAdsOn = true;
49 60 videoView = (VideoView) findViewById(R.id.videoView);
50   -// textviewP = (TextView) findViewById(R.id.promoteTv);
  61 + cleanQrCodeIv = (ImageView) findViewById(R.id.cleanQrCodeIv);
  62 + qrCodeIv = (LinearLayout) findViewById(R.id.qrCodeIv);
51 63 playUrl = getIntent().getStringExtra("ads_path");
  64 + orderSn = getIntent().getStringExtra("order_sn");
  65 + roomSn = getIntent().getStringExtra("room_sn");
52 66 fromService = getIntent().getBooleanExtra("from_service", false);
53   -// playUrl = "/mnt/samba/172.21.16.83/APicture/qnyk.mp4";
54 67 Uri videoUri = Uri.parse(playUrl);
55 68 videoView.setVideoURI(videoUri);
56 69 videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
... ... @@ -58,7 +71,6 @@ public class SimpleAdsPlayer2 extends Activity {
58 71 public void onCompletion(MediaPlayer mp) {
59 72 videoView.start();
60 73 videoView.seekTo(0);
61   -
62 74 }
63 75 });
64 76 videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
... ... @@ -74,10 +86,12 @@ public class SimpleAdsPlayer2 extends Activity {
74 86 }
75 87 }
76 88 });
77   -// if (fromService) {
78   -// textviewP.setVisibility(View.VISIBLE);
79   -// handler.postDelayed(killSelfRunnable, 3 * 1000);
80   -// }
  89 + if (!TextUtils.isEmpty(roomSn) && !TextUtils.isEmpty(orderSn)) {
  90 + presenter = new UpdateQrCodePresenter(this);
  91 + handler.post(updateQrCodeRunnable);
  92 + } else {
  93 + Log.d("room-info", "roomSn:" + roomSn + ",orderSn:" + orderSn);
  94 + }
81 95 }
82 96
83 97 @Override
... ... @@ -97,6 +111,7 @@ public class SimpleAdsPlayer2 extends Activity {
97 111 super.onStop();
98 112 Constant.isAdsOn = false;
99 113 if (handler != null) {
  114 + handler.removeCallbacks(null);
100 115 handler.removeCallbacksAndMessages(null);
101 116 }
102 117 if (audioManager != null) {
... ... @@ -104,36 +119,29 @@ public class SimpleAdsPlayer2 extends Activity {
104 119 audioManager = null;
105 120 }
106 121 handler = null;
107   -// Constant.needStartScreenSaver = true;
108 122 playUrl = null;
109 123 videoView = null;
110 124 System.gc();
111 125 }
112 126
113 127 @Override
114   - protected void onResume() {
115   - super.onResume();
116   - IntentFilter networkFilter = new IntentFilter(
117   - "com.xgimi.gimicinema_close_led");
118   - registerReceiver(closeLedReceiver, networkFilter);
  128 + protected void onDestroy() {
  129 + super.onDestroy();
119 130 }
120 131
121   - BroadcastReceiver closeLedReceiver = new BroadcastReceiver() {
122   - @Override
123   - public void onReceive(Context context, Intent intent) {
124   - if (intent.getAction().equals(Constant.ACTION_GET_MESSAGE_CLOSE_LED)) {
125   - SimpleAdsPlayer2.this.finish();
126   - }
127   - }
128   - };
129   -
130 132 @Override
131   - protected void onDestroy() {
132   - super.onDestroy();
  133 + public void getQrCodeSuccess(RoomQrCodeInfo info) {
133 134 try {
134   - unregisterReceiver(closeLedReceiver);
135   - } catch (Exception e) {
  135 + Log.d("SimpleAdsPlayer2", info.getData().getCode());
  136 + cleanQrCodeIv.setImageBitmap(QRCodeUtils.createQRCode(info.getData().getCode(), 400));
  137 + qrCodeIv.setVisibility(View.VISIBLE);
  138 + } catch (WriterException e) {
136 139 e.printStackTrace();
137 140 }
138 141 }
  142 +
  143 + @Override
  144 + public void getQrCodeFailure(WrongMsg wrongMsg) {
  145 + Toast.makeText(this, wrongMsg.getMsg(), Toast.LENGTH_SHORT).show();
  146 + }
139 147 }
\ No newline at end of file
... ...
... ... @@ -6,11 +6,13 @@ package com.xgimi.gimicinema.model;
6 6 public interface IRoomInfoModel {
7 7 void getRoomInfo(String imei, boolean needUpdate, RoomInfoModelImpl.GetRoomInfoListener listener);
8 8
  9 + void getRoomSysTime(String imei, RoomInfoModelImpl.GetServerTimeListener listener);
  10 +
9 11 void getRoomStatus(String roomSn, RoomInfoModelImpl.GetRoomStatusListener listener);
10 12
11 13 void getRoomQrCode(String orderSn, String roomSn, RoomInfoModelImpl.GetRoomQrCodeListener listener);
12 14
13 15 void reportOpenDoorStatus(String orderSn, RoomInfoModelImpl.OpenDoorStatusListener listener);
14 16
15   - void reportSleepSysStatus(String orderSn,String roomSn, RoomInfoModelImpl.SleepSysStatusListener listener);
  17 + void reportSleepSysStatus(String orderSn, String roomSn, RoomInfoModelImpl.SleepSysStatusListener listener);
16 18 }
... ...
... ... @@ -3,7 +3,6 @@ package com.xgimi.gimicinema.model;
3 3 import android.content.Context;
4 4 import android.text.TextUtils;
5 5 import android.util.Log;
6   -
7 6 import com.gimi.common.cinema.model.RoomInfo;
8 7 import com.gimi.common.cinema.model.RoomQrCodeInfo;
9 8 import com.gimi.common.cinema.model.RoomStatusInfo;
... ... @@ -15,6 +14,9 @@ import com.google.gson.JsonSyntaxException;
15 14 import com.squareup.okhttp.Request;
16 15 import com.xgimi.gimicinema.application.FangTangApplication;
17 16
  17 +import java.io.IOException;
  18 +import java.text.ParseException;
  19 +
18 20 /**
19 21 * Created by wugian on 2017/4/7
20 22 */
... ... @@ -97,6 +99,31 @@ public class RoomInfoModelImpl implements IRoomInfoModel {
97 99 });
98 100 }
99 101
  102 + public void getRoomSysTime(final String imei, final GetServerTimeListener listener) {
  103 + ThreadUtils.subThread(new ThreadUtils.DoSomeThing() {
  104 +
  105 + @Override
  106 + public void doSomeThing() {
  107 + long time = -1;
  108 + Log.d("room-info", "request:getRoomInfo,url = " + ROOM_INFO_BY_IMEI_URL + imei);
  109 + try {
  110 + time = OkHttpClientManager.getSysTime(ROOM_INFO_BY_IMEI_URL + imei);
  111 + } catch (IOException e) {
  112 + e.printStackTrace();
  113 + } catch (ParseException e) {
  114 + e.printStackTrace();
  115 + }
  116 + if (time != -1) {
  117 + listener.onGetTimeSuccess(time);
  118 + } else {
  119 + listener.onGetTimeFailure(new WrongMsg());
  120 + }
  121 + }
  122 + });
  123 +
  124 +
  125 + }
  126 +
100 127 @Override
101 128 public void getRoomStatus(String roomSn, final GetRoomStatusListener listener) {
102 129 Log.d("room-info", "request:getRoomStatus,url = " + ROOM_STATUS_BY_ROOM_SN_URL + roomSn);
... ... @@ -210,6 +237,12 @@ public class RoomInfoModelImpl implements IRoomInfoModel {
210 237 void onGetRoomInfoFailure(WrongMsg wrongMsg);
211 238 }
212 239
  240 + public interface GetServerTimeListener {
  241 + void onGetTimeSuccess(long time);
  242 +
  243 + void onGetTimeFailure(WrongMsg wrongMsg);
  244 + }
  245 +
213 246 public interface GetRoomStatusListener {
214 247 void onGetRoomStatusSuccess(RoomStatusInfo info);
215 248
... ...
  1 +package com.xgimi.gimicinema.mview;
  2 +
  3 +import com.gimi.common.cinema.model.RoomQrCodeInfo;
  4 +import com.gimi.common.cinema.model.WrongMsg;
  5 +
  6 +/**
  7 + * Created by wugian on 2017/5/25.
  8 + */
  9 +
  10 +public interface IUpdateQrCodeView {
  11 + void getQrCodeSuccess(RoomQrCodeInfo info);
  12 +
  13 + void getQrCodeFailure(WrongMsg wrongMsg);
  14 +}
... ...
1 1 package com.xgimi.gimicinema.presenter;
2 2
3 3 import android.util.Log;
4   -
  4 +import com.gimi.common.cinema.model.RoomQrCodeInfo;
  5 +import com.gimi.common.cinema.model.WrongMsg;
5 6 import com.xgimi.gimicinema.model.IRoomInfoModel;
6 7 import com.xgimi.gimicinema.model.RoomInfoModelImpl;
  8 +import com.xgimi.gimicinema.mview.IUpdateQrCodeView;
7 9
8 10 /**
9 11 * Created by wugian on 2017/5/2
... ... @@ -12,8 +14,9 @@ import com.xgimi.gimicinema.model.RoomInfoModelImpl;
12 14 public class QrCodeShowPresent {
13 15 IRoomInfoModel roomInfoModel;
14 16
15   - public QrCodeShowPresent() {
  17 + public QrCodeShowPresent(IUpdateQrCodeView view) {
16 18 roomInfoModel = new RoomInfoModelImpl();
  19 + this.view = view;
17 20 }
18 21
19 22 public void reportSleepStatus(String orderSn, String roomSn) {
... ... @@ -29,4 +32,21 @@ public class QrCodeShowPresent {
29 32 }
30 33 });
31 34 }
  35 +
  36 + private IUpdateQrCodeView view;
  37 +
  38 +
  39 + public void getQrCode(String roomSn, String oderSn) {
  40 + roomInfoModel.getRoomQrCode(oderSn, roomSn, new RoomInfoModelImpl.GetRoomQrCodeListener() {
  41 + @Override
  42 + public void onGetRoomQrCodeSuccess(RoomQrCodeInfo info) {
  43 + view.getQrCodeSuccess(info);
  44 + }
  45 +
  46 + @Override
  47 + public void onGetRoomQrCodeFailure(WrongMsg wrongMsg) {
  48 + view.getQrCodeFailure(wrongMsg);
  49 + }
  50 + });
  51 + }
32 52 }
... ...
  1 +package com.xgimi.gimicinema.presenter;
  2 +
  3 +import com.gimi.common.cinema.model.RoomQrCodeInfo;
  4 +import com.gimi.common.cinema.model.WrongMsg;
  5 +import com.xgimi.gimicinema.model.IRoomInfoModel;
  6 +import com.xgimi.gimicinema.model.RoomInfoModelImpl;
  7 +import com.xgimi.gimicinema.mview.IUpdateQrCodeView;
  8 +
  9 +/**
  10 + * Created by wugian on 2017/5/25
  11 + */
  12 +
  13 +public class UpdateQrCodePresenter {
  14 + private IRoomInfoModel roomInfoModel;
  15 + private IUpdateQrCodeView view;
  16 +
  17 + public UpdateQrCodePresenter(IUpdateQrCodeView updateView) {
  18 + this.roomInfoModel = new RoomInfoModelImpl();
  19 + this.view = updateView;
  20 + }
  21 +
  22 + public void getQrCode(String roomSn, String oderSn) {
  23 + roomInfoModel.getRoomQrCode(oderSn, roomSn, new RoomInfoModelImpl.GetRoomQrCodeListener() {
  24 + @Override
  25 + public void onGetRoomQrCodeSuccess(RoomQrCodeInfo info) {
  26 + view.getQrCodeSuccess(info);
  27 + }
  28 +
  29 + @Override
  30 + public void onGetRoomQrCodeFailure(WrongMsg wrongMsg) {
  31 + view.getQrCodeFailure(wrongMsg);
  32 + }
  33 + });
  34 + }
  35 +}
... ...
  1 +package com.xgimi.gimicinema.receiver;
  2 +
  3 +import android.content.BroadcastReceiver;
  4 +import android.content.Context;
  5 +import android.content.Intent;
  6 +import android.util.Log;
  7 +
  8 +public class AppInstalledReceiver extends BroadcastReceiver {
  9 +
  10 + @Override
  11 + public void onReceive(Context context, Intent intent) {
  12 +
  13 + String action = intent.getAction();
  14 + String packageName = intent.getData().getSchemeSpecificPart();
  15 + if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
  16 +// Toast.makeText(context, "添加了新的应用" + packageName, Toast.LENGTH_LONG).show();
  17 + Log.d("install", "Intent.ACTION_PACKAGE_ADDED:" + packageName);
  18 +// Intent serviceIntent = new Intent();
  19 +// serviceIntent.setClass(context, Controller.class);
  20 +// serviceIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  21 +// context.startActivity(serviceIntent);
  22 + } else {
  23 + Log.d("install", "Intent.ACTION_PACKAGE_ADDED:" + packageName + "," + action);
  24 + if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {
  25 +// Toast.makeText(context, "添加了新的应用" + action, Toast.LENGTH_LONG).show();
  26 + Log.d("install", "Intent.ACTION_PACKAGE_ADDED:" + packageName);
  27 +// Intent serviceIntent = new Intent();
  28 +// serviceIntent.setClass(context, Controller.class);
  29 +// serviceIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  30 +// context.startActivity(serviceIntent);
  31 + }
  32 + }
  33 + }
  34 +}
\ No newline at end of file
... ...
... ... @@ -24,11 +24,11 @@ import android.os.IBinder;
24 24 import android.os.RemoteException;
25 25 import android.util.Log;
26 26 import android.widget.Toast;
27   -import com.gimi.common.cinema.model.Constant;
28 27 import com.gimi.common.cinema.model.MessageEvent;
29 28 import com.gimi.common.cinema.utils.Utils;
30 29 import com.qnbar.smc.model.Light;
31 30 import com.qnbar.smc.model.Lights;
  31 +import com.qnbar.smc.service.SmartControlService;
32 32 import com.qnbar.smc.service.TelinkLightService;
33 33 import com.telink.bluetooth.light.ConnectionStatus;
34 34 import com.telink.bluetooth.light.DeviceInfo;
... ... @@ -39,8 +39,6 @@ import org.greenrobot.eventbus.EventBus;
39 39 import java.util.ArrayList;
40 40 import java.util.List;
41 41
42   -import static com.xgimi.gimicinema.service.CountService.COUNT_DOWN_ZERO;
43   -
44 42 public class CinemaControlService extends Service {
45 43 private static final int LIGHT_MIN_VALUE = 5;
46 44 private ArrayList<String> movies = new ArrayList<>();
... ... @@ -108,7 +106,8 @@ public class CinemaControlService extends Service {
108 106 }
109 107 if (state != currentState) {
110 108 currentState = state;
111   - Log.d("aidl", "state change," + currentPath + "," + duration + "," + currentPosition);
  109 +// ShellUtils.execCommand("input keyevent 23", false);
  110 + Log.d("aidl", "state change," + currentPath + "," + duration + "," + currentPosition + ",state:" + state);
112 111 Log.d("aidl", "state change cinemaSMC not null");
113 112 // if (true) {
114 113 // return;
... ... @@ -338,10 +337,15 @@ public class CinemaControlService extends Service {
338 337
339 338 private void showQrCodeRightNow() {
340 339 if (duration - currentPosition < 1000 * 60) {
341   - Constant.count = -1;
  340 + //save order complete
  341 +// Constant.count = -1;
  342 +// MessageEvent messageEvent = new MessageEvent();
  343 +// messageEvent.setEventId(COUNT_DOWN_ZERO);
  344 +// messageEvent.setMessage("CinemaControlService,记数为0");
  345 +// EventBus.getDefault().post(messageEvent);
342 346 MessageEvent messageEvent = new MessageEvent();
343   - messageEvent.setEventId(COUNT_DOWN_ZERO);
344   - messageEvent.setMessage("CinemaControlService,记数为0");
  347 + messageEvent.setEventId(SmartControlService.ORDER_PLAY_COMPLETE);
  348 + messageEvent.setMessage("电影播放完成,记录完成订单信息");
345 349 EventBus.getDefault().post(messageEvent);
346 350 } else {
347 351 Log.d("room-info", "stop media but not completed");
... ...
... ... @@ -3,13 +3,6 @@ package com.xgimi.gimicinema.service;
3 3 import android.content.BroadcastReceiver;
4 4 import android.content.Context;
5 5 import android.content.Intent;
6   -import android.content.SharedPreferences;
7   -import com.gimi.common.cinema.model.Constant;
8   -import com.gimi.common.cinema.model.SambaMsg;
9   -import com.gimi.common.cinema.utils.AdsVideoUtils;
10   -import com.gimi.common.cinema.utils.SambaFileCharge;
11   -import com.gimi.common.cinema.utils.Utils;
12   -import com.xgimi.gimicinema.activity.SimpleAdsPlayer2;
13 6
14 7 /**
15 8 * Created by wugian on 2016/8/22
... ... @@ -17,28 +10,26 @@ import com.xgimi.gimicinema.activity.SimpleAdsPlayer2;
17 10 public class MovieCompleteReceiver extends BroadcastReceiver {
18 11 @Override
19 12 public void onReceive(Context context, Intent intent) {
20   - if (intent.getAction().equals(Constant.ACTION_GET_MESSAGE_MEDIA_PLAYER_MOVIE_COMPLETE)) {
21   -
22   - SharedPreferences sharedPreferences = context.getSharedPreferences(Constant.XML_NAME, Context.MODE_PRIVATE);
23   - SambaMsg sambaMsg = Utils.getSambaMsg(sharedPreferences);
24   - String adsVideoPath;
25   - try {
26   - Thread.sleep(2000);
27   - } catch (InterruptedException e) {
28   - e.printStackTrace();
29   - }
30   - if (Constant.startAds && Constant.messageRun) {
31   - Constant.startAds = false;
32   - adsVideoPath = AdsVideoUtils.getAdsVideoPath(sambaMsg.getLocalPath());
33   - if (!SambaFileCharge.fileExist(adsVideoPath)) {
34   - return;
35   - }
36   - Intent intentAds = new Intent(context.getApplicationContext(), SimpleAdsPlayer2.class);
37   - intentAds.putExtra("ads_path", adsVideoPath);
38   - intentAds.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
39   - context.startActivity(intentAds);
40   - }
41   - }
  13 +// if (intent.getAction().equals(Constant.ACTION_GET_MESSAGE_MEDIA_PLAYER_MOVIE_COMPLETE)) {
  14 +//
  15 +// SharedPreferences sharedPreferences = context.getSharedPreferences(Constant.XML_NAME, Context.MODE_PRIVATE);
  16 +// SambaMsg sambaMsg = Utils.getSambaMsg(sharedPreferences);
  17 +// String adsVideoPath;
  18 +// try {
  19 +// Thread.sleep(2000);
  20 +// } catch (InterruptedException e) {
  21 +// e.printStackTrace();
  22 +// }
  23 +// Constant.startAds = false;
  24 +// adsVideoPath = sambaMsg.getLocalPath() + "qnyk.mp4";
  25 +// if (!SambaFileCharge.fileExist(adsVideoPath)) {
  26 +// return;
  27 +// }
  28 +// Intent intentAds = new Intent(context.getApplicationContext(), SimpleAdsPlayer2.class);
  29 +// intentAds.putExtra("ads_path", adsVideoPath);
  30 +// intentAds.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  31 +// context.startActivity(intentAds);
  32 +// }
42 33 }
43 34
44 35 }
... ...
1 1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
2   - xmlns:tools="http://schemas.android.com/tools"
3   - android:gravity="center"
4   - android:layout_width="match_parent"
5   - android:layout_height="match_parent">
  2 + xmlns:tools="http://schemas.android.com/tools"
  3 + android:gravity="center"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent">
6 6
7 7 <com.xgimi.gimicinema.view.FullScreenVideoView
8 8 android:id="@+id/videoView"
9 9 android:layout_width="match_parent"
10 10 android:layout_height="match_parent"
11 11 android:layout_gravity="center_horizontal"
12   - android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
  12 + android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
13 13 <TextView
14 14 android:layout_width="wrap_content"
15 15 android:layout_height="wrap_content"
... ... @@ -22,5 +22,20 @@
22 22 android:padding="5dp"
23 23 android:background="@color/dark_background"
24 24 android:layout_gravity="center_horizontal|top"/>
  25 + <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"
  26 + android:padding="10dp"
  27 + android:gravity="bottom|right">
  28 + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
  29 + android:gravity="center"
  30 + android:visibility="gone"
  31 + android:id="@+id/qrCodeIv"
  32 + android:background="@color/white"
  33 + android:orientation="vertical">
  34 +
  35 + <ImageView android:layout_width="200dp" android:layout_height="200dp"
  36 + android:id="@+id/cleanQrCodeIv"/>
  37 + </LinearLayout>
  38 +
  39 + </LinearLayout>
25 40
26 41 </FrameLayout>
\ No newline at end of file
... ...
... ... @@ -106,4 +106,11 @@
106 106 <string name="pre_ads_times">映前广告次数</string>
107 107 <string name="set_sm_light">设置智能灯光</string>
108 108
  109 + <string name="ads_promote">青柠影咖,年轻人的奇幻乐园。</string>
  110 + <string name="delay_time">您已迟到%d分钟,</string>
  111 + <string name="play_movie">即将为你播放%s</string>
  112 + <string name="end_ads">本场电影已结束,请观看《青柠电影先锋》</string>
  113 + <string name="welcome_again">离场时请携带好随身物品,欢迎下次光临。</string>
  114 + <string name="play_next">本场电影已结束,将于广告后为您播放下一部影片%s</string>
  115 +
109 116 </resources>
... ...
Please register or login to post a comment