package com.gebauz.minimalistclock;
import java.util.Calendar;
import java.util.Random;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
public class MinimalistClockWidgetProvider
extends AppWidgetProvider
{
private static final String ACTION_CLICK =
"ACTION_CLICK";
public static String MY_WIDGET_UPDATE =
"MY_OWN_WIDGET_UPDATE";
public static AlarmManager mAlarmManager =
null;
public static PendingIntent mPendingIntent =
null;
@
Override
public void onReceive
(Context context, Intent intent
)
{
super.
onReceive(context, intent
);
if (MY_WIDGET_UPDATE.
equals(intent.
getAction()))
{
//Toast.makeText(context, "onReceiver()", Toast.LENGTH_LONG).show();
Bundle extras = intent.
getExtras();
if(extras
!=
null)
{
AppWidgetManager appWidgetManager = AppWidgetManager.
getInstance(context
);
ComponentName thisAppWidget =
new ComponentName
(context.
getPackageName(), MinimalistClockWidgetProvider.
class.
getName());
int[] appWidgetIds = appWidgetManager.
getAppWidgetIds(thisAppWidget
);
onUpdate
(context, appWidgetManager, appWidgetIds
);
}
}
}
@
Override
public void onDeleted
(Context context,
int[] appWidgetIds
)
{
//super.onDeleted(context, appWidgetIds);
Toast.
makeText(context,
"onDeleted()", Toast.
LENGTH_LONG).
show();
}
@
Override
public void onDisabled
(Context context
)
{
//super.onDisabled(context);
if (mAlarmManager
!=
null)
{
mAlarmManager.
cancel(mPendingIntent
);
}
Toast.
makeText(context,
"onDisabled()", Toast.
LENGTH_LONG).
show();
}
@
Override
public void onEnabled
(Context context
)
{
// TODO Auto-generated method stub
//super.onEnabled(context);
Toast.
makeText(context,
"onEnabled()", Toast.
LENGTH_LONG).
show();
//RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
}
@
Override
public void onUpdate
(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds
)
{
// TODO Auto-generated method stub
super.
onUpdate(context, appWidgetManager, appWidgetIds
);
final int N = appWidgetIds.
length;
for (int i=
0; i
<N
; i++
)
{
int appWidgetId = appWidgetIds
[i
];
updateAppWidget
(context, appWidgetManager, appWidgetId
);
//Toast.makeText(context, "onUpdate(): " + String.valueOf(i) + " : " + String.valueOf(appWidgetId), Toast.LENGTH_LONG).show();
}
}
public static void updateAppWidget
(Context context, AppWidgetManager appWidgetManager,
int appWidgetId
)
{
// Create some random data
int number =
(new Random().
nextInt(100));
RemoteViews remoteViews =
new RemoteViews
(context.
getPackageName(), R.
layout.
widget_layout);
Log.
w("WidgetExample",
String.
valueOf(number
));
// Set the text
Calendar cal =
Calendar.
getInstance();
int hours = cal.
get(Calendar.
HOUR);
int minutes = cal.
get(Calendar.
MINUTE);
int seconds = cal.
get(Calendar.
SECOND);
remoteViews.
setTextViewText(R.
id.
update,
String.
valueOf(hours
) +
":" +
String.
valueOf(minutes
) +
":" +
String.
valueOf(seconds
));
// Register an onClickListener
//Intent intent = new Intent(context, MinimalistClockWidgetProvider.class);
//intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
//intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
//PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
//remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
appWidgetManager.
updateAppWidget(appWidgetId, remoteViews
);
/* String currentTime = formatter.format(new Date());
strWidgetText = currentTime;
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.hellowidget_layout);
updateViews.setTextViewText(R.id.widgettext, "[" + String.valueOf(appWidgetId) + "]" + strWidgetText);
appWidgetManager.updateAppWidget(appWidgetId, updateViews);*/
//Toast.makeText(context, "updateAppWidget(): " + String.valueOf(appWidgetId) + "\n"/* + strWidgetText*/, Toast.LENGTH_LONG).show();
}
public static void SaveAlarmManager
(AlarmManager alarmManager, PendingIntent pendingIntent
)
{
mAlarmManager = alarmManager
;
mPendingIntent = pendingIntent
;
}
}