diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 83f9645e4..2a3a2987b 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,70 +1,70 @@
-#Thu May 07 17:28:06 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+#Sun May 17 17:33:53 PDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/default.properties b/default.properties
index 6b8ae52b9..9c6195ea1 100644
--- a/default.properties
+++ b/default.properties
@@ -7,6 +7,8 @@
# "build.properties", and override values to adapt the script to your
# project structure.
+# Project target.
+target=android-2
# apk configurations. This property allows creation of APK files with limited
# resources. For example, if your application contains many locales and
# you wish to release multiple smaller apks instead of a large one, you can
@@ -18,5 +20,3 @@
# apk-config-european=en,fr,it,de,es
# apk-config-northamerica=en,es
apk-configurations=
-# Project target.
-target=android-3
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index dad4e17bc..28ddc4241 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -111,6 +111,7 @@
Verbracht:
Anstubsen jede
Wiederholt sich jede
+ Wiederholt auf dem Server
Nächster Alarm:
Tags:
Notizen:
@@ -278,9 +279,9 @@ Nach der Fertigstellung, starte Astrid neu und komm hierher zurück.
Zusammengeführt: %d
Empfange Daten vom Server
- Reading List: %s
+ Empfange Liste: %s
Synchronisiere wiederholende Aufgabe
- Sende Aufgabe:: %s
+ Sende Aufgabe: %s
Lokal gelöschte Aufgaben
Empfange Aufgabe: %s
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2cce166c0..c19e92891 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -119,6 +119,7 @@
Spent:
Poke Every
Repeats Every
+ Repeats On Remote Server
Next Alarm:
Tags:
Notes:
diff --git a/src/com/mdt/rtm/Invoker.java b/src/com/mdt/rtm/Invoker.java
index bbc260d46..025793b93 100644
--- a/src/com/mdt/rtm/Invoker.java
+++ b/src/com/mdt/rtm/Invoker.java
@@ -38,15 +38,12 @@ import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.BasicHttpProcessor;
import org.apache.http.protocol.HTTP;
-import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.RequestConnControl;
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestExpectContinue;
@@ -104,12 +101,8 @@ public class Invoker {
private String serviceRelativeUri;
- private HttpContext context;
-
private BasicHttpParams globalHttpParams;
- private DefaultConnectionReuseStrategy connectionStrategy;
-
private BasicHttpProcessor httpProcessor;
private HttpClient httpClient;
@@ -119,13 +112,11 @@ public class Invoker {
{
this.serviceRelativeUri = serviceRelativeUri;
new HttpHost(serverHostName, serverPortNumber);
- context = new BasicHttpContext();
globalHttpParams = new BasicHttpParams();
HttpProtocolParams.setVersion(globalHttpParams, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(globalHttpParams, ENCODING);
HttpProtocolParams.setUserAgent(globalHttpParams, "Jakarta-HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(globalHttpParams, true);
- connectionStrategy = new DefaultConnectionReuseStrategy();
httpProcessor = new BasicHttpProcessor();
// Required protocol interceptors
diff --git a/src/com/timsu/astrid/activities/TaskListAdapter.java b/src/com/timsu/astrid/activities/TaskListAdapter.java
index c0b0edaf5..7681583b5 100644
--- a/src/com/timsu/astrid/activities/TaskListAdapter.java
+++ b/src/com/timsu/astrid/activities/TaskListAdapter.java
@@ -477,13 +477,16 @@ public class TaskListAdapter extends ArrayAdapter {
if(visibleFields.REPEATS || isExpanded) {
String cachedResult = task.getCachedLabel(KEY_REPEAT);
if(cachedResult == null) {
- RepeatInfo repeatInfo = task.getRepeat();
- if(repeatInfo != null) {
+ RepeatInfo repeatInfo = task.getRepeat();
+ if((task.getFlags() & TaskModelForList.FLAG_SYNC_ON_COMPLETE) > 0) {
+ cachedResult = r.getString(R.string.taskList_repeatsRemotely);
+ } else if(repeatInfo != null) {
cachedResult = r.getString(R.string.taskList_repeatPrefix) +
" " + repeatInfo.getValue() + " " +
r.getString(repeatInfo.getInterval().getLabelResource());
- } else
+ } else {
cachedResult = "";
+ }
task.putCachedLabel(KEY_REPEAT, cachedResult);
}
if(visibleFields.REPEATS)
diff --git a/src/com/timsu/astrid/activities/TaskListSubActivity.java b/src/com/timsu/astrid/activities/TaskListSubActivity.java
index 4a878463a..405f1ab81 100644
--- a/src/com/timsu/astrid/activities/TaskListSubActivity.java
+++ b/src/com/timsu/astrid/activities/TaskListSubActivity.java
@@ -347,7 +347,7 @@ public class TaskListSubActivity extends SubActivity {
ALPHA {
@Override
int compareTo(TaskModelForList arg0, TaskModelForList arg1) {
- return arg0.getName().compareTo(arg1.getName());
+ return arg0.getName().toLowerCase().compareTo(arg1.getName().toLowerCase());
}
},
DUEDATE {
diff --git a/src/com/timsu/astrid/data/task/TaskController.java b/src/com/timsu/astrid/data/task/TaskController.java
index 34c960452..318b0621d 100644
--- a/src/com/timsu/astrid/data/task/TaskController.java
+++ b/src/com/timsu/astrid/data/task/TaskController.java
@@ -407,16 +407,6 @@ public class TaskController extends AbstractController {
return model;
}
-
- /** Returns a TaskModelForView corresponding to the given TaskIdentifier */
- public TaskModelForView fetchTaskForView(Activity activity,
- TaskIdentifier taskId) throws SQLException {
- Cursor cursor = fetchTaskCursor(taskId, TaskModelForView.FIELD_LIST);
- activity.startManagingCursor(cursor);
- TaskModelForView model = new TaskModelForView(taskId, cursor);
- return model;
- }
-
/** Returns a TaskModelForList corresponding to the given TaskIdentifier */
public TaskModelForList fetchTaskForList(TaskIdentifier taskId) throws SQLException {
Cursor cursor = fetchTaskCursor(taskId, TaskModelForList.FIELD_LIST);
diff --git a/src/com/timsu/astrid/data/task/TaskModelForList.java b/src/com/timsu/astrid/data/task/TaskModelForList.java
index 66441cf1d..07d04fa59 100644
--- a/src/com/timsu/astrid/data/task/TaskModelForList.java
+++ b/src/com/timsu/astrid/data/task/TaskModelForList.java
@@ -49,6 +49,7 @@ public class TaskModelForList extends AbstractTaskModel {
HIDDEN_UNTIL,
NOTES,
REPEAT,
+ FLAGS,
};
// pre-load the cache for our column keys
@@ -213,6 +214,11 @@ public class TaskModelForList extends AbstractTaskModel {
return super.getCreationDate();
}
+ @Override
+ public int getFlags() {
+ return super.getFlags();
+ }
+
// --- setters
@Override
diff --git a/src/com/timsu/astrid/data/task/TaskModelForView.java b/src/com/timsu/astrid/data/task/TaskModelForView.java
deleted file mode 100644
index d4f35d089..000000000
--- a/src/com/timsu/astrid/data/task/TaskModelForView.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * ASTRID: Android's Simple Task Recording Dashboard
- *
- * Copyright (c) 2009 Tim Su
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-package com.timsu.astrid.data.task;
-
-import java.util.Date;
-
-import android.database.Cursor;
-
-import com.timsu.astrid.data.AbstractController;
-import com.timsu.astrid.data.enums.Importance;
-
-
-
-/** Fields that you would want to see in the TaskView activity */
-public class TaskModelForView extends AbstractTaskModel {
-
- static String[] FIELD_LIST = new String[] {
- AbstractController.KEY_ROWID,
- NAME,
- IMPORTANCE,
- PROGRESS_PERCENTAGE,
- ESTIMATED_SECONDS,
- ELAPSED_SECONDS,
- TIMER_START,
- DEFINITE_DUE_DATE,
- PREFERRED_DUE_DATE,
- HIDDEN_UNTIL,
- CREATION_DATE,
- NOTES,
- };
-
- // --- constructors
-
- public TaskModelForView(TaskIdentifier identifier, Cursor cursor) {
- super(identifier, cursor);
- }
-
- // --- getters and setters
-
- @Override
- public Integer getNotificationIntervalSeconds() {
- return super.getNotificationIntervalSeconds();
- }
-
- @Override
- public boolean isTaskCompleted() {
- return super.isTaskCompleted();
- }
-
- @Override
- public int getProgressPercentage() {
- return super.getProgressPercentage();
- }
-
- @Override
- public Date getDefiniteDueDate() {
- return super.getDefiniteDueDate();
- }
-
- @Override
- public Integer getEstimatedSeconds() {
- return super.getEstimatedSeconds();
- }
-
- @Override
- public Integer getElapsedSeconds() {
- return super.getElapsedSeconds();
- }
-
- @Override
- public Importance getImportance() {
- return super.getImportance();
- }
-
- @Override
- public String getName() {
- return super.getName();
- }
-
- @Override
- public String getNotes() {
- return super.getNotes();
- }
-
- @Override
- public Date getPreferredDueDate() {
- return super.getPreferredDueDate();
- }
-
- @Override
- public Date getTimerStart() {
- return super.getTimerStart();
- }
-
- @Override
- public Date getCreationDate() {
- return super.getCreationDate();
- }
-
- @Override
- public Date getHiddenUntil() {
- return super.getHiddenUntil();
- }
-
- @Override
- public void setTimerStart(Date timerStart) {
- super.setTimerStart(timerStart);
- }
-
- @Override
- public void setProgressPercentage(int progressPercentage) {
- super.setProgressPercentage(progressPercentage);
- }
-
- @Override
- public void stopTimerAndUpdateElapsedTime() {
- super.stopTimerAndUpdateElapsedTime();
- }
-}
diff --git a/src/com/timsu/astrid/sync/Synchronizer.java b/src/com/timsu/astrid/sync/Synchronizer.java
index 96100e8d4..cfa5cadf0 100644
--- a/src/com/timsu/astrid/sync/Synchronizer.java
+++ b/src/com/timsu/astrid/sync/Synchronizer.java
@@ -215,11 +215,10 @@ public class Synchronizer {
typeClass = cls;
}
- @SuppressWarnings("unchecked")
public TYPE get(Context context) {
if(controller == null) {
try {
- controller = (TYPE)typeClass.getConstructors()[0].newInstance(context);
+ controller = typeClass.getConstructors()[0].newInstance(context);
} catch (IllegalArgumentException e) {
Log.e(getClass().getSimpleName(), e.toString());
} catch (SecurityException e) {