Merge and resolve conflicts from upstream/master

pull/14/head
Sam Bosley 13 years ago
commit fd0e5c5304

@ -151,6 +151,9 @@
<!-- Sync Label: used in menu to denote synchronization -->
<string name="SyP_label">Sync &amp; backup</string>
<!-- Sync Label: used in menu to denote synchronization -->
<string name="Sync_now_label">Sync now</string>
<!-- Sync label subtitle -->
<string name="SyP_summary">Astrid.com, Google Tasks, saved data, local backup</string>

@ -735,6 +735,7 @@ public class EditPeopleControlSet extends PopupControlSet {
} else if(userJson.optLong("id") == Task.USER_ID_UNASSIGNED) {
dirty = task.getValue(Task.USER_ID) == Task.USER_ID_UNASSIGNED ? dirty : true;
task.setValue(Task.USER_ID, Task.USER_ID_UNASSIGNED);
task.setValue(Task.USER, "{}");
} else {
String user = userJson.toString();
@ -758,7 +759,6 @@ public class EditPeopleControlSet extends PopupControlSet {
task.setValue(Task.USER_ID, userJson.optLong("id", Task.USER_ID_EMAIL));
task.setValue(Task.USER, user);
String assignedName = userJson.optString("name", userEmail);
}
JSONObject sharedWith = sharedWithContainer.parseSharedWithAndTags(activity, false);

@ -5,6 +5,8 @@
*/
package com.todoroo.astrid.actfm;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -105,7 +107,9 @@ public class TagViewFragment extends TaskListFragment {
private boolean dataLoaded = false;
private long currentId;
private long currentId = Task.USER_ID_IGNORE;
protected AtomicBoolean isBeingFiltered = new AtomicBoolean(false);
private Filter originalFilter;
@ -443,6 +447,7 @@ public class TagViewFragment extends TaskListFragment {
else
filterByAssigned.setText(getString(R.string.actfm_TVA_filtered_by_assign, displayName));
}
isBeingFiltered.set(true);
setUpTaskList();
}
}
@ -458,6 +463,7 @@ public class TagViewFragment extends TaskListFragment {
private void resetAssignedFilter() {
currentId = Task.USER_ID_IGNORE;
isBeingFiltered.set(false);
filter = originalFilter;
View filterAssigned = getView().findViewById(R.id.filter_assigned);
if (filterAssigned != null)

@ -1168,6 +1168,11 @@ public final class ActFmSyncService {
* @param done
*/
public void fetchUpdatesForTag(final TagData tagData, final boolean manual, Runnable done) {
if (tagData.getFlag(TagData.FLAGS, TagData.FLAG_FEATURED)) {
if (done != null)
done.run();
return;
}
invokeFetchList("activity", manual, null, new UpdateListItemProcessor(), done,
"updates:" + tagData.getId(), "tag_id", tagData.getValue(TagData.REMOTE_ID));

@ -58,12 +58,13 @@ public final class AlarmControlSet extends TaskEditControlSet {
@Override
protected void afterInflate() {
this.alertsContainer = (LinearLayout) getView().findViewById(R.id.alert_container);
getView().findViewById(R.id.alarms_add).setOnClickListener(new View.OnClickListener() {
View.OnClickListener addAlarmListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
addAlarm(new Date());
}
});
};
getView().findViewById(R.id.alarms_add).setOnClickListener(addAlarmListener);
pickerDialog = new DateAndTimeDialog(activity, 0);
}

@ -158,7 +158,7 @@ public class CustomFilterActivity extends FragmentActivity {
ab.setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.custom_filter_activity);
setTitle(R.string.CFA_title);
setTitle(R.string.FLA_new_filter);
listView = (ListView) findViewById(android.R.id.list);

@ -212,6 +212,7 @@ public class ModernAuthManager implements AuthManager {
}
public static String[] getAccounts(Activity activity) {
try {
GoogleAccountManager accountManager = new GoogleAccountManager(activity);
Account[] accounts = accountManager.getAccounts();
ArrayList<String> accountNames = new ArrayList<String>();
@ -219,5 +220,8 @@ public class ModernAuthManager implements AuthManager {
accountNames.add(a.name);
}
return accountNames.toArray(new String[accountNames.size()]);
} catch (Exception e) {
return new String[] {}; // Empty array on failure
}
}
}

@ -13,15 +13,12 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.ListView;
import com.commonsware.cwac.tlv.TouchListView.DropListener;
@ -228,25 +225,6 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
return (ViewHolder)((View)v.getParent()).getTag();
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = super.newView(context, cursor, parent);
view.getLayoutParams().height = Math.round(45 * metrics.density);
ViewHolder vh = (ViewHolder) view.getTag();
MarginLayoutParams rowParams = (MarginLayoutParams) vh.rowBody.getLayoutParams();
rowParams.topMargin = rowParams.bottomMargin = 0;
ViewGroup.LayoutParams pictureParams = vh.picture.getLayoutParams();
pictureParams.width = pictureParams.height = Math.round(38 * metrics.density);
pictureParams = vh.pictureBorder.getLayoutParams();
pictureParams.width = pictureParams.height = Math.round(38 * metrics.density);
return view;
}
@Override
public synchronized void setFieldContentsAndVisibility(View view) {
super.setFieldContentsAndVisibility(view);

@ -21,7 +21,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
public SubtasksTagListFragment() {
super();
helper = new AstridOrderedListFragmentHelper<TagData>(this, new SubtasksTagUpdater());
helper = new AstridOrderedListFragmentHelper<TagData>(this, new SubtasksTagUpdater(isBeingFiltered));
}
@Override

@ -1,13 +1,21 @@
package com.todoroo.astrid.subtasks;
import java.util.concurrent.atomic.AtomicBoolean;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.data.TagData;
public class SubtasksTagUpdater extends SubtasksUpdater<TagData> {
private final AtomicBoolean isBeingFiltered;
public SubtasksTagUpdater(AtomicBoolean isBeingFiltered) {
this.isBeingFiltered = isBeingFiltered;
}
@Override
protected String getSerializedTree(TagData list, Filter filter) {
if (list == null)
if (list == null || isBeingFiltered.get())
return "[]"; //$NON-NLS-1$
String order = list.getValue(TagData.TAG_ORDERING);
if (order == null || "null".equals(order)) //$NON-NLS-1$
@ -18,10 +26,19 @@ public class SubtasksTagUpdater extends SubtasksUpdater<TagData> {
@Override
protected void writeSerialization(TagData list, String serialized, boolean shouldQueueSync) {
if (!isBeingFiltered.get()) {
list.setValue(TagData.TAG_ORDERING, serialized);
tagDataService.save(list);
if (shouldQueueSync)
actFmSyncService.pushTagOrderingOnSave(list.getId());
}
}
@Override
public int getIndentForTask(long targetTaskId) {
if (isBeingFiltered.get())
return 0;
return super.getIndentForTask(targetTaskId);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

@ -3,7 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#aaa" >
android:background="#eee" >
<LinearLayout
android:layout_width="fill_parent"

@ -12,24 +12,31 @@
<TextView android:id="@+id/alarms_label"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alarm_ACS_label"
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel" />
<LinearLayout android:id="@+id/alert_container"
android:paddingLeft="5dip"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</LinearLayout>
<LinearLayout
android:id="@+id/alarms_add"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:id="@+id/alarms_add"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:text="+"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_marginTop="10dip"/>
android:gravity="center"
android:textSize="26sp"
android:textColor="?attr/asThemeTextColor"
android:layout_width="40dip"
android:layout_height="40dip"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"

@ -18,7 +18,8 @@
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_height="fill_parent"
android:layout_marginLeft="10dip">
<!-- Shared with -->
<TextView

@ -26,23 +26,23 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:text="@string/TEA_reminder_label"
android:paddingTop="10dip"
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel" />
<CheckBox
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel"
android:id="@+id/reminder_due"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:button="@drawable/btn_check_small"
android:layout_marginLeft="10dip"
android:text="@string/TEA_reminder_due" />
<CheckBox
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel"
android:id="@+id/reminder_overdue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:button="@drawable/btn_check_small"
android:layout_marginLeft="10dip"
android:text="@string/TEA_reminder_overdue" />
<LinearLayout
android:orientation="horizontal"
@ -53,8 +53,7 @@
android:id="@+id/reminder_random"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:button="@drawable/btn_check_small"
android:layout_marginLeft="10dip"
android:text="@string/TEA_reminder_randomly" />
<com.todoroo.astrid.ui.ErrorCatchingSpinner
android:id="@+id/reminder_random_interval"
@ -70,6 +69,8 @@
android:id="@+id/reminder_alarm_container"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView

@ -16,6 +16,8 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
@ -41,6 +43,8 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView

@ -3,7 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#aaa" >
android:background="#eee" >
<LinearLayout
android:layout_width="fill_parent"

@ -62,15 +62,19 @@
<!-- hidden task status -->
<View
android:id="@+id/TEA_Separator"
style="@style/TEA_Separator"
android:layout_width="fill_parent"
android:layout_height="1px" />
<TextView
style="@style/TextAppearance.GEN_EditLabel.DLG_EditLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:gravity="center"
android:textSize="20sp"
android:textColor="#ffffff"
android:text="@string/SSD_hidden_title"
android:background="@drawable/edit_titlebar"/>
android:paddingTop="10dip"
android:paddingLeft="10dip"
android:text="@string/SSD_hidden_title" />
<CheckBox android:id="@+id/hidden"
android:layout_width="fill_parent"

@ -82,11 +82,19 @@
android:id="@+id/edit_beast_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="20dip"
android:paddingBottom="10dip"
android:paddingTop="17dip"
android:paddingBottom="17dip"
android:text="@string/EPr_beastMode_shortcut"
android:textColor="?attr/asTextColor"/>
<ImageView
android:id="@+id/delete_task"
android:layout_width="20dip"
android:layout_height="20dip"
android:layout_marginBottom="10dip"
android:src="@drawable/trashcan"
android:scaleType="fitCenter"/>
</LinearLayout>
</com.todoroo.astrid.ui.NestableScrollView>

@ -90,7 +90,6 @@
<string name="share_with_facebook">Gefällt mir auf Facebook</string>
<string name="share_with_twitter">Auf Twitter folgen</string>
<string name="share_with_google">Auf Google+ teilen</string>
<string name="share_title">Erzähle es deinen Freunden!</string>
<string name="share_speech_bubble">In dem du es deinen Freunden erzählst, hilfst du Anderen produktiver zu sein.</string>
<string name="alarm_ACS_label">Alarme</string>
<string name="alarm_ACS_button">Einen Alarm hinzufügen</string>

@ -96,7 +96,6 @@
<string name="share_with_facebook">Comparte en Facebook</string>
<string name="share_with_twitter">Síguenos en Twitter</string>
<string name="share_with_google">Comparte en Google+</string>
<string name="share_title">Comparte el amor!</string>
<string name="share_speech_bubble">Compartiendo, puedes ayudar a otros a ser mas productivos!</string>
<string name="alarm_ACS_label">Alarmas</string>
<string name="alarm_ACS_button">Añadir una alarma</string>

@ -90,7 +90,6 @@
<string name="share_with_facebook">Likez sur Facebook</string>
<string name="share_with_twitter">Suivez nous sur Twitter</string>
<string name="share_with_google">Partagez sur Google+</string>
<string name="share_title">Répandez l\'amour !</string>
<string name="share_speech_bubble">Aidez les autres à être productif en partgeant Astrid !</string>
<string name="alarm_ACS_label">Alarmes</string>
<string name="alarm_ACS_button">Ajouter une alarme</string>

@ -85,7 +85,6 @@
<string name="share_with_facebook">Mi piace su Facebook</string>
<string name="share_with_twitter">Seguici su Twitter</string>
<string name="share_with_google">Condividi su Google+</string>
<string name="share_title">Condividi l\'amore!</string>
<string name="share_speech_bubble">Condividendo aiuti gli altri ad essere più produttivi!</string>
<string name="alarm_ACS_label">Promemoria</string>
<string name="alarm_ACS_button">Aggiungi un promemoria</string>

@ -96,7 +96,6 @@
<string name="share_with_facebook">페이스북에 Like 하기</string>
<string name="share_with_twitter">\'트위터에 Follow 하기</string>
<string name="share_with_google">구글+ 에 공유하기</string>
<string name="share_title">사랑을 나눠요!</string>
<string name="share_speech_bubble">공유를 통해 다른 사람이 더 생산적인 일을 하도록 도울 수 있습니다!</string>
<string name="alarm_ACS_label">알람</string>
<string name="alarm_ACS_button">알람 추가</string>

@ -85,7 +85,6 @@
<string name="share_with_facebook">Polub na Facebooku</string>
<string name="share_with_twitter">Obserwuj na Twitterze</string>
<string name="share_with_google">Udostępnij na Google+</string>
<string name="share_title">Podziel się miłością!</string>
<string name="share_speech_bubble">Dzieląc się pomagasz innym być bardziej wydajnymi!</string>
<string name="alarm_ACS_label">Alarmy</string>
<string name="alarm_ACS_button">Dodaj alarm</string>

@ -92,7 +92,6 @@
<string name="share_with_facebook">Curtir no Facebook</string>
<string name="share_with_twitter">Seguir no Twitter</string>
<string name="share_with_google">Compartilhar no Google+</string>
<string name="share_title">Compartilhe o amor!</string>
<string name="share_speech_bubble">Compartilhando, você vai ajudar a outros serem mais produtivos!</string>
<string name="alarm_ACS_label">Alarmes</string>
<string name="alarm_ACS_button">Inserir alarme</string>

@ -96,7 +96,6 @@
<string name="share_with_facebook">Поддержать на Facebook</string>
<string name="share_with_twitter">Подписаться в Twitter\'e</string>
<string name="share_with_google">Поделиться в Google+</string>
<string name="share_title">Поделитесь своей любовью!</string>
<string name="share_speech_bubble">Поделившись, вы поможете другим быть более продуктивными!</string>
<string name="alarm_ACS_label">Напоминания</string>
<string name="alarm_ACS_button">Добавить напоминание</string>

@ -94,7 +94,6 @@
<string name="share_with_facebook">Facebook\'ta Beğen</string>
<string name="share_with_twitter">Twitter ile takip et</string>
<string name="share_with_google">Google+ ile paylaş</string>
<string name="share_title">Beğeniyi paylaş!</string>
<string name="share_speech_bubble">Paylaşım ile, diğerlerinin daha verimli olmasını sağlarsınız!</string>
<string name="alarm_ACS_label">Alarmlar</string>
<string name="alarm_ACS_button">Alarm Ekle</string>

@ -89,7 +89,6 @@
<string name="share_with_facebook">在Facebook赞一个</string>
<string name="share_with_twitter">在Twitter关注我们</string>
<string name="share_with_google">在Google+分享</string>
<string name="share_title">分享您对我们的爱!</string>
<string name="share_speech_bubble">通过分享,您将会帮助其他人生活得更加有效率!</string>
<string name="alarm_ACS_label">闹钟</string>
<string name="alarm_ACS_button">添加闹钟</string>

@ -88,7 +88,6 @@
<string name="share_with_facebook">在Facebook贊一個</string>
<string name="share_with_twitter">在Twitter關注我們</string>
<string name="share_with_google">在Google+分享</string>
<string name="share_title">分享您對我們的愛!</string>
<string name="share_speech_bubble">通過分享,您將會幫助其他人生活得更加有效率!</string>
<string name="alarm_ACS_label">警示</string>
<string name="alarm_ACS_button">加入警示</string>

@ -166,7 +166,7 @@
<string name="actfm_EPA_share_with">Share with:</string>
<!-- task sharing dialog: shared with label -->
<string name="actfm_EPA_collaborators_header">Share with Friends</string>
<string name="actfm_EPA_collaborators_header">Share</string>
<!-- task sharing dialog: collaborator list name (%s => name of list) -->
<string name="actfm_EPA_list">List: %s</string>
@ -336,7 +336,6 @@
<string name="share_with_facebook">Like on Facebook</string>
<string name="share_with_twitter">Follow on Twitter</string>
<string name="share_with_google">Share on Google+</string>
<string name="share_title">Share the love!</string>
<string name="share_speech_bubble">By sharing, you\'ll help others be more productive!</string>
</resources>

@ -131,7 +131,7 @@
<!-- Menu: Tutorial -->
<!-- Menu: Settings -->
<string name="TLA_menu_settings">Account &amp; Settings</string>
<string name="TLA_menu_settings">Settings</string>
<!-- slide 30b: Menu: Support -->
<string name="TLA_menu_support">Support</string>
@ -238,7 +238,7 @@
<string name="SSD_deleted">Show deleted tasks</string>
<!-- Sort Selection: drag with subtasks -->
<string name="SSD_sort_drag">Drag &amp; drop with subtasks</string>
<string name="SSD_sort_drag">Manual order with subtasks</string>
<!-- slide 23b: Sort Selection: smart sort -->
<string name="SSD_sort_auto">Smart sort</string>
@ -348,7 +348,7 @@
<string name="TEA_estimatedDuration_label">How long will it take?</string>
<!-- Elapsed time label -->
<string name="TEA_elapsedDuration_label">Time already spent on task</string>
<string name="TEA_elapsedDuration_label">Time already spent</string>
<!-- Menu: Save -->
<string name="TEA_menu_save">Save Changes</string>
@ -625,7 +625,7 @@
<!-- slide 31g: Preference Window Title -->
<string name="EPr_title">Settings</string>
<string name="EPr_share_astrid">Tell others about Astrid</string>
<string name="EPr_share_astrid">Share Astrid</string>
<string name="EPr_share_astrid_summary">Share about Astrid on your favorite social network</string>

@ -14,7 +14,7 @@
<string name="TEA_reminders_group_label">Reminders</string>
<!-- Task Edit: Reminder header label -->
<string name="TEA_reminder_label">Remind me:</string>
<string name="TEA_reminder_label">Remind me</string>
<!-- Task Edit: Reminder @ deadline -->
<string name="TEA_reminder_due">When task is due</string>
@ -26,16 +26,16 @@
<string name="TEA_reminder_randomly">Randomly once</string>
<!-- Task Edit: Reminder alarm clock label -->
<string name="TEA_reminder_alarm_label">Ring/vibrate type:</string>
<string name="TEA_reminder_alarm_label">Ring/vibrate type</string>
<!-- slide 45a: Task Edit: Reminder mode: ring once -->
<string name="TEA_reminder_mode_once">Ring once</string>
<string name="TEA_reminder_mode_once">Once</string>
<!-- slide 45b: Task Edit: Reminder mode: ring five times -->
<string name="TEA_reminder_mode_five">Ring five times</string>
<string name="TEA_reminder_mode_five">Five times</string>
<!-- slide 45c: Task Edit: Reminder mode: ring nonstop -->
<string name="TEA_reminder_mode_nonstop">Ring until I dismiss alarm</string>
<string name="TEA_reminder_mode_nonstop">Until I dismiss alarm</string>
<string-array name="TEA_reminder_random">
<!-- random reminder choices for task edit page. -->

@ -21,7 +21,7 @@
<string name="TFE_workingOn">Tasks Being Timed</string>
<!-- Title for TEA -->
<string name="TEA_timer_controls">Timer Controls</string>
<string name="TEA_timer_controls">Timer</string>
<!-- Edit Notes: create comment for when timer is started -->

@ -264,8 +264,8 @@
<!-- generic style for labels above edit boxes -->
<style name="TextAppearance.GEN_EditLabel">
<item name="android:textSize">15sp</item>
<item name="android:textStyle">bold</item>
<!-- <item name="android:textSize">15sp</item>
<item name="android:textStyle">bold</item> -->
</style>
<style name="TextAppearance.ActionBar_ListsHeader">

@ -32,7 +32,7 @@ public class ShareActivity extends FragmentActivity {
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(R.layout.header_title_view);
((TextView) actionBar.getCustomView().findViewById(R.id.title)).setText(R.string.share_title);
((TextView) actionBar.getCustomView().findViewById(R.id.title)).setText(R.string.EPr_share_astrid);
setContentView(R.layout.share_activity);
TextView fb = (TextView) findViewById(R.id.share_facebook);

@ -78,8 +78,7 @@ public class SortSelectionActivity {
});
AlertDialog dialog = new AlertDialog.Builder(activity).
setTitle(R.string.SSD_title).
setIcon(android.R.drawable.ic_menu_sort_by_size).
setTitle(R.string.TLA_menu_sort).
setView(body).
setPositiveButton(R.string.SSD_save_always,
new DialogOkListener(body, listener, true)).

@ -179,7 +179,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
private static final int MENU_SAVE_ID = R.string.TEA_menu_save;
private static final int MENU_DISCARD_ID = R.string.TEA_menu_discard;
private static final int MENU_DELETE_ID = R.string.TEA_menu_delete;
private static final int MENU_COMMENTS_REFRESH_ID = R.string.TEA_menu_refresh_comments;
private static final int MENU_SHOW_COMMENTS_ID = R.string.TEA_menu_comments;
private static final int MENU_ATTACH_ID = R.string.premium_attach_file;
@ -620,6 +619,13 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
setupBeastModeButton();
getView().findViewById(R.id.delete_task).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
deleteButtonClick();
}
});
loadEditPageOrder(false);
// Load task data in background
@ -930,7 +936,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
try {
JSONObject assignedUser = new JSONObject(model.getValue(Task.USER));
assignedEmail = assignedUser.optString("email", ""); //$NON-NLS-1$ //$NON-NLS-2$
assignedId = assignedUser.optLong("id", Task.USER_ID_IGNORE);
assignedId = assignedUser.optLong("id", Task.USER_ID_IGNORE); //$NON-NLS-1$
} catch (JSONException e) {
//
}
@ -1190,9 +1196,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
case MENU_DISCARD_ID:
discardButtonClick();
return true;
case MENU_DELETE_ID:
deleteButtonClick();
return true;
case MENU_ATTACH_ID:
startAttachFile();
return true;
@ -1258,9 +1261,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
item = menu.add(Menu.NONE, MENU_DELETE_ID, 0, R.string.TEA_menu_delete);
item.setIcon(android.R.drawable.ic_menu_delete);
}
@Override

@ -710,6 +710,13 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
break;
}
}
if (!memberFound) {
String ownerString = td.getValue(TagData.USER);
JSONObject owner = new JSONObject(ownerString);
long ownerId = owner.optLong("id", Task.USER_ID_IGNORE); //$NON-NLS-1$
if (ownerId > 0 && assignedId == ownerId)
memberFound = true;
}
} catch (JSONException e) {
return;
}

