aboutsummaryrefslogtreecommitdiffstats
path: root/templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl
diff options
context:
space:
mode:
Diffstat (limited to 'templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl')
-rw-r--r--templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl102
1 files changed, 102 insertions, 0 deletions
diff --git a/templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl b/templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl
new file mode 100644
index 0000000..3c2be67
--- /dev/null
+++ b/templates/other/AppWidget/root/src/app_package/AppWidgetConfigureActivity.java.ftl
@@ -0,0 +1,102 @@
+package ${packageName};
+
+import android.app.Activity;
+import android.appwidget.AppWidgetManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+
+/**
+ * The configuration screen for the {@link ${className} ${className}} AppWidget.
+ */
+public class ${className}ConfigureActivity extends Activity {
+
+ int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
+ EditText mAppWidgetText;
+ private static final String PREFS_NAME = "${packageName}.${className}";
+ private static final String PREF_PREFIX_KEY = "appwidget_";
+
+ public ${className}ConfigureActivity() {
+ super();
+ }
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ // Set the result to CANCELED. This will cause the widget host to cancel
+ // out of the widget placement if the user presses the back button.
+ setResult(RESULT_CANCELED);
+
+ setContentView(R.layout.${class_name}_configure);
+ mAppWidgetText = (EditText)findViewById(R.id.appwidget_text);
+ findViewById(R.id.add_button).setOnClickListener(mOnClickListener);
+
+ // Find the widget id from the intent.
+ Intent intent = getIntent();
+ Bundle extras = intent.getExtras();
+ if (extras != null) {
+ mAppWidgetId = extras.getInt(
+ AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
+ }
+
+ // If this activity was started with an intent without an app widget ID, finish with an error.
+ if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+ finish();
+ return;
+ }
+
+ mAppWidgetText.setText(loadTitlePref(${className}ConfigureActivity.this, mAppWidgetId));
+ }
+
+ View.OnClickListener mOnClickListener = new View.OnClickListener() {
+ public void onClick(View v) {
+ final Context context = ${className}ConfigureActivity.this;
+
+ // When the button is clicked, store the string locally
+ String widgetText = mAppWidgetText.getText().toString();
+ saveTitlePref(context,mAppWidgetId,widgetText);
+
+ // It is the responsibility of the configuration activity to update the app widget
+ AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
+ ${className}.updateAppWidget(context, appWidgetManager, mAppWidgetId);
+
+ // Make sure we pass back the original appWidgetId
+ Intent resultValue = new Intent();
+ resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
+ setResult(RESULT_OK, resultValue);
+ finish();
+ }
+ };
+
+ // Write the prefix to the SharedPreferences object for this widget
+ static void saveTitlePref(Context context, int appWidgetId, String text) {
+ SharedPreferences.Editor prefs = context.getSharedPreferences(PREFS_NAME, 0).edit();
+ prefs.putString(PREF_PREFIX_KEY + appWidgetId, text);
+ prefs.commit();
+ }
+
+ // Read the prefix from the SharedPreferences object for this widget.
+ // If there is no preference saved, get the default from a resource
+ static String loadTitlePref(Context context, int appWidgetId) {
+ SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, 0);
+ String titleValue = prefs.getString(PREF_PREFIX_KEY + appWidgetId, null);
+ if (titleValue != null) {
+ return titleValue;
+ } else {
+ return context.getString(R.string.appwidget_text);
+ }
+ }
+
+ static void deleteTitlePref(Context context, int appWidgetId) {
+ SharedPreferences.Editor prefs = context.getSharedPreferences(PREFS_NAME, 0).edit();
+ prefs.remove(PREF_PREFIX_KEY + appWidgetId);
+ prefs.commit();
+ }
+}
+
+
+