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) {