If you think the Android project Go2-Rennes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*******************************************************************************
* Copyright (c) 2011 Michel DAVID mimah35-at-gmail.com
* /*fromwww.java2s.com*/
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/package fr.gotorennes;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.AsyncTask;
import android.widget.RemoteViews;
import fr.gotorennes.domain.BikeStation;
import fr.gotorennes.remote.BikeStationService;
publicclass BikeStationWidgetProvider extends AbstractWidgetProvider {
publicstaticfinal String SCHEME = "bikeStationWidget";
@Override
protected RemoteViews updateRemoteViews(final Context context, finalint appWidgetId) {
final BikeStationService bikeStationService = BikeStationService.getInstance(context);
final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.bikestation_appwidget);
SharedPreferences prefs = context.getSharedPreferences("fr.gotorennes.BikeStationWidget", 0);
String stationId = prefs.getString("stationId" + appWidgetId, null);
if (stationId != null) {
AsyncTask<String, Void, BikeStation> task = new AsyncTask<String, Void, BikeStation>() {
@Override
protected BikeStation doInBackground(String... stationId) {
return bikeStationService.getBikeStation(stationId[0]);
}
@Override
protectedvoid onPostExecute(BikeStation bikeStation) {
if (bikeStation != null) {
views.setTextViewText(R.id.bikeStationName, bikeStation.name);
views.setTextViewText(R.id.availableBikes, String.valueOf(bikeStation.bikesAvailable));
views.setTextColor(R.id.availableBikes, bikeStation.getBikeColor());
views.setTextViewText(R.id.availableSlots, String.valueOf(bikeStation.slotsAvailable));
views.setTextColor(R.id.availableSlots, bikeStation.getSlotColor());
Intent intent = new Intent(context, BikeStationActivity.class);
intent.putExtra("bikeStation", bikeStation);
intent.setData(Uri.withAppendedPath(Uri.parse(SCHEME + "://widget/id/"), String.valueOf(appWidgetId)));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
views.setOnClickPendingIntent(R.id.widget, pendingIntent);
//Update the widget
ComponentName thisWidget = new ComponentName(context, BikeStationWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
}
}
};
task.execute(stationId);
}
return views;
}
@Override
protected String getScheme() {
return SCHEME;
}
@Override
protectedint scheduleInMinutes() {
return 5;
}
}