@Override protected void onHandleIntent(Intent intent) { Intent service_start = new Intent(getApplicationContext(), myFetchService.class); getApplicationContext().startService(service_start); Cursor scores = getApplicationContext() .getContentResolver() .query(DatabaseContract.scores_table.buildScores(), null, null, null, null); scores.moveToFirst(); String lastestHome = scores.getString(scoresAdapter.COL_HOME); String lastestAway = scores.getString(scoresAdapter.COL_AWAY); Integer lastestScoreHome = scores.getInt(scoresAdapter.COL_HOME_GOALS); Integer lastestScoreAway = scores.getInt(scoresAdapter.COL_AWAY_GOALS); String lastestMatchTime = scores.getString(scoresAdapter.COL_MATCHTIME); // Retrieve all of the Today widget ids: these are the widgets we need to update AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(this, ScoreWidgetProvider.class)); for (int appWidgetId : appWidgetIds) { int layoutId = R.layout.widget_score_small; RemoteViews views = new RemoteViews(getPackageName(), layoutId); // views.widget_home_name.setText(cursor.getString(COL_HOME)); views.setTextViewText(R.id.widget_home_name, lastestHome); views.setTextViewText(R.id.widget_away_name, lastestAway); views.setTextViewText(R.id.widget_date_textview, lastestMatchTime); views.setTextViewText( R.id.widget_score_textview, Utilies.getScores(lastestScoreHome, lastestScoreAway)); views.setImageViewResource( R.id.widget_home_crest, Utilies.getTeamCrestByTeamName(lastestHome)); views.setImageViewResource( R.id.widget_away_crest, Utilies.getTeamCrestByTeamName(lastestAway)); // Add the data to the RemoteViews // Content Descriptions for RemoteViews were only added in ICS MR1 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { views.setContentDescription( R.id.widget_score_textview, "Score " + Utilies.getScores(lastestScoreHome, lastestScoreAway)); views.setContentDescription(R.id.widget_date_textview, "Time " + lastestMatchTime); } // Create an Intent to launch MainActivity Intent launchIntent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, launchIntent, 0); views.setOnClickPendingIntent(R.id.widget, pendingIntent); // Tell the AppWidgetManager to perform an update on the current app widget appWidgetManager.updateAppWidget(appWidgetId, views); } }
@Override public RemoteViews getViewAt(int position) { RemoteViews row = new RemoteViews(context.getPackageName(), R.layout.widget_list_item); cursor.moveToPosition(position); Log.d(TAG, "view at " + position); row.setTextViewText( R.id.score_textview, Utilies.getScores( cursor.getInt(scoresAdapter.COL_HOME_GOALS), cursor.getInt(scoresAdapter.COL_AWAY_GOALS))); row.setTextViewText(R.id.home_name, cursor.getString(scoresAdapter.COL_HOME)); row.setTextViewText(R.id.away_name, cursor.getString(scoresAdapter.COL_AWAY)); row.setTextViewText(R.id.data_textview, cursor.getString(scoresAdapter.COL_MATCHTIME)); Intent fillInIntent = new Intent(); row.setOnClickFillInIntent(R.id.list_item, fillInIntent); row.setImageViewResource( R.id.home_crest, Utilies.getTeamCrestByTeamName(cursor.getString(scoresAdapter.COL_HOME))); row.setImageViewResource( R.id.away_crest, Utilies.getTeamCrestByTeamName(cursor.getString(scoresAdapter.COL_AWAY))); return row; }
@Override public void bindView(View view, final Context context, Cursor cursor) { final ViewHolder mHolder = (ViewHolder) view.getTag(); mHolder.home_name.setText(cursor.getString(COL_HOME)); mHolder.away_name.setText(cursor.getString(COL_AWAY)); mHolder.date.setText(cursor.getString(COL_MATCHTIME)); mHolder.score.setText( Utilies.getScores(cursor.getInt(COL_HOME_GOALS), cursor.getInt(COL_AWAY_GOALS))); mHolder.match_id = cursor.getDouble(COL_ID); mHolder.home_crest.setImageResource(Utilies.getTeamCrestByTeamName(cursor.getString(COL_HOME))); mHolder.home_crest.getLayoutParams().width = 150; mHolder.home_crest.getLayoutParams().height = 150; mHolder.away_crest.setImageResource(Utilies.getTeamCrestByTeamName(cursor.getString(COL_AWAY))); mHolder.away_crest.getLayoutParams().height = 150; mHolder.away_crest.getLayoutParams().width = 150; // Log.v(FetchScoreTask.LOG_TAG,mHolder.home_name.getText() + " Vs. " + // mHolder.away_name.getText() +" id " + String.valueOf(mHolder.match_id)); // Log.v(FetchScoreTask.LOG_TAG,String.valueOf(detail_match_id)); LayoutInflater vi = (LayoutInflater) context.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = vi.inflate(R.layout.detail_fragment, null); ViewGroup container = (ViewGroup) view.findViewById(R.id.details_fragment_container); if (mHolder.match_id == detail_match_id) { // Log.v(FetchScoreTask.LOG_TAG,"will insert extraView"); container.addView( v, 0, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); TextView match_day = (TextView) v.findViewById(R.id.matchday_textview); match_day.setText( Utilies.getMatchDay(cursor.getInt(COL_MATCHDAY), cursor.getInt(COL_LEAGUE))); TextView league = (TextView) v.findViewById(R.id.league_textview); league.setText(Utilies.getLeague(cursor.getInt(COL_LEAGUE))); Button share_button = (Button) v.findViewById(R.id.share_button); share_button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // add Share Action context.startActivity( createShareForecastIntent( mHolder.home_name.getText() + " " + mHolder.score.getText() + " " + mHolder.away_name.getText() + " ")); } }); } else { container.removeAllViews(); } }
@Override public RemoteViews getViewAt(int position) { RemoteViews mView = new RemoteViews(mContext.getPackageName(), R.layout.scores_list_item); if (cursor != null) { if (cursor.moveToPosition(position)) { String dir = cursor.getString(cursor.getColumnIndex("date")); mView.setTextViewText(R.id.home_name, "" + cursor.getString(COL_HOME)); mView.setTextViewText(R.id.away_name, "" + cursor.getString(COL_AWAY)); mView.setTextViewText(R.id.data_textview, "" + cursor.getString(COL_DATE)); mView.setTextViewText( R.id.score_textview, "" + Utilies.getScores(cursor.getInt(COL_HOME_GOALS), cursor.getInt(COL_AWAY_GOALS))); mView.setImageViewResource( R.id.home_crest, Utilies.getTeamCrestByTeamName(cursor.getString(COL_HOME))); mView.setImageViewResource( R.id.away_crest, Utilies.getTeamCrestByTeamName(cursor.getString(COL_AWAY))); } } final Intent fillInIntent = new Intent(); fillInIntent.setAction(WidgetProvider.ACTION_OPEN_ACTIVITY); final Bundle bundle = new Bundle(); bundle.putString(WidgetProvider.EXTRA_HOME_NAME, cursor.getString(COL_HOME)); bundle.putString(WidgetProvider.EXTRA_AWAY_NAME, cursor.getString(COL_AWAY)); bundle.putString( WidgetProvider.EXTRA_SCORE, Utilies.getScores(cursor.getInt(COL_HOME_GOALS), cursor.getInt(COL_AWAY_GOALS))); bundle.putString(WidgetProvider.EXTRA_DATE, cursor.getString(COL_DATE)); bundle.putInt(WidgetProvider.EXTRA_MATCH_DAY, cursor.getInt(COL_MATCH_DAY)); bundle.putInt(WidgetProvider.EXTRA_LEAGUE, cursor.getInt(COL_LEAGUE)); fillInIntent.putExtras(bundle); mView.setOnClickFillInIntent(R.id.widget_id, fillInIntent); return mView; }
private void getLatest(Context context) { Cursor c = context .getContentResolver() .query( DatabaseContract.BASE_CONTENT_URI, null, null, null, DatabaseContract.ScoresTable.DATE_COL + " DESC, " + DatabaseContract.ScoresTable.TIME_COL + " DESC"); if (c == null) { return; } if (!c.moveToFirst()) { c.close(); return; } do { String date = c.getString(c.getColumnIndex(DatabaseContract.ScoresTable.DATE_COL)); String time = c.getString(c.getColumnIndex(DatabaseContract.ScoresTable.TIME_COL)); String home = c.getString(c.getColumnIndex(DatabaseContract.ScoresTable.HOME_COL)); String away = c.getString(c.getColumnIndex(DatabaseContract.ScoresTable.AWAY_COL)); int homeGoals = c.getInt(c.getColumnIndex(DatabaseContract.ScoresTable.HOME_GOALS_COL)); int awayGoals = c.getInt(c.getColumnIndex(DatabaseContract.ScoresTable.AWAY_GOALS_COL)); // Log.v(TAG, "DateTime: " + date + " " + time + " " + "Goals: " + homeGoals + // "-" + awayGoals); if (homeGoals != -1 && awayGoals != -1) { mLatestHome = home; mLatestAway = away; mLatestScore = Utilies.getScores(context.getResources(), homeGoals, awayGoals); mLatestTime = time; break; } } while (c.moveToNext()); c.close(); // Log.v(TAG, "Latest: " + mLatestHome + " " + mLatestScore + " " + mLatestAway); }
private void saveCursor(String title, Cursor cursor) { Match m = new Match(); m.setTitle(title); data.add(m); while (cursor.moveToNext()) { m = new Match(); m.setHome(cursor.getString(scoresAdapter.COL_HOME)); m.setHomeCrest(Utilies.getTeamCrestByTeamName(cursor.getString(scoresAdapter.COL_HOME))); m.setAway(cursor.getString(scoresAdapter.COL_AWAY)); m.setAwayCrest(Utilies.getTeamCrestByTeamName(cursor.getString(scoresAdapter.COL_AWAY))); m.setScore( Utilies.getScores( cursor.getInt(scoresAdapter.COL_HOME_GOALS), cursor.getInt(scoresAdapter.COL_AWAY_GOALS))); m.setMacthTime(cursor.getString(scoresAdapter.COL_MATCHTIME)); data.add(m); } }
@Override public void bindView(View view, final Context context, Cursor cursor) { final ViewHolder mHolder = (ViewHolder) view.getTag(); mHolder.home_name.setText(cursor.getString(COL_HOME)); mHolder.away_name.setText(cursor.getString(COL_AWAY)); mHolder.date.setText(cursor.getString(COL_MATCHTIME)); mHolder.score.setText( Utilies.getScores(cursor.getInt(COL_HOME_GOALS), cursor.getInt(COL_AWAY_GOALS))); mHolder.match_id = cursor.getDouble(COL_ID); // String s = cursor.getString(COL_HOME_CREST); // if (s != null && !"".equals(s)) { // mHolder.home_crest.setLayerType(View.LAYER_TYPE_SOFTWARE, null); // mHolder.home_crest.setImageDrawable(Utilies.transformSVGImageToDrawable(s)); // //mHolder.home_crest.setImageBitmap(Utilies.transformSVGImageToBitmap(s)); // } // // s = cursor.getString(COL_AWAY_CREST); // if (s != null && !"".equals(s)) // mHolder.away_crest.setImageBitmap(Utilies.transformSVGImageToBitmap(s)); downloadImageToView(cursor.getString(COL_HOME_CREST), mHolder.home_crest, context); downloadImageToView(cursor.getString(COL_AWAY_CREST), mHolder.away_crest, context); // Log.v(FetchScoreTask.LOG_TAG,mHolder.home_name.getText() + " Vs. " + // mHolder.away_name.getText() +" id " + String.valueOf(mHolder.match_id)); // Log.v(FetchScoreTask.LOG_TAG,String.valueOf(detail_match_id)); LayoutInflater vi = (LayoutInflater) context.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = vi.inflate(R.layout.detail_fragment, null); ViewGroup container = (ViewGroup) view.findViewById(R.id.details_fragment_container); if (mHolder.match_id == detail_match_id) { // Log.v(FetchScoreTask.LOG_TAG,"will insert extraView"); container.addView( v, 0, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); TextView match_day = (TextView) v.findViewById(R.id.matchday_textview); match_day.setText("Matchday : " + cursor.getInt(COL_MATCHDAY)); TextView league = (TextView) v.findViewById(R.id.league_textview); league.setText(cursor.getString(COL_LEAGUE)); Button share_button = (Button) v.findViewById(R.id.share_button); share_button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // add Share Action context.startActivity( createShareForecastIntent( mHolder.home_name.getText() + " " + mHolder.score.getText() + " " + mHolder.away_name.getText() + " ")); } }); } else { container.removeAllViews(); } }