aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/lockclock/preference/Preferences.java
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2013-03-03 09:49:16 -0500
committerDvTonder <david.vantonder@gmail.com>2013-03-04 21:01:40 -0500
commit94f334d9f0375de617faa5f3124fed2fa4676086 (patch)
tree8593508b04dae67cad142de9e700e407a0ee8a17 /src/com/cyanogenmod/lockclock/preference/Preferences.java
parent07dd6dd6146ea638d25d7ed4834aa0028b7e1463 (diff)
downloadandroid_packages_apps_LockClock-94f334d9f0375de617faa5f3124fed2fa4676086.tar.gz
android_packages_apps_LockClock-94f334d9f0375de617faa5f3124fed2fa4676086.tar.bz2
android_packages_apps_LockClock-94f334d9f0375de617faa5f3124fed2fa4676086.zip
cLock: Launch configuration when adding the widget
This commit adds the ability to launch the configurator when adding a widget. Change-Id: I3e27b056a57057c6466243fdf6b97c509f1dbbdc
Diffstat (limited to 'src/com/cyanogenmod/lockclock/preference/Preferences.java')
-rw-r--r--src/com/cyanogenmod/lockclock/preference/Preferences.java61
1 files changed, 29 insertions, 32 deletions
diff --git a/src/com/cyanogenmod/lockclock/preference/Preferences.java b/src/com/cyanogenmod/lockclock/preference/Preferences.java
index 4d55f28..0c6dd08 100644
--- a/src/com/cyanogenmod/lockclock/preference/Preferences.java
+++ b/src/com/cyanogenmod/lockclock/preference/Preferences.java
@@ -16,10 +16,10 @@
package com.cyanogenmod.lockclock.preference;
+import android.appwidget.AppWidgetManager;
import android.content.Context;
-import android.os.Bundle;
+import android.content.Intent;
import android.preference.PreferenceActivity;
-import android.preference.PreferenceFragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -30,17 +30,43 @@ import android.widget.ListAdapter;
import android.widget.TextView;
import com.cyanogenmod.lockclock.R;
-import com.cyanogenmod.lockclock.misc.Constants;
import java.util.List;
public class Preferences extends PreferenceActivity {
+ // only used when adding a new widget
+ private int mNewWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
+
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preferences_headers, target);
+ // Load the beaders
updateHeaders(target);
+
+ // Check if triggered from adding a new widget
+ Intent intent = getIntent();
+ if (intent != null
+ && AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(intent.getAction())) {
+ mNewWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mNewWidgetId);
+ // See http://code.google.com/p/android/issues/detail?id=2539
+ myResult(RESULT_CANCELED);
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ // If launched from the configure intent, signal RESULT_OK
+ if (mNewWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
+ myResult(RESULT_OK);
+ }
+
+ super.onBackPressed();
+ }
+
+ private void myResult(int result) {
+ setResult(result, new Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mNewWidgetId));
}
private void updateHeaders(List<Header> headers) {
@@ -60,38 +86,9 @@ public class Preferences extends PreferenceActivity {
}
}
- public static class ClockFragment extends PreferenceFragment {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- addPreferencesFromResource(R.xml.preferences_clock);
-
- }
- }
-
- public static class WeatherFragment extends PreferenceFragment {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- addPreferencesFromResource(R.xml.preferences_weather);
- }
- }
-
- public static class CalendarFragment extends PreferenceFragment {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- addPreferencesFromResource(R.xml.preferences_calendar);
- }
- }
-
private static class HeaderAdapter extends ArrayAdapter<Header> {
private static final int HEADER_TYPE_NORMAL = 0;
private static final int HEADER_TYPE_CATEGORY = 1;
-
private static final int HEADER_TYPE_COUNT = HEADER_TYPE_CATEGORY + 1;
private static class HeaderViewHolder {