@ -375,7 +375,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
viewHolder.details1.setTag(viewHolder);
// add UI component listeners
if (!titleOnlyLayout)
addListeners(view);
return view;
@ -397,7 +396,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
task.readFromCursor(cursor);
setFieldContentsAndVisibility(view);
if (!titleOnlyLayout)
setTaskAppearance(viewHolder, task);
}
@ -457,7 +455,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
if (titleOnlyLayout) {
setupCompleteBox(viewHolder);
return;
}
@ -1099,9 +1096,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
boolean state = task.isCompleted();
setupDueDateAndTags(viewHolder, task);
TextView name = viewHolder.nameView;
if(state) {
name.setPaintFlags(name.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
@ -1111,6 +1105,10 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
name.setTextAppearance(activity, R.style.TextAppearance_TAd_ItemTitle);
}
name.setTextSize(fontSize);
if (!titleOnlyLayout) {
setupDueDateAndTags(viewHolder, task);
float detailTextSize = Math.max(10, fontSize * 14 / 20);
if(viewHolder.details1 != null)
viewHolder.details1.setTextSize(detailTextSize);
@ -1156,6 +1154,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
}
}
}
setupCompleteBox(viewHolder);

@ -262,7 +262,7 @@ public class SyncActionHelper {
android.R.layout.simple_spinner_dropdown_item, items);
// show a menu of available options
new AlertDialog.Builder(activity).setTitle(R.string.SyP_label).setAdapter(
new AlertDialog.Builder(activity).setTitle(R.string.Sync_now_label).setAdapter(
adapter, listener).show().setOwnerActivity(activity);
}

