package com.newsrob.appwidget; import android.app.Activity; import android.appwidget.AppWidgetManager; import android.content.Intent; import android.os.Bundle; import android.widget.RemoteViews; import android.widget.Toast; import com.newsrob.DBQuery; import com.newsrob.DashboardListActivity; import com.newsrob.EntryManager; import com.newsrob.threetosix.R; import com.newsrob.activities.AbstractNewsRobListActivity; import com.newsrob.activities.ArticleListActivity; import com.newsrob.activities.FeedListActivity; import com.newsrob.appwidget.UnreadWidgetPrefWizard.Scope; import com.newsrob.appwidget.UnreadWidgetPrefWizard.StartingActivity; public class UnreadWidgetPrefActivity extends Activity { private int appWidgetId; private UnreadWidgetPrefWizard wizard; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.configure_unread_widget); Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } setResult(RESULT_CANCELED); EntryManager entryManager = EntryManager.getInstance(this); if (!entryManager.isProVersion()) { Toast.makeText(this, "Simple Launcher Widget created.\nWidget configurable in the Pro version.", Toast.LENGTH_LONG).show(); // finish(); WidgetPreferences widgetPrefs = new WidgetPreferences(); widgetPrefs.setLabel("NewsRob"); widgetPrefs.setStartingActivityName(DashboardListActivity.class.getName()); doCreateWidget(widgetPrefs, entryManager, null, null); } wizard = new UnreadWidgetPrefWizard(this) { @Override void wizardFinished() { createWidget(); } }; } private void createWidget() { WidgetPreferences widgetPrefs = new WidgetPreferences(); widgetPrefs.setLabel(wizard.getWidgetLabel()); EntryManager entryManager = EntryManager.getInstance(this); String filterLabel = null; if (wizard.getScope() == Scope.LABEL && wizard.getSelectedLabelName().length() > 0) { filterLabel = wizard.getSelectedLabelName(); if (filterLabel.length() == 0) filterLabel = null; } Long filterFeedId = null; if (wizard.getScope() == Scope.FEED && wizard.getSelectedFeedName().length() > 0) filterFeedId = wizard.getSelectedFeedId(); if (wizard.getScope() == Scope.READING_LIST) { Class<? extends AbstractNewsRobListActivity> startingActivity = ArticleListActivity.class; if (wizard.getStartingActivity() == StartingActivity.DASHBOARD) startingActivity = DashboardListActivity.class; else if (wizard.getStartingActivity() == StartingActivity.FEEDS) startingActivity = FeedListActivity.class; widgetPrefs.setStartingActivityName(startingActivity.getName()); } doCreateWidget(widgetPrefs, entryManager, filterLabel, filterFeedId); } private void doCreateWidget(WidgetPreferences widgetPrefs, EntryManager entryManager, String filterLabel, Long filterFeedId) { DBQuery dbq = new DBQuery(entryManager, filterLabel, filterFeedId); dbq.setShouldHideReadItemsWithoutUpdatingThePreference(true); widgetPrefs.setDBQuery(dbq); entryManager.saveWidgetPreferences(appWidgetId, widgetPrefs); Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); setResult(RESULT_OK, resultValue); finish(); RemoteViews remoteViews = UnreadWidgetProvider.buildUpdate(this, appWidgetId); AppWidgetManager widgetManager = AppWidgetManager.getInstance(this); widgetManager.updateAppWidget(appWidgetId, remoteViews); } }