diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java index 291bb9cae..61c53e764 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java @@ -387,7 +387,7 @@ public class EditPeopleControlSet extends PopupControlSet { for (AssignedChangedListener l : listeners) { if (l.shouldShowTaskRabbit()) { - taskRabbitUser = new AssignedToUser(activity.getString(R.string.actfm_EPA_task_rabbit), new JSONObject()); + taskRabbitUser = new AssignedToUser(activity.getString(R.string.actfm_EPA_task_rabbit), new JSONObject().put("default_picture", R.drawable.task_rabbit_image)); listValues.add(taskRabbitUser); } } @@ -433,6 +433,9 @@ public class EditPeopleControlSet extends PopupControlSet { } else { image.setUrl(getItem(position).user.optString("picture")); } + if (getItem(position).user.optInt("default_picture", 0) > 0) { + image.setDefaultImageResource(getItem(position).user.optInt("default_picture")); + } return convertView; } } diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitActivity.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitActivity.java index 191cadc20..635b3e2fc 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitActivity.java @@ -13,6 +13,7 @@ import org.json.JSONObject; import android.app.Activity; import android.app.AlertDialog; +import android.app.ProgressDialog; import android.content.ContentValues; import android.content.Context; import android.content.DialogInterface; @@ -55,6 +56,7 @@ import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.RestClient; import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.OAuthLoginActivity; import com.todoroo.astrid.activity.TaskEditFragment; @@ -75,7 +77,7 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList public interface TaskRabbitSetListener { - public void readFromModel(JSONObject json, String key); + public void readFromModel(JSONObject json, String key, int mode); public void saveToJSON(JSONObject json, String key) throws JSONException; public void writeToJSON(JSONObject json, String key) throws JSONException; } @@ -138,10 +140,10 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList public static final String TASK_RABBIT_TOKEN = "task_rabbit_token"; //$NON-NLS-1$ public static final String TASK_RABBIT_URL = "http://www.taskrabbit.com"; //$NON-NLS-1$ - // public static final String TASK_RABBIT_URL = "http://rs-astrid-api.taskrabbit.com"; //$NON-NLS-1$ public static final String TASK_RABBIT_CLIENT_ID = "RZUDrMuGn9Q3dXeq4nL24bM6LZmMCi1CEGgfP4ND"; //$NON-NLS-1$ public static final String TASK_RABBIT_CLIENT_APPLICATION_ID = "Va7FUIUTprsmyuwAq9eHSZvAgiRj8FVH1zeaM8Zt"; //$NON-NLS-1$ +// public static final String TASK_RABBIT_URL = "http://rs-astrid-api.taskrabbit.com"; //$NON-NLS-1$ // public static final String TASK_RABBIT_CLIENT_ID = "fDTmGeR0uNCvoxopNyqsRWae8xOvbOBqC7jmHaxv"; //$NON-NLS-1$ // public static final String TASK_RABBIT_CLIENT_APPLICATION_ID = "XBpKshU8utH5eaNmhky9N8aAId5rSLTh04Hi60Co"; //$NON-NLS-1$ public static final String CITY_NAME = "task_rabbit_city_name"; //$NON-NLS-1$ @@ -300,7 +302,7 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList TaskRabbitNameControlSet descriptionControlSet = new TaskRabbitNameControlSet(this, R.layout.control_set_notes, R.layout.task_rabbit_row_description, titleID, i); try { - descriptionControlSet.readFromModel(new JSONObject().put("description", model.getValue(Task.NOTES)), "description"); + descriptionControlSet.readFromModel(new JSONObject().put("description", model.getValue(Task.NOTES)), "description", currentSelectedItem); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -374,7 +376,7 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList else { taskControls.addView(((TaskEditControlSet)set).getDisplayView()); } - ((TaskRabbitSetListener) set).readFromModel(parameters, getString(arrayID)); + ((TaskRabbitSetListener) set).readFromModel(parameters, getString(arrayID), currentSelectedItem); } } private JSONObject defaultValuesToJSON (TypedArray keys, int[] presetValues) { @@ -455,7 +457,7 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList } for (int i = 0; i < controls.size(); i++) { TaskRabbitSetListener set = (TaskRabbitSetListener) controls.get(i); - set.readFromModel(jsonData, keys[i]); + set.readFromModel(jsonData, keys[i], currentSelectedItem); } } } @@ -523,6 +525,7 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList return null; } + private ProgressDialog progressDialog; protected void submitTaskRabbit(){ if(!Preferences.isSet(TASK_RABBIT_TOKEN)){ @@ -531,6 +534,9 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList else { + if(progressDialog == null) + progressDialog = DialogUtilities.progressDialog(this, + getString(R.string.DLG_please_wait)); new Thread(new Runnable() { @Override public void run() { @@ -561,6 +567,16 @@ public class TaskRabbitActivity extends FragmentActivity implements LocationList failureMessage.what = -1; handler.sendMessage(failureMessage); } + finally { + + runOnUiThread(new Runnable() { + public void run() { + if (progressDialog != null) { + DialogUtilities.dismissDialog(TaskRabbitActivity.this, progressDialog); + } + } + }); + } } }).start(); diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitControlSet.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitControlSet.java index 409b2270a..312927878 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitControlSet.java @@ -66,12 +66,6 @@ public class TaskRabbitControlSet extends TaskEditControlSet implements Assigned /** Act.fm current user name */ - public static final String TASK_RABBIT_TOKEN = "task_rabbit_token"; //$NON-NLS-1$ - //public static final String TASK_RABBIT_URL = "http://www.taskrabbit.com"; //$NON-NLS-1$ - public static final String TASK_RABBIT_URL = "http://rs-astrid-api.taskrabbit.com"; //$NON-NLS-1$ - public static final String TASK_RABBIT_CLIENT_ID = "fDTmGeR0uNCvoxopNyqsRWae8xOvbOBqC7jmHaxv"; //$NON-NLS-1$ - public static final String TASK_RABBIT_CLIENT_APPLICATION_ID = "XBpKshU8utH5eaNmhky9N8aAId5rSLTh04Hi60Co"; //$NON-NLS-1$ - private TaskRabbitTaskContainer taskRabbitTask; @@ -186,7 +180,7 @@ public class TaskRabbitControlSet extends TaskEditControlSet implements Assigned private String taskRabbitURL(String method) { - return TASK_RABBIT_URL + "/api/v1/"+ method; + return TaskRabbitActivity.TASK_RABBIT_URL + "/api/v1/"+ method; } @@ -207,7 +201,9 @@ public class TaskRabbitControlSet extends TaskEditControlSet implements Assigned String result = data.getStringExtra(OAuthLoginActivity.DATA_RESPONSE); if (TextUtils.isEmpty(result)) { try { - updateDisplay(new JSONObject(result)); + Message successMessage = new Message(); + successMessage.what = 1; + handler.sendMessageDelayed(successMessage, 1500); } catch (Exception e){ e.printStackTrace(); @@ -246,7 +242,7 @@ public class TaskRabbitControlSet extends TaskEditControlSet implements Assigned public void run() { try { - Log.d("Tasks url:", taskRabbitURL("tasks/" + taskID)); + Log.d("Tasks url:", taskRabbitURL("tasks/" + taskID + "?client_id=" + TaskRabbitActivity.TASK_RABBIT_CLIENT_ID)); String response = restClient.get(taskRabbitURL("tasks/" + taskID)); Log.d("Task rabbit response", response); JSONObject taskResponse = new JSONObject(response); @@ -271,7 +267,7 @@ public class TaskRabbitControlSet extends TaskEditControlSet implements Assigned } public boolean isLoggedIn() { - return !TextUtils.isEmpty(Preferences.getStringValue(TASK_RABBIT_TOKEN)); + return !TextUtils.isEmpty(Preferences.getStringValue(TaskRabbitActivity.TASK_RABBIT_TOKEN)); } @Override public boolean shouldShowTaskRabbit() { diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitDeadlineControlSet.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitDeadlineControlSet.java index 579e17f6f..2b2f4575b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitDeadlineControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitDeadlineControlSet.java @@ -46,7 +46,7 @@ public class TaskRabbitDeadlineControlSet extends PopupControlSet implements Tas @Override protected void refreshDisplayView() { TextView dateDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit); - String toDisplay = dateAndTimePicker.getDisplayString(activity); + String toDisplay = dateAndTimePicker.getDisplayString(activity, false); if (dateDisplay != null) dateDisplay.setText(toDisplay); } @@ -64,7 +64,7 @@ public class TaskRabbitDeadlineControlSet extends PopupControlSet implements Tas } @Override - public void readFromModel(JSONObject json, String key) { + public void readFromModel(JSONObject json, String key, int mode) { long dateValue = json.optLong(key); Date currentDate = null; diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitLocationControlSet.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitLocationControlSet.java index d9450f067..c50459455 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitLocationControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitLocationControlSet.java @@ -88,6 +88,7 @@ public class TaskRabbitLocationControlSet extends TaskEditControlSet implements location.setLongitude(locationToDouble(lng)); displayEdit.setText(getLocationText()); + getAddressFromLocation(location); Log.d("TASK RABBIT CONTROL SET FOUND CODE", "THE LAT IS: " + lat + " LNG IS: " + lng); return true; @@ -121,13 +122,13 @@ public class TaskRabbitLocationControlSet extends TaskEditControlSet implements } private void updateAddress(Address address){ if(address.getLocality() != null && address.getPostalCode() != null){ - locationName = (address.getLocality() + ", " + address.getPostalCode()); + locationName += "\n"+ (address.getLocality() + ", " + address.getPostalCode()); // currentAddress = address; } } @Override - public void readFromModel(JSONObject json, String key) { + public void readFromModel(JSONObject json, String key, int mode) { parseTaskLocation(json.optJSONObject(key)); displayEdit.setText(getLocationText()); } @@ -189,6 +190,7 @@ public class TaskRabbitLocationControlSet extends TaskEditControlSet implements + //don't need these @Override public void readFromTask(Task task) { diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitNameControlSet.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitNameControlSet.java index fd18b01e9..7f484d642 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitNameControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitNameControlSet.java @@ -114,7 +114,7 @@ public class TaskRabbitNameControlSet extends PopupControlSet implements TaskRab } @Override - public void readFromModel(JSONObject json, String key) { + public void readFromModel(JSONObject json, String key, int mode) { if (json.optInt(key, -1) == 0) { editText.setHint(displayText.getText().toString()); return; diff --git a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitSpinnerControlSet.java b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitSpinnerControlSet.java index f5486f337..1c4e8d925 100644 --- a/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitSpinnerControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/taskrabbit/TaskRabbitSpinnerControlSet.java @@ -131,14 +131,14 @@ public class TaskRabbitSpinnerControlSet extends TaskEditControlSet implements T } @Override - public void readFromModel(JSONObject json, String key) { + public void readFromModel(JSONObject json, String key, int mode) { - if (titleID == R.string.tr_set_named_price && json.has(activity.getString(R.string.tr_set_key_type))){ - String[] listTypes = getStringDefaultArray(json.optInt(activity.getString(R.string.tr_set_key_type), 0), R.array.tr_default_price_type_array); + if (titleID == R.string.tr_set_named_price){ + String[] listTypes = getStringDefaultArray(mode, R.array.tr_default_price_type_array); resetAdapter(listTypes); } - else if (titleID == R.string.tr_set_skill_required && json.has(activity.getString(R.string.tr_set_key_type))){ - String[] listTypes = getStringDefaultArray(json.optInt(activity.getString(R.string.tr_set_key_type), 0), R.array.tr_default_skill_type_array); + else if (titleID == R.string.tr_set_skill_required){ + String[] listTypes = getStringDefaultArray(mode, R.array.tr_default_skill_type_array); resetAdapter(listTypes); } int intValue = json.optInt(key, 0); @@ -147,8 +147,6 @@ public class TaskRabbitSpinnerControlSet extends TaskEditControlSet implements T if (intValue < spinner.getCount()) { spinner.setSelection(intValue); displayEdit.setText(getDisplayEditText()); - - } Log.d("dfhjskhfds", ""+intValue); } @@ -180,10 +178,13 @@ public class TaskRabbitSpinnerControlSet extends TaskEditControlSet implements T if(spinner.getSelectedItem() != null){ String spinnerString = spinner.getSelectedItem().toString(); - if (titleID == R.string.tr_set_cost_in_cents || titleID == R.string.tr_set_named_price) { + if (titleID == R.string.tr_set_cost_in_cents) { int cents = parseToDollars(spinnerString) *100; json.put(key, cents); } + else if (titleID == R.string.tr_set_named_price) { + json.put(key, parseToDollars(spinnerString)); + } else if (key.contains("description")) { String description = json.optString("description", ""); description += String.format("\n%S %S", key, spinner.getSelectedItem().toString()); //$NON-NLS-1$ diff --git a/astrid/res/values/keys-taskrabbit.xml b/astrid/res/values/keys-taskrabbit.xml index c213a3b83..7e82251a5 100644 --- a/astrid/res/values/keys-taskrabbit.xml +++ b/astrid/res/values/keys-taskrabbit.xml @@ -43,7 +43,7 @@ -1 -1 - 4 + 0 1 -1 10 @@ -103,7 +103,7 @@ -1 0 - 2 + 0 -1 -1 10 @@ -235,7 +235,7 @@ @array/tr_default_skill_virtual @array/tr_default_named_price - @array/tr_type_default_price_cleaning + @array/tr_default_named_price @array/tr_default_named_price @array/tr_default_named_price @array/tr_default_skill_handyman @@ -245,6 +245,7 @@ + @string/tr_default_skill_none @string/tr_default_skill_research @string/tr_default_skill_phone_calls @string/tr_default_skill_event_planning @@ -253,17 +254,18 @@ @string/tr_default_skill_help @string/tr_default_skill_ebay_help + - @string/tr_default_skill_research - @string/tr_default_skill_phone_calls - @string/tr_default_skill_event_planning - @string/tr_default_skill_usability_testing - @string/tr_default_skill_craigslist - @string/tr_default_skill_help - @string/tr_default_skill_ebay_help + @string/tr_default_skill_none + @string/tr_default_skill_carpentry + @string/tr_default_skill_assembly_repair + @string/tr_default_skill_plumbing + @string/tr_default_skill_ikea_assembly + @string/tr_default_skill_heavy_lifting + None Research Phone Calls Event Planning diff --git a/astrid/src/com/todoroo/astrid/ui/WebServicesView.java b/astrid/src/com/todoroo/astrid/ui/WebServicesView.java index 8117d639e..1e165737d 100644 --- a/astrid/src/com/todoroo/astrid/ui/WebServicesView.java +++ b/astrid/src/com/todoroo/astrid/ui/WebServicesView.java @@ -29,6 +29,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.HorizontalScrollView; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; @@ -114,11 +115,14 @@ public class WebServicesView extends LinearLayout { removeAllViews(); + initializeTaskRabbit(); + initializeAmazon(); addSectionDivider(); initializeGoogleSearch(); + } protected void initializeAmazon() { @@ -394,6 +398,33 @@ public class WebServicesView extends LinearLayout { } } + + /** + * Initialize Google search results + */ + protected void initializeTaskRabbit() { + addSectionHeader("Task Rabbit"); + + final LinearLayout body = new LinearLayout(activity); + body.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, + LayoutParams.WRAP_CONTENT)); + body.setOrientation(LinearLayout.VERTICAL); + + + ImageView imageView = new ImageView(getContext()); + imageView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, + LayoutParams.WRAP_CONTENT)); + imageView.setImageResource(R.drawable.task_rabbit_logo); + body.addView(imageView); + + body.setVisibility(View.GONE); + + if (body.getVisibility() == View.VISIBLE){ + addSectionDivider(); + } + + } + protected View inflateRow(ViewGroup body, String imageUrl, String title, String subtitle, String tag) { View view = inflater.inflate(R.layout.web_service_row, body, false);