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