diff --git a/HelloWidget/.classpath b/HelloWidget/.classpath
new file mode 100644
index 0000000..6e9239f
--- /dev/null
+++ b/HelloWidget/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/HelloWidget/.project b/HelloWidget/.project
new file mode 100644
index 0000000..0714ca6
--- /dev/null
+++ b/HelloWidget/.project
@@ -0,0 +1,33 @@
+
+
+ HelloWidget
+
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/HelloWidget/AndroidManifest.xml b/HelloWidget/AndroidManifest.xml
new file mode 100644
index 0000000..59e9510
--- /dev/null
+++ b/HelloWidget/AndroidManifest.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HelloWidget/bin/HelloWidget.apk b/HelloWidget/bin/HelloWidget.apk
new file mode 100644
index 0000000..0a6c600
Binary files /dev/null and b/HelloWidget/bin/HelloWidget.apk differ
diff --git a/HelloWidget/bin/classes.dex b/HelloWidget/bin/classes.dex
new file mode 100644
index 0000000..65da62c
Binary files /dev/null and b/HelloWidget/bin/classes.dex differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/HelloWidget$MyTime.class b/HelloWidget/bin/de/thesmile/android/widget/HelloWidget$MyTime.class
new file mode 100644
index 0000000..aa90205
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/HelloWidget$MyTime.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/HelloWidget.class b/HelloWidget/bin/de/thesmile/android/widget/HelloWidget.class
new file mode 100644
index 0000000..28cdba4
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/HelloWidget.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$attr.class b/HelloWidget/bin/de/thesmile/android/widget/R$attr.class
new file mode 100644
index 0000000..755278b
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$attr.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$drawable.class b/HelloWidget/bin/de/thesmile/android/widget/R$drawable.class
new file mode 100644
index 0000000..2ca98ec
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$drawable.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$id.class b/HelloWidget/bin/de/thesmile/android/widget/R$id.class
new file mode 100644
index 0000000..e9a92af
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$id.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$layout.class b/HelloWidget/bin/de/thesmile/android/widget/R$layout.class
new file mode 100644
index 0000000..ec9fed9
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$layout.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$string.class b/HelloWidget/bin/de/thesmile/android/widget/R$string.class
new file mode 100644
index 0000000..c15dcb4
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$string.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R$xml.class b/HelloWidget/bin/de/thesmile/android/widget/R$xml.class
new file mode 100644
index 0000000..0cd6913
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R$xml.class differ
diff --git a/HelloWidget/bin/de/thesmile/android/widget/R.class b/HelloWidget/bin/de/thesmile/android/widget/R.class
new file mode 100644
index 0000000..ba1cfe2
Binary files /dev/null and b/HelloWidget/bin/de/thesmile/android/widget/R.class differ
diff --git a/HelloWidget/bin/resources.ap_ b/HelloWidget/bin/resources.ap_
new file mode 100644
index 0000000..6c33970
Binary files /dev/null and b/HelloWidget/bin/resources.ap_ differ
diff --git a/HelloWidget/default.properties b/HelloWidget/default.properties
new file mode 100644
index 0000000..4513a1e
--- /dev/null
+++ b/HelloWidget/default.properties
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-3
diff --git a/HelloWidget/res/drawable/icon.png b/HelloWidget/res/drawable/icon.png
new file mode 100644
index 0000000..7502484
Binary files /dev/null and b/HelloWidget/res/drawable/icon.png differ
diff --git a/HelloWidget/res/drawable/widget_bg_normal.9.png b/HelloWidget/res/drawable/widget_bg_normal.9.png
new file mode 100644
index 0000000..314eb8e
Binary files /dev/null and b/HelloWidget/res/drawable/widget_bg_normal.9.png differ
diff --git a/HelloWidget/res/layout/main.xml b/HelloWidget/res/layout/main.xml
new file mode 100644
index 0000000..e54f6ec
--- /dev/null
+++ b/HelloWidget/res/layout/main.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/HelloWidget/res/values/strings.xml b/HelloWidget/res/values/strings.xml
new file mode 100644
index 0000000..bce2701
--- /dev/null
+++ b/HelloWidget/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+
+ Hello Widget!
+ Hello Widget
+
diff --git a/HelloWidget/res/xml/hello_widget_provider.xml b/HelloWidget/res/xml/hello_widget_provider.xml
new file mode 100644
index 0000000..5b5823b
--- /dev/null
+++ b/HelloWidget/res/xml/hello_widget_provider.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/HelloWidget/src/de/thesmile/android/widget/HelloWidget.java b/HelloWidget/src/de/thesmile/android/widget/HelloWidget.java
new file mode 100644
index 0000000..865832e
--- /dev/null
+++ b/HelloWidget/src/de/thesmile/android/widget/HelloWidget.java
@@ -0,0 +1,78 @@
+package de.thesmile.android.widget;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import android.appwidget.AppWidgetManager;
+import android.appwidget.AppWidgetProvider;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.widget.RemoteViews;
+import android.widget.Toast;
+
+public class HelloWidget extends AppWidgetProvider {
+
+ private Date currentTime;
+
+ @Override
+ public void onUpdate(Context context, AppWidgetManager appWidgetManager,
+ int[] appWidgetIds) {
+ Toast.makeText(context, "onUpdate", Toast.LENGTH_SHORT).show();
+
+ Timer timer = new Timer();
+ timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
+
+ super.onUpdate(context, appWidgetManager, appWidgetIds);
+ }
+
+ private class MyTime extends TimerTask {
+
+ RemoteViews remoteViews;
+ AppWidgetManager appWidgetManager;
+ ComponentName thisWidget;
+ DateFormat format = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM, Locale.getDefault());
+
+ public MyTime(Context context, AppWidgetManager appWidgetManager) {
+ this.appWidgetManager = appWidgetManager;
+ remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
+ thisWidget = new ComponentName(context, HelloWidget.class);
+ }
+
+ @Override
+ public void run() {
+ currentTime = new Date();
+
+ remoteViews.setTextViewText(R.id.widget_textview, "Time = " + format.format(currentTime));
+ appWidgetManager.updateAppWidget(thisWidget, remoteViews);
+ }
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+
+ // v1.5 fix that doesn't call onDelete Action
+ final String action = intent.getAction();
+ if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
+ final int appWidgetId = intent.getExtras().getInt(
+ AppWidgetManager.EXTRA_APPWIDGET_ID,
+ AppWidgetManager.INVALID_APPWIDGET_ID);
+ if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
+ this.onDeleted(context, new int[] { appWidgetId });
+ }
+ } else {
+ super.onReceive(context, intent);
+ }
+ }
+
+ @Override
+ public void onDeleted(Context context, int[] appWidgetIds) {
+ Toast.makeText(context, "onDelete", Toast.LENGTH_SHORT).show();
+ super.onDeleted(context, appWidgetIds);
+ }
+
+}