From 3c760480dad2e56cb141baf677f4f0a6aa557728 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 10 Aug 2011 20:33:29 -0700 Subject: [PATCH] Gtasks add list button works again --- astrid/AndroidManifest.xml | 1 + .../astrid/gtasks/GtasksListAdder.java | 83 ++++++++++++------- astrid/res/values/strings-gtasks.xml | 3 + 3 files changed, 57 insertions(+), 30 deletions(-) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 1b65dde45..ec3ab3d5b 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -351,6 +351,7 @@ + diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java index 802e49ee2..d56eb2444 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListAdder.java @@ -3,7 +3,9 @@ package com.todoroo.astrid.gtasks; import java.io.IOException; import android.app.Activity; +import android.app.ProgressDialog; import android.content.DialogInterface; +import android.os.Bundle; import android.text.TextUtils; import android.widget.EditText; import android.widget.FrameLayout; @@ -17,12 +19,18 @@ import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.gtasks.api.GtasksService; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; -public class GtasksListAdder { +public class GtasksListAdder extends Activity { @Autowired GtasksPreferenceService gtasksPreferenceService; @Autowired GtasksListService gtasksListService; - public void showNewListDialog(final Activity activity) { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + showNewListDialog(this); + } + + private void showNewListDialog(final Activity activity) { DependencyInjectionService.getInstance().inject(this); FrameLayout frame = new FrameLayout(activity); @@ -30,36 +38,51 @@ public class GtasksListAdder { frame.addView(editText); frame.setPadding(10, 0, 10, 0); - DialogUtilities.viewDialog(activity, - activity.getString(R.string.gtasks_FEx_create_list_dialog), - frame, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (gtasksPreferenceService.isLoggedIn() && ! gtasksPreferenceService.isOngoing()) { - new Thread(new Runnable() { - @Override - public void run() { - String token = gtasksPreferenceService.getToken(); - token = GtasksTokenValidator.validateAuthToken(token); - GtasksService service = new GtasksService(token); - try { - String title = editText.getText().toString(); - if (TextUtils.isEmpty(title)) //Don't create a list without a title - return; - StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title)); - if (newList != null) { - FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(activity, newList); - listFilter.start(activity); - } - - } catch (IOException e) { - DialogUtilities.okDialog(activity, activity.getString(R.string.gtasks_FEx_create_list_error), null); - } + DialogInterface.OnClickListener onClick = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if (gtasksPreferenceService.isLoggedIn() && ! gtasksPreferenceService.isOngoing()) { + final ProgressDialog pd = DialogUtilities.progressDialog(GtasksListAdder.this, + GtasksListAdder.this.getString(R.string.gtasks_FEx_creating_list)); + pd.show(); + new Thread(new Runnable() { + @Override + public void run() { + String token = gtasksPreferenceService.getToken(); + token = GtasksTokenValidator.validateAuthToken(token); + GtasksService service = new GtasksService(token); + try { + String title = editText.getText().toString(); + if (TextUtils.isEmpty(title)) //Don't create a list without a title + return; + StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title)); + if (newList != null) { + FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(activity, newList); + listFilter.start(activity); } - }).start(); + + } catch (IOException e) { + DialogUtilities.okDialog(activity, activity.getString(R.string.gtasks_FEx_create_list_error), null); + } finally { + pd.dismiss(); + finish(); + } } - } - }, null); + }).start(); + } + } + }; + + DialogInterface.OnClickListener onCancel = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }; + + DialogUtilities.viewDialog(activity, + activity.getString(R.string.gtasks_FEx_create_list_dialog), + frame, onClick, onCancel); } } diff --git a/astrid/res/values/strings-gtasks.xml b/astrid/res/values/strings-gtasks.xml index 746020d1d..f2301dd3d 100644 --- a/astrid/res/values/strings-gtasks.xml +++ b/astrid/res/values/strings-gtasks.xml @@ -13,6 +13,9 @@ Google Tasks: %s + + Creating list... + New List Name: