Subversion Repositories AndroidProjects

Rev

Rev 347 | Rev 351 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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;
        }

}