package com.nightonke.githubwidget;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
/**
* Created by Weiping on 2016/4/29.
*/
public class WidgetListViewService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return new MyWidgetFactory(getApplicationContext(), intent);
}
public static class MyWidgetFactory implements RemoteViewsService.RemoteViewsFactory {
private Context mContext;
public MyWidgetFactory(Context context, Intent intent) {
mContext = context;
}
@Override
public int getCount() {
if (SettingsManager.getListViewContents() == null) return 0;
else return SettingsManager.getListViewContents().size();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public RemoteViews getLoadingView() {
RemoteViews views = new RemoteViews(mContext.getPackageName(),
R.layout.list_view_content_item);
views.setImageViewBitmap(R.id.image_view, Util.getLoadingBitmap());
return views;
}
@Override
public RemoteViews getViewAt(int position) {
if (position < 0 || position >= getCount()) {
return null;
}
RemoteViews views = new RemoteViews(mContext.getPackageName(),
R.layout.list_view_content_item);
if (SettingsManager.getListViewContent().equals(ListViewContent.EVENT)) {
views.setImageViewBitmap(R.id.image_view, Util.getReceivedEventBitmap(position));
} else {
views.setImageViewBitmap(R.id.image_view, Util.getTrendingBitmap(position));
}
Bundle extras = new Bundle();
extras.putInt(Actions.LIST_ITEM, position);
Intent fillInIntent = new Intent();
fillInIntent.putExtras(extras);
views.setOnClickFillInIntent(R.id.image_view, fillInIntent);
return views;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public void onCreate() {
}
@Override
public void onDataSetChanged() {
}
@Override
public void onDestroy() {
}
}
}