package com.lgq.rssreader.task;
import java.util.Calendar;
import com.google.gson.Gson;
import com.lgq.rssreader.BlogContentActivity;
import com.lgq.rssreader.BlogListActivity;
import com.lgq.rssreader.MainActivity;
import com.lgq.rssreader.R;
import com.lgq.rssreader.controls.XListView;
import com.lgq.rssreader.core.ReaderApp;
import com.lgq.rssreader.dal.BlogDalHelper;
import com.lgq.rssreader.entity.Blog;
import com.lgq.rssreader.entity.Channel;
import com.lgq.rssreader.task.RssWidgetService.RssWidgetFactory;
import com.lgq.rssreader.utils.DateHelper;
import android.annotation.SuppressLint;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.text.format.Time;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
public class SmallRssWidgetProvider extends AppWidgetProvider{
public static final String REFRESH = "com.lgq.rssreader.task.SmallRssWidgetProvider.REFRESH";
public static final String LEFT = "com.lgq.rssreader.task.SmallRssWidgetProvider.LEFT";
public static final String RIGHT = "com.lgq.rssreader.task.SmallRssWidgetProvider.RIGHT";
public static final String ITEM = "com.lgq.rssreader.task.SmallRssWidgetProvider.ITEM";
public static final String OPTION = "android.appwidget.action.APPWIDGET_UPDATE_OPTIONS";
@SuppressLint("NewApi")
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// for(int i=0, len=appWidgetIds.length;i<len;i++){
// buildRemoteView(context, appWidgetManager, appWidgetIds[i]);
// }
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
private void buildRemoteView(Context context, AppWidgetManager appWidgetManager, int appWidgetId){
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1_1);
Channel c = null;
SharedPreferences prefs = ReaderApp.getAppContext().getSharedPreferences("Widget_Channel", 0);
String content = prefs.getString("Widget_Channel" + appWidgetId, "");
if(content.length() > 0 ){
c = new Gson().fromJson(content, Channel.class);
views.setTextViewText(R.id.widget_channel_title, c.Title);
views.setTextViewText(R.id.widget_channel_count, String.valueOf(c.UnreadCount));
}
Intent toastIntent = new Intent(context, BlogListActivity.class);
toastIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
toastIntent.setData(Uri.parse(toastIntent.toUri(Intent.URI_INTENT_SCHEME)));
Bundle extras = new Bundle();
if(c != null)
extras.putString(BlogListActivity.ARG_ITEM_ID, new Gson().toJson(c));
toastIntent.putExtras(extras);
PendingIntent toastPendingIntent = PendingIntent.getActivity(context, 0, toastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.smalllayout, toastPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
@Override
public void onReceive(Context context, Intent intent){
super.onReceive(context, intent);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName cmpName = new ComponentName(context, MediumRssWidgetProvider.class);
int mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
if(intent.getAction().equals(REFRESH)){
}else if(intent.getAction().equals(OPTION)){
buildRemoteView(context, appWidgetManager, mAppWidgetId);
}
}
}