|
|
@@ -3,6 +3,34 @@
|
|
|
*/
|
|
|
package kr.co.zumo.app.lifeplus.activity;
|
|
|
|
|
|
+import android.arch.lifecycle.ViewModelProviders;
|
|
|
+import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
+import android.support.v4.app.FragmentActivity;
|
|
|
+import android.util.Log;
|
|
|
+
|
|
|
+import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.PushBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.UtilityActivityBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
|
|
|
+import kr.co.zumo.app.lifeplus.config.NetworkConfig;
|
|
|
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
|
|
|
+import kr.co.zumo.app.lifeplus.helper.Helper;
|
|
|
+import kr.co.zumo.app.lifeplus.helper.ScreenChangerHelper;
|
|
|
+import kr.co.zumo.app.lifeplus.model.BlankModel;
|
|
|
+import kr.co.zumo.app.lifeplus.model.Model;
|
|
|
+import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
|
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
|
|
|
+import kr.co.zumo.app.lifeplus.supervisor.PushMessageManager;
|
|
|
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
+import kr.co.zumo.app.lifeplus.supervisor.screen.Screen;
|
|
|
+import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
+import kr.co.zumo.app.lifeplus.view.IView;
|
|
|
+import kr.co.zumo.app.lifeplus.view.command.ScreenCommand;
|
|
|
+import kr.co.zumo.app.lifeplus.view.presenter.BlankPresenter;
|
|
|
+import kr.co.zumo.app.lifeplus.view.presenter.CommandInvoker;
|
|
|
+import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
+
|
|
|
/**
|
|
|
* ActivitySetup
|
|
|
* - 화면 표시 없이 작동하는 액티비티
|
|
|
@@ -23,6 +51,111 @@ public abstract class ActivityBaseSetup extends ActivityBase {
|
|
|
|
|
|
protected abstract void setup();
|
|
|
|
|
|
+ protected void doOnLink() {
|
|
|
+ // 컨텐츠 링크가 준비돼있다면 표시한다.
|
|
|
+ if (SuperModel.getInstance().hasContentsLink()) {
|
|
|
+ SuperModel.getInstance().setContentsLink(false);
|
|
|
+ Intent intent = new Intent(this, ContentsActivity.class);
|
|
|
+ startActivity(intent);
|
|
|
+ }
|
|
|
+ else if (SuperModel.getInstance().hasPushLink()) {
|
|
|
+ SuperModel.getInstance().setPushLink(false);
|
|
|
+
|
|
|
+ PushBean pushBean = ActivityDeliveryHelper.getInstance().getPackaging(PushBean.class);
|
|
|
+ if (null != pushBean) {
|
|
|
+ ActivityDeliveryHelper.getInstance().clearPackaging();
|
|
|
+ DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
|
|
|
+
|
|
|
+ int id = ScreenID.MAIN;
|
|
|
+ String code = pushBean.getScreenCode();
|
|
|
+
|
|
|
+ if (StringUtil.isFull(code)) {
|
|
|
+ UtilityActivityBean utilityActivityBean;
|
|
|
+ switch (code) {
|
|
|
+ case PushMessageManager.CODE_QNA:
|
|
|
+ // 나의 문의 내역 - 프래그먼트 뿐이므로 유틸리티 액티비티를 이용
|
|
|
+ utilityActivityBean = new UtilityActivityBean();
|
|
|
+ utilityActivityBean.setScreenId(ScreenID.MY_FAQ);
|
|
|
+ deliveryHelper.setPackaging(utilityActivityBean);
|
|
|
+ id = ScreenID.UTILITY_ACTIVITY;
|
|
|
+ break;
|
|
|
+ case PushMessageManager.CODE_EXTINCTION:
|
|
|
+ // my extinct coin - 프래그먼트 뿐이므로 유틸리티 액티비티를 이용
|
|
|
+ utilityActivityBean = new UtilityActivityBean();
|
|
|
+ utilityActivityBean.setScreenId(ScreenID.MY_COIN_EXTINCT);
|
|
|
+ deliveryHelper.setPackaging(utilityActivityBean);
|
|
|
+ id = ScreenID.UTILITY_ACTIVITY;
|
|
|
+ break;
|
|
|
+ case PushMessageManager.CODE_EVENT_WINNER:
|
|
|
+ // event winner
|
|
|
+ // todo event winner
|
|
|
+
|
|
|
+ id = ScreenID.EVENT_WINNER;
|
|
|
+ break;
|
|
|
+ case PushMessageManager.CODE_EVENT_DETAIL:
|
|
|
+ // event detail
|
|
|
+ // todo event detail
|
|
|
+
|
|
|
+ id = ScreenID.EVENT_DETAIL;
|
|
|
+ break;
|
|
|
+ case PushMessageManager.CODE_CONTENTS:
|
|
|
+ // 컨텐츠
|
|
|
+ // 데이터 준비
|
|
|
+ LifeplusContentsBean lifeplusContentsBean = new LifeplusContentsBean();
|
|
|
+ lifeplusContentsBean.setItemNo(pushBean.getItemNo());
|
|
|
+ ContentsDeliveryBean contentsDeliveryBean = new ContentsDeliveryBean.Builder(lifeplusContentsBean).pageIndex(0).build();
|
|
|
+ deliveryHelper.setPackaging(contentsDeliveryBean);
|
|
|
+
|
|
|
+ id = ScreenID.CONTENTS;
|
|
|
+ break;
|
|
|
+ case PushMessageManager.CODE_MY_COUPON:
|
|
|
+ // 마이 쿠폰
|
|
|
+ Uri.Builder uri = Uri.parse(NetworkConfig.getCoopUrl() + ":" + NetworkConfig.getCoopPort()).buildUpon();
|
|
|
+ uri.appendPath(NetworkConfig.getCoopMyPage());
|
|
|
+ deliveryHelper.setPackaging(uri.toString());
|
|
|
+
|
|
|
+ id = ScreenID.COUPON_MALL;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // temp for change screen
|
|
|
+ ScreenChangerHelper helper = getHelper(ScreenChangerHelper.class);
|
|
|
+ helper.setAppCompatActivity(this);
|
|
|
+
|
|
|
+ Presenter presenter = new BlankPresenter(getModel(BlankModel.class), new IView() {
|
|
|
+ @Override
|
|
|
+ public FragmentActivity getActivity() {
|
|
|
+ return ActivityBaseSetup.this;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public <H extends Helper> H getHelper(Class<H> helperClass) {
|
|
|
+ return ActivityBaseSetup.this.getHelper(helperClass);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ new CommandInvoker().invoke(presenter, new ScreenCommand(id, ScreenID.DIRECTION_NEXT, Screen.METHOD_SKIP));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ Log.e("APP# ActivityBaseSetup | doOnLink", "|" + " has no link via push...................");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 모델을 반환한다.
|
|
|
+ *
|
|
|
+ * @param modelClass MainModel.class
|
|
|
+ * @return new MainModel() or exist object
|
|
|
+ */
|
|
|
+ public <T extends Model> T getModel(Class<T> modelClass) {
|
|
|
+ return ViewModelProviders.of(this).get(modelClass);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|