Sfoglia il codice sorgente

Merge branch 'develop' of https://github.com/swict/LifeplusAndroid into develop

Hasemi 6 anni fa
parent
commit
c3feabc83a

+ 12 - 0
app/src/common/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIService.java

@@ -74,6 +74,7 @@ import kr.co.zumo.app.lifeplus.bean.api.TitleRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.UserNameRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.WidgetResultBean;
 import kr.co.zumo.app.lifeplus.config.NetworkConfig;
 
 /**
@@ -532,6 +533,17 @@ public class LifeplusAPIService extends LifeplusRetrofitService implements Lifep
     return api().getSharePoint(bean);
   }
 
+  /**
+   * 위젯 데이터 가져오기
+   *
+   * @param bean
+   * @return
+   */
+  @Override
+  public Single<WidgetResultBean> getWidgetData(RequestBean bean) {
+    return api().getWidgetData(bean);
+  }
+
   /**
    * 회원 설정
    *

+ 17 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/WidgetResultBean.java

@@ -0,0 +1,17 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.bean.api;
+
+/**
+ * WidgetResultBean
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2019. 1. 28.]   [최초 작성]
+ * @since 2019. 1. 28.
+ */
+public class WidgetResultBean extends LifeplusAPIResultBean<LifeplusContentsBean> {
+}

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPI.java

@@ -74,6 +74,7 @@ import kr.co.zumo.app.lifeplus.bean.api.TitleRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.UserNameRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.WidgetResultBean;
 import retrofit2.http.Body;
 import retrofit2.http.GET;
 import retrofit2.http.POST;
@@ -165,6 +166,10 @@ public interface LifeplusAPI {
   @POST("mapi/categorys/cntsshare.plus")
   Single<ShareCoinResultBean> getSharePoint(@Body ShareCoinRequestBean bean);
 
+  // 위젯 - 추천 데이터
+  @POST("mapi/srch/getRecommendList.plus")
+  Single<WidgetResultBean> getWidgetData(@Body RequestBean bean);
+
 
   /***********************************
    * Bookmark

+ 6 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIRepository.java

@@ -74,6 +74,7 @@ import kr.co.zumo.app.lifeplus.bean.api.TitleRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.UserNameRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.WeatherResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.WidgetResultBean;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.supervisor.GuestCoinManager;
 import kr.co.zumo.app.lifeplus.supervisor.GuestLikedManager;
@@ -383,6 +384,11 @@ public class LifeplusAPIRepository implements LifeplusAPI {
     }
   }
 
+  @Override
+  public Single<WidgetResultBean> getWidgetData(RequestBean bean) {
+    return new LifeplusAPIService().getWidgetData(bean);
+  }
+
   // -------------------------------------------------------
   @Override
   public Single<CoinInfoResultBean> getCoinInfo(CoinInfoRequestBean bean) {

+ 31 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/widget/LifeplusWidget.java

@@ -5,6 +5,7 @@ import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetProvider;
 import android.content.Context;
 import android.content.Intent;
+import android.util.Log;
 import android.widget.RemoteViews;
 
 import com.bumptech.glide.Glide;
@@ -12,8 +13,14 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.target.AppWidgetTarget;
 
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.activity.MainActivity;
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
+import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
+import kr.co.zumo.app.lifeplus.network.api.LifeplusAPIRepository;
 
 /**
  * Implementation of App Widget functionality.
@@ -21,16 +28,34 @@ import kr.co.zumo.app.lifeplus.activity.MainActivity;
 public class LifeplusWidget extends AppWidgetProvider {
 
 
-  static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
-                              int appWidgetId) {
+  private static Disposable disposable;
+
+  static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
+
+    if (null != disposable) {
+      disposable.dispose();
+    }
+    disposable = new LifeplusAPIRepository().getWidgetData(new RequestBean())
+      .subscribeOn(Schedulers.io())
+      .observeOn(AndroidSchedulers.mainThread())
+      .subscribe(resultBean -> {
+        disposable = null;
+        render(context, appWidgetManager, appWidgetId, resultBean.getData());
+      }, e -> {
+        disposable = null;
+      });
+  }
+
+  private static void render(Context context, AppWidgetManager appWidgetManager, int appWidgetId, LifeplusContentsBean contentsBean) {
     // Construct the RemoteViews object
     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.lifeplus_widget);
 
     Intent mainIntent = new Intent(context, MainActivity.class);
     views.setOnClickPendingIntent(R.id.image_view_bi, PendingIntent.getActivity(context, 0, mainIntent, 0));
 
-    views.setTextViewText(R.id.text_view_title, "test Title");
-    views.setTextViewText(R.id.text_view_sub_title, "test Sub Title");
+    Log.i("APP# LifeplusWidget | render", "|" + "contentsBean.getTitleWithTrim(): " + contentsBean.getTitleWithTrim());
+    views.setTextViewText(R.id.text_view_title, contentsBean.getTitleWithTrim());
+    views.setTextViewText(R.id.text_view_sub_title, contentsBean.getSubTitleWithTrim());
 
     AppWidgetTarget backgroundImage = new AppWidgetTarget(context, R.id.image_view_background, views, appWidgetId);
 
@@ -38,12 +63,9 @@ public class LifeplusWidget extends AppWidgetProvider {
 
     Glide.with(context)
       .asBitmap()
-      .load("http://210.216.157.64:38080/resources/contents/bucket/bg/img_bestbucket_1.jpg")
-      .apply(new RequestOptions()
-        .transforms(new CenterCrop()))
+      .load(contentsBean.getImageUrl())
+      .apply(new RequestOptions().transforms(new CenterCrop()))
       .into(backgroundImage);
-
-
   }
 
   @Override