|
|
@@ -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
|