@ -53,6 +53,7 @@ import com.todoroo.astrid.utility.Constants;
public final class UpgradeService {
public static final int V4_6_0 = 300;
public static final int V4_5_2 = 293;
public static final int V4_5_1 = 292;
public static final int V4_5_0 = 291;
public static final int V4_4_4_1 = 290;
@ -290,8 +291,15 @@ public final class UpgradeService {
Preferences.clear(AstridPreferences.P_UPGRADE_FROM);
StringBuilder changeLog = new StringBuilder();
if (from >= V4_5_0 && from < V4_5_2) {
newVersionString(changeLog, "4.5.1.1 (1/17/13)", new String[] {
"Fixed a crash that could affect some Google Tasks users",
"UI polish"
});
}
if (from >= V4_5_0 && from < V4_5_1) {
newVersionString(changeLog, "4.5.1 (1/15/13)", new String[] {
newVersionString(changeLog, "4.5.1 (1/16/13)", new String[] {
"New 'Titles only' style option for task lists (Settings > Appearance > Task row appearance)",
"Bug and crash fixes"
});

@ -38,6 +38,10 @@ public class ABTests {
if (!Constants.ASTRID_LITE && ABChooser.readChoiceForTest(AB_USE_DATE_SHORTCUTS) == ABChooser.NO_OPTION) {
Preferences.clear(context.getString(R.string.p_use_date_shortcuts));
}
if (!Constants.ASTRID_LITE && ABChooser.readChoiceForTest(AB_SIMPLE_EDIT_BOXES) == ABChooser.NO_OPTION) {
Preferences.clear(context.getString(R.string.p_simple_input_boxes));
}
}
/**
@ -145,11 +149,16 @@ public class ABTests {
public static final String AB_TITLE_ONLY = "android_title_only"; //$NON-NLS-1$
public static final String AB_SIMPLE_EDIT_BOXES = "android_simple_edit_boxes"; //$NON-NLS-1$
private void initialize() {
addTest(AB_USE_DATE_SHORTCUTS, new int[] { 1, 1 },
new int[] { 1, 9 }, new String[] { "date-shortcuts-off", "date-shortcuts-on" }, false); //$NON-NLS-1$ //$NON-NLS-2$
addTest(AB_TITLE_ONLY, new int[] { 9, 1 },
new int[] { 1, 0 }, new String[] { "default-row-style", "title-only-style" }, false); //$NON-NLS-1$//$NON-NLS-2$
addTest(AB_SIMPLE_EDIT_BOXES, new int[] { 1, 1 },
new int[] { 9, 1 }, new String[] { "default-box-style", "simple-box-style" }, false); //$NON-NLS-1$//$NON-NLS-2$
}
}

@ -143,10 +143,15 @@ public class QuickAddBar extends LinearLayout {
quickAddBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
boolean visible = !TextUtils.isEmpty(s) && quickAddBox.hasFocus();
boolean showControls = Preferences.getBoolean(R.string.p_show_quickadd_controls, true);
final boolean visible = !TextUtils.isEmpty(s) && quickAddBox.hasFocus();
final boolean showControls = Preferences.getBoolean(R.string.p_show_quickadd_controls, true);
quickAddControlsContainer.postDelayed(new Runnable() {
@Override
public void run() {
quickAddControlsContainer.setVisibility((showControls && visible) ? View.VISIBLE : View.GONE);
}
}, 10);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {/**/}

@ -121,7 +121,8 @@ public class AstridDefaultPreferenceSpec extends AstridPreferenceSpec {
setPreference(prefs, editor, r, R.string.p_use_filters, true, ifUnset);
setPreference(prefs, editor, r, R.string.p_simple_input_boxes, false, ifUnset);
setPreference(prefs, editor, r, R.string.p_simple_input_boxes,
ABChooser.readChoiceForTest(ABTests.AB_SIMPLE_EDIT_BOXES) != 0, ifUnset);
setPreference(prefs, editor, r, R.string.p_show_list_members, true, ifUnset);
setPreference(prefs, editor, r, R.string.p_rmd_social, true, ifUnset);

@ -68,6 +68,7 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider
public int fallbackLoginPage;
private final Context context;
public Account[] accounts;
public WelcomeWalkthrough parent;
@Autowired ActFmPreferenceService actFmPreferenceService;
@ -75,6 +76,14 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider
this.context = context;
DependencyInjectionService.getInstance().inject(this);
accounts = null;
try {
GoogleAccountManager am = new GoogleAccountManager(context);
accounts = am.getAccounts();
} catch (Exception e) {
//
}
if (manual) {
layouts[layouts.length - 1] = R.layout.welcome_walkthrough_page;
title[title.length - 1] = R.string.welcome_title_7_return;
@ -86,9 +95,6 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider
adjustResourcesForLite();
}
GoogleAccountManager am = new GoogleAccountManager(context);
Account[] accounts = am.getAccounts();
// Setup login page from AB tests
fallbackLoginPage = layouts[layouts.length - 1];
if (accounts != null && accounts.length > 0) { // If has google account

@ -31,7 +31,6 @@ import com.timsu.astrid.R;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.ActFmGoogleAuthActivity;
import com.todoroo.astrid.actfm.ActFmLoginActivity;
import com.todoroo.astrid.gtasks.auth.ModernAuthManager;
import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
import com.viewpagerindicator.CirclePageIndicator;
@ -39,6 +38,7 @@ import com.viewpagerindicator.CirclePageIndicator;
public class WelcomeWalkthrough extends ActFmLoginActivity {
private ViewPager mPager;
private WelcomePagerAdapter mAdapter;
private Account[] accounts;
private CirclePageIndicator mIndicator;
private View currentView;
private int currentPage;
@ -54,6 +54,7 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
mAdapter = new WelcomePagerAdapter(this, getIntent().hasExtra(TOKEN_MANUAL_SHOW));
mAdapter.parent = this;
accounts = mAdapter.accounts;
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
@ -87,10 +88,9 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
@Override
protected void initializeUI() {
String[] accounts = ModernAuthManager.getAccounts(this);
String email = null;
if (accounts != null && accounts.length > 0) {
email = accounts[0];
if (accounts != null && accounts.length > 0 && !TextUtils.isEmpty(accounts[0].name)) {
email = accounts[0].name;
}
Button simpleLogin = (Button) findViewById(R.id.quick_login_google);
if (simpleLogin != null && !TextUtils.isEmpty(email)) {

Loading…
Cancel
Save