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
* //www.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.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.net.Uri;
import android.widget.RemoteViews;
publicclass BikeWidgetProvider extends AbstractWidgetProvider {
publicstaticfinal String SCHEME = "bikeWidget";
publicstaticfinal String RESET = "fr.gotorennes.bikeWidget.RESET";
@Override
protected RemoteViews updateRemoteViews(Context context, int appWidgetId) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.bike_appwidget);
SharedPreferences prefs = context.getSharedPreferences("fr.gotorennes.BikeWidget", 0);
int timeLeft = prefs.getInt("timeLeft" + appWidgetId, -1);
if (timeLeft > 0) {
timeLeft--;
if (timeLeft <= 5) {
views.setTextColor(R.id.timeLeft, Color.parseColor("#DB0000"));
} else {
views.setTextColor(R.id.timeLeft, Color.LTGRAY);
}
prefs.edit().putInt("timeLeft" + appWidgetId, timeLeft).commit();
views.setTextViewText(R.id.timeLeft, String.valueOf(timeLeft) + " min");
} else {
if (timeLeft == -1) {
views.setTextViewText(R.id.timeLeft, "--");
views.setTextColor(R.id.timeLeft, Color.LTGRAY);
}
stopAlarm(context, appWidgetId);
}
Intent intentClock = new Intent(context, ClockActivity.class);
intentClock.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intentClock.setData(Uri.withAppendedPath(Uri.parse(SCHEME + "://widget/id/"), String.valueOf(appWidgetId)));
PendingIntent pi = PendingIntent.getActivity(context, 0, intentClock, PendingIntent.FLAG_CANCEL_CURRENT);
views.setOnClickPendingIntent(R.id.timeLeft, pi);
Intent intentLock = new Intent(context, CadenasActivity.class);
intentLock.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intentLock.setData(Uri.withAppendedPath(Uri.parse(SCHEME + "://widget/id/"), String.valueOf(appWidgetId)));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentLock, PendingIntent.FLAG_CANCEL_CURRENT);
views.setOnClickPendingIntent(R.id.lock, pendingIntent);
return views;
}
@Override
publicvoid onReceive(Context context, Intent intent) {
if(RESET.equals(intent.getAction())) {
int widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
restartAlarm(context, widgetId);
}
super.onReceive(context, intent);
}
@Override
protected String getScheme() {
return SCHEME;
}
@Override
protectedint scheduleInMinutes() {
return 1;
}
}