Got rid of legacy styles and strings, fixed it all up

pull/14/head
Tim Su 16 years ago
parent 1e4b5557f6
commit 8d94011729

@ -25,8 +25,8 @@
<permission android:name="com.timsu.astrid.permission.READ_TASKS" <permission android:name="com.timsu.astrid.permission.READ_TASKS"
android:permissionGroup="android.permission-group.MESSAGES" android:permissionGroup="android.permission-group.MESSAGES"
android:protectionLevel="normal" android:protectionLevel="normal"
android:label="@string/read_tasks_permission" android:label="@string/read_permission_label"
android:description="@string/read_tasks_permission"/> android:description="@string/read_permission_desc"/>
<uses-permission android:name="com.timsu.astrid.permission.READ_TASKS"/> <uses-permission android:name="com.timsu.astrid.permission.READ_TASKS"/>
<!-- for reading data from plugins or astrid --> <!-- for reading data from plugins or astrid -->
@ -88,8 +88,7 @@
</activity> </activity>
<!-- Activity that creates or edits tasks --> <!-- Activity that creates or edits tasks -->
<activity android:name="com.todoroo.astrid.activity.TaskEditActivity" <activity android:name="com.todoroo.astrid.activity.TaskEditActivity"
android:windowSoftInputMode="stateHidden" android:windowSoftInputMode="stateHidden">
android:label="@string/taskEdit_label">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />

@ -22,19 +22,24 @@ package com.todoroo.astrid.backup;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import android.util.Log; import android.util.Log;
/**
* Date Utility functions for backups
*
* @author Tim Su <tim@todoroo.com>
*
*/
@SuppressWarnings("nls")
public class BackupDateUtilities { public class BackupDateUtilities {
private static final String ISO_8601_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz"; private static final String ISO_8601_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz";
/**
* Format a Date into ISO 8601 Complaint format.
/* Format a Date into ISO 8601 Compliant format. * @return date string, or empty string if input was null
*/ */
public static String getIso8601String(Date d) { public static String getIso8601String(Date d) {
SimpleDateFormat sdf = new SimpleDateFormat(ISO_8601_FORMAT); SimpleDateFormat sdf = new SimpleDateFormat(ISO_8601_FORMAT);
@ -45,8 +50,9 @@ public class BackupDateUtilities {
return result; return result;
} }
/* Take an ISO 8601 string and return a Date object. /**
On failure, returns null. * Take an ISO 8601 string and return a Date object.
* On failure, returns null.
*/ */
public static Date getDateFromIso8601String(String s) { public static Date getDateFromIso8601String(String s) {
SimpleDateFormat df = new SimpleDateFormat(ISO_8601_FORMAT); SimpleDateFormat df = new SimpleDateFormat(ISO_8601_FORMAT);
@ -58,25 +64,12 @@ public class BackupDateUtilities {
} }
} }
/* Get current date and time as a string. /**
Used in TasksXmlExporter * Get current date and time as a string. Used for naming backup files.
*/ */
public static String getDateForExport() { public static String getDateForExport() {
DateFormat df = new SimpleDateFormat("yyMMdd-HHmm"); DateFormat df = new SimpleDateFormat("yyMMdd-HHmm");
return df.format(new Date()); return df.format(new Date());
} }
public static boolean wasCreatedBefore(String s, int daysAgo) {
DateFormat df = new SimpleDateFormat("yyMMdd");
Date date;
try {
date = df.parse(s);
} catch (ParseException e) {
return false;
}
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -daysAgo);
Date calDate = cal.getTime();
return date.before(calDate);
}
} }

@ -72,16 +72,16 @@ public class BackupService extends Service {
exporter.setContext(ctx); exporter.setContext(ctx);
exporter.exportTasks(backupDirectorySetting.getBackupDirectory()); exporter.exportTasks(backupDirectorySetting.getBackupDirectory());
Preferences.setBackupSummary(ctx, Preferences.setBackupSummary(ctx,
ctx.getString(R.string.prefs_backup_desc_success, ctx.getString(R.string.BPr_backup_desc_success,
BackupDateUtilities.getFormattedDate(ctx, new Date()))); BackupDateUtilities.getFormattedDate(ctx, new Date())));
} catch (Exception e) { } catch (Exception e) {
// unable to backup. // unable to backup.
if (e == null || e.getMessage() == null) { if (e == null || e.getMessage() == null) {
Preferences.setBackupSummary(ctx, Preferences.setBackupSummary(ctx,
ctx.getString(R.string.prefs_backup_desc_failure_null)); ctx.getString(R.string.BPr_backup_desc_failure_null));
} else { } else {
Preferences.setBackupSummary(ctx, Preferences.setBackupSummary(ctx,
ctx.getString(R.string.prefs_backup_desc_failure, ctx.getString(R.string.BPr_backup_desc_failure,
e.toString())); e.toString()));
} }
} }

@ -147,7 +147,7 @@ public class RepeatControlSet implements TaskEditControlSet {
int number) { int number) {
setRepeatValue(number); setRepeatValue(number);
} }
}, activity.getResources().getString(R.string.repeat_picker_title), }, activity.getResources().getString(R.string.repeat_interval_prompt),
dialogValue, 1, 1, 365).show(); dialogValue, 1, 1, 365).show();
} }
}; };

@ -5,7 +5,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
style="@style/WidgetBackgroundLand"> android:background="@drawable/widget_frame">
<ImageButton <ImageButton
android:id="@+id/widget_button" android:id="@+id/widget_button"
@ -29,8 +29,8 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="170dip" android:maxWidth="170dip"
android:text="@string/widget_loading" android:text="@string/TWi_loading"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"/> android:layout_marginLeft="23dip"/>
<ImageView <ImageView
@ -49,7 +49,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="170dip" android:maxWidth="170dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip" android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/> android:layout_marginTop="4dip"/>
@ -70,7 +70,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="170dip" android:maxWidth="170dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip" android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/> android:layout_marginTop="4dip"/>
@ -92,7 +92,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="170dip" android:maxWidth="170dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip" android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/> android:layout_marginTop="4dip"/>
@ -113,7 +113,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="170dip" android:maxWidth="170dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip" android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/> android:layout_marginTop="4dip"/>
</LinearLayout> </LinearLayout>

@ -23,7 +23,7 @@
android:paddingBottom="10dip" android:paddingBottom="10dip"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/locale_pick_tag" android:text="@string/locale_pick_filter"
style="@style/TextAppearance.Locale_Label" /> style="@style/TextAppearance.Locale_Label" />
<Spinner <Spinner

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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
-->
<LinearLayout android:id="@+id/footer"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/last_sync_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sync_pref_group_actions"/>
<TextView
android:id="@+id/last_auto_sync_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sync_pref_group_actions"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:gravity="center_horizontal"
android:text="@string/sync_pref_group_actions"/>
<Button android:id="@+id/forget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sync_forget"/>
<Button android:id="@+id/sync"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sync_now"/>
</LinearLayout>

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/login_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/rtm_login_label"
style="@style/TextAppearance.TaskList_Task"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:baselineAligned="false">
<Button android:id="@+id/done"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/done_label"
/>
<Button android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/cancel"
/>
</LinearLayout>
<WebView android:id="@+id/browser"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

@ -19,7 +19,7 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<AutoCompleteTextView android:id="@+id/text1" <AutoCompleteTextView android:id="@+id/text1"
android:hint="@string/tag_hint" android:hint="@string/TEA_tag_hint"
android:layout_width="0dip" android:layout_width="0dip"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"

@ -5,7 +5,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
style="@style/WidgetBackground"> android:background="@drawable/widget_frame">
<ImageButton <ImageButton
android:id="@+id/widget_button" android:id="@+id/widget_button"
@ -29,8 +29,8 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="115dip" android:maxWidth="115dip"
android:text="@string/widget_loading" android:text="@string/TWi_loading"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"/> android:layout_marginLeft="23dp"/>
<ImageView <ImageView
@ -50,7 +50,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="115dip" android:maxWidth="115dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp" android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/> android:layout_marginTop="4dp"/>
@ -71,7 +71,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="115dip" android:maxWidth="115dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp" android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/> android:layout_marginTop="4dp"/>
@ -92,7 +92,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="115dip" android:maxWidth="115dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp" android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/> android:layout_marginTop="4dp"/>
@ -113,7 +113,7 @@
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:singleLine="true" android:singleLine="true"
android:maxWidth="115dip" android:maxWidth="115dip"
style="@style/Text.Loading" style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp" android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/> android:layout_marginTop="4dp"/>

@ -5,7 +5,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
style="@style/WidgetBackground"> android:background="@drawable/widget_frame">
<ImageButton <ImageButton
android:src="@drawable/button_plus" android:src="@drawable/button_plus"
@ -23,6 +23,6 @@
android:layout_marginTop="37dip" android:layout_marginTop="37dip"
android:padding="10dip" android:padding="10dip"
android:gravity="center" android:gravity="center"
android:text="@string/widget_loading" android:text="@string/TWi_loading"
style="@style/Text.Loading" /> style="@style/TextAppearance.Widget" />
</LinearLayout> </LinearLayout>

@ -74,79 +74,4 @@
<item>Week before due</item> <item>Week before due</item>
</string-array> </string-array>
<string-array name="notif_icon_entries">
<!-- Icons for notification tray -->
<item>Pink</item>
<item>Boring</item>
<item>Astrid</item>
</string-array>
<string-array name="sync_interval_entries">
<!-- sync_interval_entries: Synchronization Intervals -->
<item>disable</item>
<item>twice an hour</item>
<item>hourly</item>
<item>twice a day</item>
<item>daily</item>
<item>twice a week</item>
<item>weekly</item>
</string-array>
<string-array name="EPr_quiet_hours_start">
<!-- quiet_hours_start: options for preference menu. Translate times as approprate. -->
<item>disabled</item>
<item>20:00</item>
<item>21:00</item>
<item>22:00</item>
<item>23:00</item>
<item>00:00</item>
<item>01:00</item>
<item>02:00</item>
<item>03:00</item>
<item>04:00</item>
<item>05:00</item>
<item>06:00</item>
<item>07:00</item>
<item>08:00</item>
<item>09:00</item>
<item>10:00</item>
<item>11:00</item>
<item>12:00</item>
<item>13:00</item>
<item>14:00</item>
<item>15:00</item>
<item>16:00</item>
<item>17:00</item>
<item>18:00</item>
<item>19:00</item>
</string-array>
<string-array name="EPr_quiet_hours_end">
<!-- quiet_hours_end: options for preference menu. Translate times as appropriate -->
<item>09:00</item>
<item>10:00</item>
<item>11:00</item>
<item>12:00</item>
<item>13:00</item>
<item>14:00</item>
<item>15:00</item>
<item>16:00</item>
<item>17:00</item>
<item>18:00</item>
<item>19:00</item>
<item>20:00</item>
<item>21:00</item>
<item>22:00</item>
<item>23:00</item>
<item>00:00</item>
<item>01:00</item>
<item>02:00</item>
<item>03:00</item>
<item>04:00</item>
<item>05:00</item>
<item>06:00</item>
<item>07:00</item>
<item>08:00</item>
</string-array>
</resources> </resources>

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Resources for built-in backup plug-in -->
<string name="BPr_backup_title">Automatic Backups</string>
<!-- backup summary when there is no backup message -->
<string name="BPr_backup_desc">Perform daily backups to sdcard.</string>
<!-- backup failure message (%s -> error message) -->
<string name="BPr_backup_desc_failure">Last backup failed: %s</string>
<!-- backup failure error when error message is null -->
<string name="BPr_backup_desc_failure_null">Last backup failed, could not read SD card</string>
<!-- backup success message (%s -> date) -->
<string name="BPr_backup_desc_success">Latest backup was on %s</string>
<string name="export_toast">Backed Up %s to %s.</string>
<string name="import_summary_title">Restore Summary</string>
<string name="import_summary_message">
File %s contained %d tasks.\n
Restored %d tasks.\n
Skipped %d tasks.\n
</string>
<string name="import_progress_title">Restore</string>
<string name="import_progress_open">Opening file...</string>
<string name="import_progress_opened">File opened...</string>
<string name="import_progress_read">Reading task %d...</string>
<string name="import_progress_skip">Skipped task %d...</string>
<string name="import_progress_add">Restored task %d...</string>
<string name="import_file_prompt">Select a File to Restore</string>
</resources>

@ -2,7 +2,7 @@
<!-- See the file "LICENSE" for the full license governing this code. --> <!-- See the file "LICENSE" for the full license governing this code. -->
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- ======================== AndroidManifest ========================== --> <!-- ================================================== AndroidManifest == -->
<string name="app_name">Astrid Tasks</string> <string name="app_name">Astrid Tasks</string>
@ -70,8 +70,13 @@
<item quantity="one">1 Sec</item> <item quantity="one">1 Sec</item>
<item quantity="other">%d Sec</item> <item quantity="other">%d Sec</item>
</plurals> </plurals>
<plurals name="Ntasks">
<!-- plurals: tasks -->
<item quantity="one">1 Task</item>
<item quantity="other">%d Tasks</item>
</plurals>
<!-- ========================= Generic Dialogs ========================= --> <!-- ================================================== Generic Dialogs == -->
<!-- confirmation dialog title --> <!-- confirmation dialog title -->
<string name="DLG_confirm_title">Confirm?</string> <string name="DLG_confirm_title">Confirm?</string>
@ -115,7 +120,19 @@
<!-- Progress dialog shown when doing something slow --> <!-- Progress dialog shown when doing something slow -->
<string name="DLG_wait">Please wait...</string> <string name="DLG_wait">Please wait...</string>
<!-- ============================= Widgets ============================= --> <!-- Title for dialog selecting a time (hours and minutes) -->
<string name="DLG_hour_minutes">Time (hours : minutes)</string>
<!-- Dialog when unable to open a file -->
<string name="DLG_error_opening">Could not find this item: </string>
<!-- Dialog when unable to open SD card folder -->
<string name="DLG_error_sdcard">Cannot access folder: %s</string>
<!-- Dialog when unable to open SD card in general -->
<string name="DLG_error_sdcard_general">Cannot access your SD card!</string>
<!-- =============================================================== UI == -->
<!-- Label for DateButtons with no value --> <!-- Label for DateButtons with no value -->
<string name="WID_dateButtonUnset">Click To Set</string> <string name="WID_dateButtonUnset">Click To Set</string>
@ -126,7 +143,7 @@
<!-- String formatter for Disable button --> <!-- String formatter for Disable button -->
<string name="WID_disableButton">Disable</string> <string name="WID_disableButton">Disable</string>
<!-- ======================== TaskListActivity ======================== --> <!-- ================================================= TaskListActivity == -->
<!-- Displayed instead of list when no items present --> <!-- Displayed instead of list when no items present -->
<string name="TLA_no_items">No Tasks!</string> <string name="TLA_no_items">No Tasks!</string>
@ -164,7 +181,7 @@ to your list of filters.
button: add task & go to the edit page. button: add task & go to the edit page.
]]></string> ]]></string>
<!-- =========================== TaskAdapter =========================== --> <!-- ====================================================== TaskAdapter == -->
<!-- Format string to indicate task is hidden (%s => task name) --> <!-- Format string to indicate task is hidden (%s => task name) -->
<string name="TAd_hiddenFormat">%s [hidden]</string> <string name="TAd_hiddenFormat">%s [hidden]</string>
@ -190,18 +207,18 @@ button: add task & go to the edit page.
<!-- Context Item: undelete task --> <!-- Context Item: undelete task -->
<string name="TAd_contextUndeleteTask">Undelete Task</string> <string name="TAd_contextUndeleteTask">Undelete Task</string>
<!-- ======================= FilterListActivity ======================== --> <!-- =============================================== FilterListActivity == -->
<!-- Title --> <!-- Filter List Activity Title -->
<string name="FLA_title">Astrid: Filters</string> <string name="FLA_title">Astrid: Filters</string>
<!-- Loading --> <!-- Displayed when loading filters -->
<string name="FLA_loading">Loading Filters...</string> <string name="FLA_loading">Loading Filters...</string>
<!-- Context Menu: Shortcut --> <!-- Context Menu: Create Shortcut -->
<string name="FLA_context_shortcut">Create Shortcut On Desktop</string> <string name="FLA_context_shortcut">Create Shortcut On Desktop</string>
<!-- Menu: Search Hint --> <!-- Menu: Search -->
<string name="FLA_menu_search">Search Tasks...</string> <string name="FLA_menu_search">Search Tasks...</string>
<!-- Menu: Help --> <!-- Menu: Help -->
@ -322,14 +339,9 @@ to the plugin creator for fastest service.
<!-- Toast: task was deleted --> <!-- Toast: task was deleted -->
<string name="TEA_onTaskDelete">Task Deleted!</string> <string name="TEA_onTaskDelete">Task Deleted!</string>
<!-- ========================== Notifications ========================== --> <!-- ===================== IntroductionActivity == -->
<!-- Notification title for tasks -->
<string name="Ntf_task_title">Astrid: New Reminder</string>
<!-- ===================== IntroductionActivity ======================== -->
<!-- Window title --> <!-- Introduction Window title -->
<string name="InA_title">Welcome to Astrid!</string> <string name="InA_title">Welcome to Astrid!</string>
<!-- Button to agree to EULA --> <!-- Button to agree to EULA -->
@ -338,37 +350,46 @@ to the plugin creator for fastest service.
<!-- Button to disagree with EULA --> <!-- Button to disagree with EULA -->
<string name="InA_disagree">I Disagree</string> <string name="InA_disagree">I Disagree</string>
<!-- =========================== HelpActivity ========================== --> <!-- ===================================================== HelpActivity == -->
<!-- Button to send e-mail to Todoroo --> <!-- Help: Button to get support from our website -->
<string name="HlA_email_us">E-mail Todoroo</string> <string name="HlA_get_support">Get Support</string>
<!-- ========================== UpdateService ========================== --> <!-- ==================================================== UpdateService == -->
<!-- Change Log Window Title --> <!-- Changelog Window Title -->
<string name="UpS_changelog_title">What\'s New In Astrid?</string> <string name="UpS_changelog_title">What\'s New In Astrid?</string>
<!-- ========================= EditPreferences ========================= --> <!-- ================================================== EditPreferences == -->
<!-- Window Title --> <!-- Preference Window Title -->
<string name="EPr_title">Astrid: Preferences</string> <string name="EPr_title">Astrid: Preferences</string>
<!-- Defaults Title --> <!-- Preference Category: Appearance Title -->
<string name="EPr_appearance_header">Appearance</string>
<!-- Preference: Task List Font Size Title -->
<string name="EPr_fontSize_title">Task List Size</string>
<!-- Preference: Task List Font Size Description -->
<string name="EPr_fontSize_desc">Font size on the main listing page</string>
<!-- Preference Category: Defaults Title -->
<string name="EPr_defaults_header">New Task Defaults</string> <string name="EPr_defaults_header">New Task Defaults</string>
<!-- Default Urgency Title --> <!-- Preference: Default Urgency Title -->
<string name="EPr_default_urgency_title">Default Urgency</string> <string name="EPr_default_urgency_title">Default Urgency</string>
<!-- Default Urgency Description (%s => setting) --> <!-- Preference: Default Urgency Description (%s => setting) -->
<string name="EPr_default_urgency_desc">Currently Set To: %s</string> <string name="EPr_default_urgency_desc">Currently Set To: %s</string>
<!-- Default Importance Title --> <!-- Preference: Default Importance Title -->
<string name="EPr_default_importance_title">Default Importance</string> <string name="EPr_default_importance_title">Default Importance</string>
<!-- Default Importance Description (%s => setting) --> <!-- Preference: Default Importance Description (%s => setting) -->
<string name="EPr_default_importance_desc">Currently Set To: %s</string> <string name="EPr_default_importance_desc">Currently Set To: %s</string>
<!-- Default Hide Until Title --> <!-- Preference: Default Hide Until Title -->
<string name="EPr_default_hideUntil_title">Default Hide Until</string> <string name="EPr_default_hideUntil_title">Default Hide Until</string>
<!-- Default Hide Until Description (%s => setting) --> <!-- Preference: Default Hide Until Description (%s => setting) -->
<string name="EPr_default_hideUntil_desc">Currently Set To: %s</string> <string name="EPr_default_hideUntil_desc">Currently Set To: %s</string>
<!-- ==================================================== AddOnActivity == --> <!-- ==================================================== AddOnActivity == -->
@ -384,4 +405,19 @@ to the plugin creator for fastest service.
<!-- Sync Notification: toast when sync activated from activity --> <!-- Sync Notification: toast when sync activated from activity -->
<string name="SyP_progress_toast">Synchronizing...</string> <string name="SyP_progress_toast">Synchronizing...</string>
<!-- ====================================================== TasksWidget == -->
<!-- Widget text when loading tasks -->
<string name="TWi_loading">Loading...</string>
<!-- ============================================================= Misc == -->
<!-- %s => name of the application -->
<string name="task_killer_help">
It looks like you are using an app that can kill processes (%s)! If you can,
add Astrid to the exclusion list so it doesn\'t get killed. Otherwise,
Astrid might not let you know when your tasks are due.\n
</string>
<string name="task_killer_help_ok">I Won\'t Kill Astrid!</string>
</resources> </resources>

@ -1,506 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- General String Constants -->
<skip />
<!-- Importance Labels -->
<string name="importance_1">!!!!</string>
<string name="importance_2">!!!</string>
<string name="importance_3">!!</string>
<string name="importance_4">!</string>
<!-- Repeat Interval Labels -->
<string name="repeat_days">Day(s)</string>
<string name="repeat_weeks">Week(s)</string>
<string name="repeat_months">Month(s)</string>
<string name="repeat_hours">Hour(s)</string>
<!-- Plurals -->
<plurals name="Ntasks">
<!-- plurals: tasks -->
<item quantity="one">1 Task</item>
<item quantity="other">%d Tasks</item>
</plurals>
<plurals name="NactiveTasks">
<!-- plurals: active tasks vs total tasks -->
<item quantity="one">%d / %d Active</item>
<item quantity="other">%d / %d Active</item>
</plurals>
<plurals name="Nalarms">
<!-- plurals: alarms -->
<item quantity="one">One Alarm</item>
<item quantity="two">Two Alarms</item>
<item quantity="other">%d Alarms</item>
</plurals>
<plurals name="Ntags">
<!-- plurals: tags -->
<item quantity="one">1 Tag</item>
<item quantity="other">%d Tags</item>
</plurals>
<!-- Time Constants -->
<!-- vertical labels are used in dialog boxes -->
<string name="daysVertical">D\na\ny\ns</string>
<string name="hoursVertical">H\no\nu\nr\ns</string>
<plurals name="Ndays">
<!-- plurals: days -->
<item quantity="one">1 Day</item>
<item quantity="other">%d Days</item>
</plurals>
<plurals name="NdaysPreposition">
<!-- plurals: days (used after a preopsition, i.e. due in 5 days) -->
<item quantity="one">1 Day</item>
<item quantity="other">%d Days</item>
</plurals>
<plurals name="Nhours">
<!-- plurals: hours -->
<item quantity="one">1 Hour</item>
<item quantity="other">%d Hours</item>
</plurals>
<plurals name="Nminutes">
<!-- plurals: minutes -->
<item quantity="one">1 Minute</item>
<item quantity="other">%d Minutes</item>
</plurals>
<plurals name="Nseconds">
<!-- plurals: seconds -->
<item quantity="one">1 Second</item>
<item quantity="other">%d Seconds</item>
</plurals>
<plurals name="NhoursShort">
<!-- plurals: hours (abbreviated) -->
<item quantity="one">1 Hr</item>
<item quantity="other">%d Hrs</item>
</plurals>
<plurals name="NminutesShort">
<!-- plurals: minutes (abbreviated) -->
<item quantity="one">1 Min</item>
<item quantity="other">%d Min</item>
</plurals>
<plurals name="NsecondsShort">
<!-- plurals: seconds (abbreviated) -->
<item quantity="one">1 Sec</item>
<item quantity="other">%d Sec</item>
</plurals>
<!-- indicates time in past. %s is replaced by time unit i.e. 1 minute -->
<string name="ago_string">%s Ago</string>
<!-- TaskList -->
<skip />
<!-- title bar -->
<string name="taskList_titlePrefix">Astrid: </string>
<string name="taskList_titleTagPrefix">Tagged \"%s\":</string>
<string name="taskList_titleUntagged">Untagged Tasks:</string>
<string name="taskList_hiddenSuffix"> hidden</string>
<string name="addtask_label">New Task</string>
<string name="missing_tag">Could Not Find Requested Tag!</string>
<!-- text displayed in task list item -->
<!-- prefix to show that a task is hidden -->
<string name="taskList_hiddenPrefix">H</string>
<!-- i.e. Due in 4 days -->
<string name="taskList_dueRelativeTime">Due in</string>
<!-- i.e. Due on Jan 2 -->
<string name="taskList_dueAbsoluteDate">Due on</string>
<!-- prefix to deadline -->
<string name="taskList_goalPrefix">Goal</string>
<string name="taskList_overdueBy">Overdue by</string>
<!-- i.e. Finished 4 days ago -->
<string name="taskList_completedPrefix">Finished %s</string>
<!-- i.e. Estimated: 4 hours -->
<string name="taskList_estimatedTimePrefix">Estimated:</string>
<!-- i.e. Spent: 88 minutes. used to indicate time spent on task -->
<string name="taskList_elapsedTimePrefix">Spent:</string>
<!-- time interval to set frequency to remind user -->
<string name="taskList_periodicReminderPrefix">Poke Every</string>
<!-- time interval to set repeated tasks-->
<string name="taskList_repeatPrefix">Repeats Every</string>
<!-- displayed when repeat is on remote server-->
<string name="taskList_repeatsRemotely">Repeats On Remote Server</string>
<string name="taskList_alarmPrefix">Next Alarm:</string>
<string name="taskList_tagsPrefix">Tags:</string>
<string name="taskList_notesPrefix">Notes:</string>
<!-- i.e. Created: <create date> -->
<string name="taskList_createdPrefix">Created:</string>
<!-- i.e. Deleted: <delete date> -->
<string name="taskList_deleted">Deleted</string>
<string name="quick_add_hint">Add New Task</string>
<!-- menu items -->
<string name="taskList_menu_insert">New Task</string>
<string name="taskList_menu_tags">Tags</string>
<string name="taskList_menu_filters">Sort/Filters</string>
<string name="taskList_menu_syncshortcut">Sync</string>
<string name="taskList_menu_more">More</string>
<string name="taskList_menu_sync">Synchronization</string>
<string name="taskList_menu_settings">Settings</string>
<string name="taskList_menu_help">Help (opens in Browser)</string>
<string name="taskList_menu_survey">Take Astrid\'s Survey!</string>
<string name="taskList_menu_tips">Quick Tips</string>
<string name="taskList_menu_cleanup">Clean Up Old Tasks</string>
<string name="taskList_menu_export">Backup Tasks</string>
<string name="taskList_menu_import">Restore Tasks</string>
<string name="taskList_context_edit">Edit Task</string>
<string name="taskList_context_delete">Delete Task</string>
<string name="taskList_context_startTimer">Start Timer</string>
<string name="taskList_context_stopTimer">Stop Timer</string>
<string name="taskList_context_postpone">Postpone</string>
<!-- filter menu items -->
<string name="taskList_filter_title">Sort/Filters</string>
<string name="taskList_filter_hidden">Hidden/Blocked Tasks</string>
<string name="taskList_filter_done">Completed Tasks</string>
<string name="taskList_filter_tagged">Tagged \'%s\'</string>
<string name="taskList_sort_auto">Auto Sort</string>
<string name="taskList_sort_alpha">Sort By Name</string>
<string name="taskList_sort_duedate">Sort By Due Date</string>
<string name="taskList_sort_reverse">Sort Reverse</string>
<string name="taskList_nonag_reminder">Select an Action:</string>
<string name="taskList_postpone_count">Times You\'ve Postponed: %d</string>
<string name="taskList_postpone_dialog">Postpone for how long?</string>
<string name="taskList_cleanup_dialog">Delete completed tasks older than # days:</string>
<!-- TaskEdit -->
<skip />
<!-- title bar -->
<string name="taskEdit_titleGeneric">Astrid: Editing Task</string>
<string name="taskEdit_titlePrefix">Astrid: Editing </string>
<string name="taskEdit_label">Astrid: New Task</string>
<!-- tabs -->
<string name="taskEdit_tab_basic">Basic</string>
<string name="taskEdit_tab_dates">Dates</string>
<string name="taskEdit_tab_alerts">Alerts</string>
<!-- labels -->
<string name="name_label">Summary</string>
<string name="name_hint">Task Name</string>
<string name="importance_label">How Important is it?</string>
<string name="tags_label">Tags:</string>
<string name="tag_hint">Tag Name</string>
<string name="estimatedDuration_label">How Long Will it Take?</string>
<string name="elapsedDuration_label">Time Already Spent on Task</string>
<string name="definiteDueDate_label">Absolute Deadline</string>
<string name="preferredDueDate_label">Goal Deadline</string>
<string name="addToCalendar_label">Add Task To Calendar</string>
<string name="showCalendar_label">Open Calendar Event</string>
<string name="hiddenUntil_label">Hide Until This Date</string>
<string name="repeat_label">Repeat Every</string>
<string name="repeat_value_unset">No Repeat Set</string>
<string name="blockingOn_label">Hide Until This Task is Done</string>
<string name="notes_label">Notes</string>
<string name="notes_hint">Enter Task Notes</string>
<string name="notification_label">Periodic Reminders</string>
<string name="notification_prefix">Every</string>
<string name="flags_label">Notify me...</string>
<string name="flag_before">As Deadlines Approach</string>
<string name="flag_during">At Deadlines</string>
<string name="flag_after">After Absolute Deadline Passes</string>
<string name="flag_nonstop">Alarm Clock Mode</string>
<string name="alerts_label">Fixed Reminders</string>
<string name="add_alert">Add New Reminder</string>
<!-- dialog boxes -->
<string name="hour_minutes_dialog">Time (hours : minutes)</string>
<string name="notification_dialog">Remind Me Every</string>
<string name="repeat_picker_title">Repeat Every (0 to disable)</string>
<string name="repeat_help_dialog_title">Help: Astrid Repeats</string>
<string name="repeat_help_dialog">
To use repeats, set at least one of the deadlines above. When you complete this task, the deadline will be automatically advanced.
\n\n
If you don\'t want to see the new task right after you complete the old one, you should use the \"Hide Until\" field, which will also be advanced automatically.
\n
</string>
<string name="repeat_help_hide">Don\'t Show Help Anymore</string>
<!-- buttons -->
<string name="save_label">Save</string>
<string name="discard_label">Discard</string>
<string name="edit_label">Edit</string>
<string name="delete_label">Delete</string>
<string name="blank_button_title">Click to Set</string>
<string name="startTimer_label">Start Timer</string>
<string name="stopTimer_label">Stop Timer</string>
<string name="taskEdit_menu_save">Save</string>
<string name="taskEdit_onTaskSave_Due">Task Saved: due in %s</string>
<string name="taskEdit_onTaskSave_Overdue">Task Saved: due %s ago</string>
<string name="taskEdit_onTaskSave_notDue">Task Saved</string>
<!-- TaskView -->
<skip />
<string name="taskView_notifyTitle">Astrid says...</string>
<!-- Tag List -->
<skip />
<string name="tagList_titlePrefix">Astrid: Tag View: </string>
<string name="tagList_context_create">Create Task With Tag</string>
<string name="tagList_context_edit">Edit Tag</string>
<string name="tagList_context_delete">Delete Tag</string>
<string name="tagList_context_showTag">Show on Home Page</string>
<string name="tagList_context_hideTag">Hide on Home Page</string>
<string name="tagList_context_shortcut">Create Shortcut</string>
<string name="tagList_shortcut_created">Shortcut created on your home screen!</string>
<string name="tagList_shortcut_prefix">Tag:</string>
<string name="tagList_untagged">[untagged]</string>
<string name="tagList_menu_sortAlpha">Sort A-Z</string>
<string name="tagList_menu_sortSize">Sort by Size</string>
<!-- Synchronization -->
<skip />
<string name="sync_pref_group">Synchronization Services</string>
<string name="sync_pref_group_actions">Actions</string>
<string name="sync_pref_group_options">Options</string>
<!-- Proper noun - don't translate -->
<string name="sync_rtm_title">Remember The Milk</string>
<string name="sync_rtm_desc">http://www.rememberthemilk.com</string>
<string name="sync_interval_title">Auto-Synchronize</string>
<string name="sync_interval_desc">If set, synchronization occurs automatically given interval</string>
<string name="sync_button_title">Main Menu Shortcut</string>
<string name="sync_button_desc">Show \"Synchronize\" in Astrid\'s menu</string>
<string name="sync_quiet_title">Hide Dialogs</string>
<string name="sync_quiet_desc">Hide the Sync Results dialogs</string>
<string name="sync_bgwifi_title">Auto-Sync Wifi Only</string>
<string name="sync_bgwifi_desc">If set, auto-sync only happens when Wifi is active</string>
<string name="sync_error">Sync Error! Sorry for the inconvenience! Error:</string>
<string name="sync_upgrade_v99">
Astrid 2.7 now performs synchronization with RTM in the background. You will
be directed to the preferences page to configure how often you want this to
occur (it is a minor drain on battery).
</string>
<string name="sync_now">Synchronize Now!</string>
<string name="sync_forget">Clear Personal Data</string>
<string name="sync_uptodate">Sync: Up to date!</string>
<string name="sync_forget_confirm">Clear data for selected services?</string>
<string name="sync_no_synchronizers">No Synchronizers Enabled!</string>
<string name="sync_last_sync">Last Sync Date: %s</string>
<string name="sync_last_auto_sync">Last AutoSync Attempt: %s</string>
<string name="sync_date_never">never</string>
<string name="sync_result_title">%s Results</string>
<string name="sync_result_local">Summary - Astrid Tasks:</string>
<string name="sync_result_remote">Summary - Remote Server:</string>
<string name="sync_result_created">Created: %d</string>
<string name="sync_result_updated">Updated: %d</string>
<string name="sync_result_deleted">Deleted: %d</string>
<string name="sync_result_merged">Merged: %d</string>
<string name="sync_progress_remote">Reading Remote Data</string>
<string name="sync_progress_starting">Reading Remote Data</string>
<string name="sync_progress_rxlist">Reading List: %s</string>
<string name="sync_progress_repeating">Synchronizing Repeating Task</string>
<string name="sync_progress_localtx">Transmitting: %s</string>
<string name="sync_progress_localdel">Locally Deleted Tasks</string>
<string name="sync_progress_remotetx">Receiving: %s</string>
<string name="rtm_login_label">Please Log In to RTM...</string>
<string name="rtm_login_error">
Sorry, there was an error verifying your login. Please try again.
\n\n
Error Message:
</string>
<!-- Dialog Boxes -->
<skip />
<string name="loading">Loading...</string>
<string name="updating">Updating List...</string>
<string name="information_title">Information</string>
<string name="question_title">Question</string>
<string name="done_label">Done</string>
<string name="notify_yes">View This Task</string>
<string name="notify_done">Already Done!</string>
<string name="notify_snooze">Snooze...</string>
<string name="notify_no">Go Away!</string>
<string name="notify_snooze_title">Hours/minutes to snooze?</string>
<string name="delete_title">Delete</string>
<string name="delete_this_task_title">Delete this task?</string>
<string name="delete_this_tag_title">Remove this tag from all tasks?</string>
<string name="stop_timer_title">Stop the timer?</string>
<string name="quick_tips">
Some things you may not know about Astrid:\n
\n
- To create a task, just start typing!\n
- While editing a task, hit \'back\' to save it\n
- Select a task &amp; press 1-4 to quickly change its priority\n
- If a task has a deadline, long-press to postpone it\n
\n
Thanks for using Astrid!\n
</string>
<!-- %s => name of the application -->
<string name="task_killer_help">
It looks like you are using an app that can kill processes (%s)! If you can,
add Astrid to the exclusion list so it doesn\'t get killed. Otherwise,
Astrid might not let you know when your tasks are due.\n
</string>
<string name="task_killer_help_ok">I Won\'t Kill Astrid!</string>
<!-- Restore/Backup -->
<skip />
<string name="export_toast">Backed Up %s to %s.</string>
<string name="import_summary_title">Restore Summary</string>
<string name="import_summary_message">
File %s contained %d tasks.\n
Restored %d tasks.\n
Skipped %d tasks.\n
</string>
<string name="import_progress_title">Restore</string>
<string name="import_progress_open">Opening file...</string>
<string name="import_progress_opened">File opened...</string>
<string name="import_progress_read">Reading task %d...</string>
<string name="import_progress_skip">Skipped task %d...</string>
<string name="import_progress_add">Restored task %d...</string>
<string name="import_file_prompt">Select a File to Restore</string>
<!-- Locale Plugin -->
<skip />
<string name="locale_edit_alerts_title">Astrid Tag Alert</string>
<string name="locale_edit_intro">Astrid will send you a reminder
when you have uncompleted tasks with the following criteria:</string>
<string name="locale_pick_tag">Tagged with:</string>
<!-- Error Messages -->
<skip />
<string name="error_opening">Could not find this item: </string>
<string name="error_sdcard">Cannot access folder: %s</string>
<string name="error_sdcard_general">Cannot access your SD card!</string>
<skip />
<string name="prefs_category_alerts">Notifications</string>
<string name="prefs_quietStart_title">Quiet Hours Start</string>
<string name="prefs_quietStart_desc">Start time to silence notifications for periodic reminders</string>
<string name="prefs_quietEnd_title">Quiet Hours End</string>
<string name="prefs_quietEnd_desc">End time to silence notifications</string>
<string name="prefs_defaultRemind_title">Default Reminders</string>
<string name="prefs_defaultRemind_desc">For new tasks, default reminder in days (i.e. 7). Blank to disable</string>
<string name="prefs_annoy_title">Persistent Mode</string>
<string name="prefs_annoy_desc">If checked, LED and notifications must be cleared one at a time</string>
<string name="prefs_notification_title">Notification Ringtone</string>
<string name="prefs_notification_desc">Choose a ringtone for Astrid\'s alerts</string>
<string name="prefs_notificon_title">Notification Icons</string>
<string name="prefs_notificon_desc">Choose Astrid\'s notification bar icon</string>
<string name="prefs_vibrate_title">Vibrate on Alert</string>
<string name="prefs_vibrate_desc">If checked, Astrid will vibrate when sounding an alarm</string>
<string name="prefs_category_appearance">Appearance</string>
<string name="prefs_colorize_title">Colorize Task List</string>
<string name="prefs_colorize_desc">Different colors for different priorities</string>
<string name="prefs_fontSize_title">Task List Size</string>
<string name="prefs_fontSize_desc">Font size on the main listing page</string>
<string name="prefs_category_other">Other</string>
<string name="prefs_nagging_title">Nag Messages</string>
<string name="prefs_nagging_desc">Show Astrid\'s comments when viewing reminders and postponing tasks?</string>
<string name="prefs_deadlineTime_title">Default Deadlines</string>
<string name="prefs_deadlineTime_desc"># of days from now to set new deadlines</string>
<string name="prefs_backup_title">Automatic Backups</string>
<!-- backup summary when there is no backup message -->
<string name="prefs_backup_desc">Perform daily backups to sdcard.</string>
<!-- backup failure message (%s -> error message) -->
<string name="prefs_backup_desc_failure">Last backup failed: %s</string>
<!-- backup failure error when error message is null -->
<string name="prefs_backup_desc_failure_null">Last backup failed, could not read SD card</string>
<!-- backup success message (%s -> date) -->
<string name="prefs_backup_desc_success">Latest backup was on %s</string>
<string name="prefs_defaultCalendar_title">Calendar</string>
<string name="prefs_defaultCalendar_desc">Calendar to use for \"Add to Calendar\".</string>
<string name="prefs_defaultCalendar_astrid_default">Astrid default</string>
<string name="displayedFields_PrefScreen_Title">Displayed Fields</string>
<string name="displayedFields_PrefScreen_Desc">Select the fields to show in task list</string>
<string name="prefs_titleVisible_title">Task Title</string>
<string name="prefs_titleVisible_desc">Task description</string>
<string name="prefs_deadlineVisible_title">Dates</string>
<string name="prefs_deadlineVisible_desc">Upcoming deadlines / completed date</string>
<string name="prefs_timeVisible_title">Times</string>
<string name="prefs_timeVisible_desc">Estimated &amp; Elapsed Times</string>
<string name="prefs_importanceVisible_title">Importance</string>
<string name="prefs_importanceVisible_desc">Task importance indicator</string>
<string name="prefs_tagsVisible_title">Tags</string>
<string name="prefs_tagsVisible_desc">Tags associated with this task</string>
<string name="prefs_repeatVisible_title">Repeats</string>
<string name="prefs_repeatVisible_desc">Task repeat information</string>
<string name="prefs_reminderVisible_title">Reminders</string>
<string name="prefs_reminderVisible_desc">Displayed if this task has reminders</string>
<string name="prefs_notesVisible_title">Notes</string>
<string name="prefs_notesVisible_desc">Notes associated with this task</string>
<!-- This string is Astrid's Android Marketplace title. It never appears in the app itself. -->
<string name="marketplace_title">Astrid Task/Todo List</string>
<!-- This string is Astrid's Android Marketplace description. It never appears in the app itself. -->
<string name="marketplace_description">
Astrid is the highly-acclaimed open-source task list that is simple enough to not get in your way, powerful enough to help you get stuff done! Tags, reminders, RememberTheMilk sync, Locale plug-in &amp; more!
</string>
<!-- Automatically filled in by Launchpad: -->
<string name="about_translators">translator-credits</string>
<!-- Widget text when loading tasks -->
<string name="widget_loading">Loading...</string>
<!-- Permissions -->
<string name="read_tasks_permission">Read Astrid tasks</string>
</resources>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Resources for built-in locale plug-in -->
<!-- Locale Alert Editing Window Title -->
<string name="locale_edit_alerts_title">Astrid Tag Alert</string>
<!-- Locale Window Help -->
<string name="locale_edit_intro">Astrid will send you a reminder
when you have uncompleted tasks in the following filter:</string>
<!-- Locale Window Filter Picker UI -->
<string name="locale_pick_filter">Filter:</string>
<!-- Locale style -->
<style name="TextAppearance.Locale_Label">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@android:color/black</item>
</style>
</resources>

@ -111,7 +111,6 @@
<!-- Default Reminders Setting (%s => setting) --> <!-- Default Reminders Setting (%s => setting) -->
<string name="rmd_EPr_defaultRemind_desc">New tasks will remind randomly: %s</string> <string name="rmd_EPr_defaultRemind_desc">New tasks will remind randomly: %s</string>
<!-- Defaults Title --> <!-- Defaults Title -->
<string name="rmd_EPr_defaults_header">New Task Defaults</string> <string name="rmd_EPr_defaults_header">New Task Defaults</string>
@ -137,6 +136,63 @@
<item>1460</item> <item>1460</item>
</string-array> </string-array>
<string-array name="EPr_quiet_hours_start">
<!-- quiet_hours_start: options for preference menu. Translate but don't change the times!. -->
<item>disabled</item>
<item>8 PM</item>
<item>9 PM</item>
<item>10 PM</item>
<item>11 PM</item>
<item>12 AM</item>
<item>1 AM</item>
<item>2 AM</item>
<item>3 AM</item>
<item>4 AM</item>
<item>5 AM</item>
<item>6 AM</item>
<item>7 AM</item>
<item>8 AM</item>
<item>9 AM</item>
<item>10 AM</item>
<item>11 AM</item>
<item>12 PM</item>
<item>1 PM</item>
<item>2 PM</item>
<item>3 PM</item>
<item>4 PM</item>
<item>5 PM</item>
<item>6 PM</item>
<item>7 PM</item>
</string-array>
<string-array name="EPr_quiet_hours_end">
<!-- quiet_hours_end: options for preference menu. Translate but don't change the times! -->
<item>9 AM</item>
<item>10 AM</item>
<item>11 AM</item>
<item>12 PM</item>
<item>1 PM</item>
<item>2 PM</item>
<item>3 PM</item>
<item>4 PM</item>
<item>5 PM</item>
<item>6 PM</item>
<item>7 PM</item>
<item>8 PM</item>
<item>9 PM</item>
<item>10 PM</item>
<item>11 PM</item>
<item>12 AM</item>
<item>1 AM</item>
<item>2 AM</item>
<item>3 AM</item>
<item>4 AM</item>
<item>5 AM</item>
<item>6 AM</item>
<item>7 AM</item>
<item>8 AM</item>
</string-array>
<!-- =============================================== random reminders == --> <!-- =============================================== random reminders == -->
<string-array name="reminders"> <string-array name="reminders">

@ -44,7 +44,7 @@
<!-- ======================== MilkPreferences ========================== --> <!-- ======================== MilkPreferences ========================== -->
<!-- Title --> <!-- Milk Preferences Title -->
<string name="rmilk_MPr_header">Remember the Milk</string> <string name="rmilk_MPr_header">Remember the Milk</string>
<!-- Status Group Label --> <!-- Status Group Label -->

@ -80,4 +80,11 @@
<item name="android:textStyle">bold|italic</item> <item name="android:textStyle">bold|italic</item>
</style> </style>
<!-- ======================== FilterListAdapter ======================== -->
<style name="TextAppearance.Widget">
<item name="android:textSize">14sp</item>
<item name="android:textColor">@android:color/black</item>
</style>
</resources> </resources>

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Alert" parent="android:Theme.Dialog">
<item name="android:windowBackground">@null</item>
</style>
<style name="TextAppearance" parent="android:TextAppearance">
</style>
<style name="TextAppearance.Locale_Label">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@android:color/black</item>
</style>
<style name="TextAppearance.TaskList_Task">
<item name="android:textSize">20sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="TextAppearance.TaskList_Detail">
<item name="android:textSize">10sp</item>
<item name="android:textColor">@color/taskList_details</item>
</style>
<style name="TextAppearance.EditEvent_Label">
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="WidgetBackground">
<item name="android:background">@drawable/widget_frame</item>
</style>
<style name="WidgetBackgroundLand">
<item name="android:background">@drawable/widget_frame</item>
</style>
<style name="Text">
</style>
<style name="Text.Loading">
<item name="android:textSize">14sp</item>
<item name="android:textColor">@android:color/black</item>
</style>
</resources>

@ -4,13 +4,13 @@
android:title="@string/EPr_title"> android:title="@string/EPr_title">
<PreferenceCategory <PreferenceCategory
android:title="@string/prefs_category_appearance"> android:title="@string/EPr_appearance_header">
<ListPreference <ListPreference
android:key="@string/p_fontSize" android:key="@string/p_fontSize"
android:entries="@array/EPr_font_size" android:entries="@array/EPr_font_size"
android:entryValues="@array/EPr_font_size" android:entryValues="@array/EPr_font_size"
android:title="@string/prefs_fontSize_title" android:title="@string/EPr_fontSize_title"
android:summary="@string/prefs_fontSize_desc" /> android:summary="@string/EPr_fontSize_desc" />
</PreferenceCategory> </PreferenceCategory>
<!-- PreferenceCategory <!-- PreferenceCategory
@ -19,11 +19,6 @@
android:key="@string/p_backup" android:key="@string/p_backup"
android:title="@string/prefs_backup_title" android:title="@string/prefs_backup_title"
android:summary="@string/prefs_backup_desc" android:summary="@string/prefs_backup_desc"
android:defaultValue="true" /> android:defaultValue="true" /> -->
<ListPreference
android:key="@string/prefs_defaultCalendar"
android:title="@string/prefs_defaultCalendar_title"
android:summary="@string/prefs_defaultCalendar_desc" />
</PreferenceCategory> -->
</PreferenceScreen> </PreferenceScreen>

@ -24,16 +24,16 @@ import com.timsu.astrid.R;
public enum Importance { public enum Importance {
// MOST IMPORTANT // MOST IMPORTANT
LEVEL_1(R.string.importance_1, LEVEL_1(0,
R.color.importance_1, R.color.importance_1,
R.color.task_list_importance_1), R.color.task_list_importance_1),
LEVEL_2(R.string.importance_2, LEVEL_2(0,
R.color.importance_2, R.color.importance_2,
R.color.task_list_importance_2), R.color.task_list_importance_2),
LEVEL_3(R.string.importance_3, LEVEL_3(0,
R.color.importance_3, R.color.importance_3,
R.color.task_list_importance_3), R.color.task_list_importance_3),
LEVEL_4(R.string.importance_4, LEVEL_4(0,
R.color.importance_4, R.color.importance_4,
R.color.task_list_importance_4), R.color.task_list_importance_4),

@ -23,29 +23,27 @@ import java.util.Date;
import android.content.res.Resources; import android.content.res.Resources;
import com.timsu.astrid.R;
public enum RepeatInterval { public enum RepeatInterval {
DAYS(R.string.repeat_days) { DAYS(0) {
@Override @Override
public void offsetDateBy(Date input, int number) { public void offsetDateBy(Date input, int number) {
input.setDate(input.getDate() + number); input.setDate(input.getDate() + number);
} }
}, },
WEEKS(R.string.repeat_weeks) { WEEKS(0) {
@Override @Override
public void offsetDateBy(Date input, int number) { public void offsetDateBy(Date input, int number) {
input.setDate(input.getDate() + 7 * number); input.setDate(input.getDate() + 7 * number);
} }
}, },
MONTHS(R.string.repeat_months) { MONTHS(0) {
@Override @Override
public void offsetDateBy(Date input, int number) { public void offsetDateBy(Date input, int number) {
input.setMonth(input.getMonth() + number); input.setMonth(input.getMonth() + number);
} }
}, },
HOURS(R.string.repeat_hours) { HOURS(0) {
@Override @Override
public void offsetDateBy(Date input, int number) { public void offsetDateBy(Date input, int number) {
input.setHours(input.getHours() + number); input.setHours(input.getHours() + number);

@ -32,11 +32,12 @@ import android.database.sqlite.SQLiteDatabase;
import com.timsu.astrid.data.AbstractController; import com.timsu.astrid.data.AbstractController;
import com.timsu.astrid.data.tag.AbstractTagModel.TagModelDatabaseHelper; import com.timsu.astrid.data.tag.AbstractTagModel.TagModelDatabaseHelper;
import com.timsu.astrid.data.tag.TagToTaskMapping.TagToTaskMappingDatabaseHelper; import com.timsu.astrid.data.tag.TagToTaskMapping.TagToTaskMappingDatabaseHelper;
import com.timsu.astrid.data.task.AbstractTaskModel.TaskModelDatabaseHelper;
import com.timsu.astrid.data.task.TaskIdentifier; import com.timsu.astrid.data.task.TaskIdentifier;
import com.timsu.astrid.data.task.AbstractTaskModel.TaskModelDatabaseHelper;
import com.timsu.astrid.provider.TasksProvider; import com.timsu.astrid.provider.TasksProvider;
/** Controller for Tag-related operations */ /** Controller for Tag-related operations */
@Deprecated
public class TagController extends AbstractController { public class TagController extends AbstractController {
private SQLiteDatabase tagDatabase, tagToTaskMapDatabase; private SQLiteDatabase tagDatabase, tagToTaskMapDatabase;

@ -50,6 +50,7 @@ import com.todoroo.astrid.widget.TasksWidget.UpdateService;
* @author timsu * @author timsu
* *
*/ */
@Deprecated
public class TaskController extends AbstractController { public class TaskController extends AbstractController {
private SQLiteDatabase database; private SQLiteDatabase database;

@ -4,9 +4,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import android.database.Cursor; import android.database.Cursor;
import android.util.Log;
import com.timsu.astrid.R;
import com.timsu.astrid.data.AbstractController; import com.timsu.astrid.data.AbstractController;
import com.timsu.astrid.data.enums.Importance; import com.timsu.astrid.data.enums.Importance;
import com.timsu.astrid.data.enums.RepeatInterval; import com.timsu.astrid.data.enums.RepeatInterval;
@ -168,26 +166,7 @@ public class TaskModelForXml extends AbstractTaskModel {
try { try {
setRepeatInterval(RepeatInterval.valueOf(value)); setRepeatInterval(RepeatInterval.valueOf(value));
} catch (Exception e) { } catch (Exception e) {
RepeatInterval repeatInterval; // bad saving format, old backup
switch (Integer.parseInt(value)) {
case R.string.repeat_days:
repeatInterval = RepeatInterval.DAYS;
break;
case R.string.repeat_weeks:
repeatInterval = RepeatInterval.WEEKS;
break;
case R.string.repeat_months:
repeatInterval = RepeatInterval.MONTHS;
break;
case R.string.repeat_hours:
repeatInterval = RepeatInterval.HOURS;
break;
default:
Log.e("XmlImport", "Unable to set repeat interval");
repeatInterval = RepeatInterval.DAYS;
break;
}
setRepeatInterval(repeatInterval);
} }
} }
else if(field.equals(REPEAT_VALUE)) { else if(field.equals(REPEAT_VALUE)) {

@ -162,10 +162,7 @@ public class LegacyTasksXmlExporter {
} }
private void displayToast() { private void displayToast() {
CharSequence text = String.format(ctx.getString(R.string.export_toast), // no toast in legacy exporter
ctx.getResources().getQuantityString(R.plurals.Ntasks, exportCount,
exportCount), output);
Toast.makeText(ctx, text, Toast.LENGTH_LONG).show();
} }
private void displayErrorToast(String error) { private void displayErrorToast(String error) {
@ -219,7 +216,7 @@ public class LegacyTasksXmlExporter {
return true; return true;
} else { } else {
// Unable to make the /sdcard/astrid directory. // Unable to make the /sdcard/astrid directory.
String error = ctx.getString(R.string.error_sdcard, astridDir.getAbsolutePath()); String error = ctx.getString(R.string.DLG_error_sdcard, astridDir.getAbsolutePath());
Log.e("TasksXmlExporter", error); Log.e("TasksXmlExporter", error);
if (!isService) { if (!isService) {
displayErrorToast(error); displayErrorToast(error);
@ -228,7 +225,7 @@ public class LegacyTasksXmlExporter {
} }
} else { } else {
// Unable to access the sdcard because it's not in the mounted state. // Unable to access the sdcard because it's not in the mounted state.
String error = ctx.getString(R.string.error_sdcard_general); String error = ctx.getString(R.string.DLG_error_sdcard_general);
Log.e("TasksXmlExporter", error); Log.e("TasksXmlExporter", error);
if (!isService) { if (!isService) {
displayErrorToast(error); displayErrorToast(error);

@ -27,8 +27,8 @@ import java.util.List;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TabActivity; import android.app.TabActivity;
import android.app.DatePickerDialog.OnDateSetListener;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@ -42,7 +42,6 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
@ -56,6 +55,7 @@ import android.widget.TabHost;
import android.widget.TimePicker; import android.widget.TimePicker;
import android.widget.Toast; import android.widget.Toast;
import android.widget.ToggleButton; import android.widget.ToggleButton;
import android.widget.AdapterView.OnItemSelectedListener;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -212,10 +212,10 @@ public final class TaskEditActivity extends TabActivity {
LinearLayout addonsAddons = (LinearLayout) findViewById(R.id.tab_addons_addons); LinearLayout addonsAddons = (LinearLayout) findViewById(R.id.tab_addons_addons);
controls.add(new GCalControlSet(this, addonsAddons)); controls.add(new GCalControlSet(this, addonsAddons));
controls.add(new TimeDurationTaskEditControlSet(Task.ESTIMATED_SECONDS, controls.add(new TimeDurationTaskEditControlSet(Task.ESTIMATED_SECONDS,
R.id.estimatedDuration, 0, R.string.hour_minutes_dialog, R.id.estimatedDuration, 0, R.string.DLG_hour_minutes,
TimeDurationType.HOURS_MINUTES)); TimeDurationType.HOURS_MINUTES));
controls.add(new TimeDurationTaskEditControlSet(Task.ELAPSED_SECONDS, R.id.elapsedDuration, controls.add(new TimeDurationTaskEditControlSet(Task.ELAPSED_SECONDS, R.id.elapsedDuration,
0, R.string.hour_minutes_dialog, 0, R.string.DLG_hour_minutes,
TimeDurationType.HOURS_MINUTES)); TimeDurationType.HOURS_MINUTES));
// read data // read data

@ -148,7 +148,7 @@ public class StartupService {
}; };
new AlertDialog.Builder(context) new AlertDialog.Builder(context)
.setTitle(R.string.information_title) .setTitle(R.string.DLG_information_title)
.setMessage(context.getString(R.string.task_killer_help, .setMessage(context.getString(R.string.task_killer_help,
appName)) appName))
.setIcon(android.R.drawable.ic_dialog_alert) .setIcon(android.R.drawable.ic_dialog_alert)

@ -20,7 +20,7 @@ public class FilePickerBuilder extends AlertDialog.Builder implements DialogInte
void onFilePicked(String filePath); void onFilePicked(String filePath);
} }
private OnFilePickedListener callback; private final OnFilePickedListener callback;
private String[] files; private String[] files;
private String path; private String path;
private FilenameFilter filter; private FilenameFilter filter;
@ -54,7 +54,7 @@ public class FilePickerBuilder extends AlertDialog.Builder implements DialogInte
setItems(files, this); setItems(files, this);
} else { } else {
Log.e("FilePicker", "Cannot access sdcard."); Log.e("FilePicker", "Cannot access sdcard.");
setMessage(R.string.error_sdcard + "sdcard"); setMessage(R.string.DLG_error_sdcard + "sdcard");
} }
} }

@ -51,7 +51,6 @@ public class TimeDurationControlSet implements OnNNumberPickedListener,
public TimeDurationControlSet(Activity activity, int timeButtonId, public TimeDurationControlSet(Activity activity, int timeButtonId,
int prefixResource, int titleResource, TimeDurationType type) { int prefixResource, int titleResource, TimeDurationType type) {
Resources r = activity.getResources();
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
this.activity = activity; this.activity = activity;
@ -67,8 +66,8 @@ public class TimeDurationControlSet implements OnNNumberPickedListener,
activity.getResources().getString(titleResource), activity.getResources().getString(titleResource),
new int[] {0, 0}, new int[] {1, 1}, new int[] {0, 0}, new int[] {0, 0}, new int[] {1, 1}, new int[] {0, 0},
new int[] {31, 23}, new String[] { new int[] {31, 23}, new String[] {
r.getString(R.string.daysVertical), "d\na\ny\ns",
r.getString(R.string.hoursVertical) "h\nr\ns"
}); });
break; break;
case HOURS_MINUTES: case HOURS_MINUTES:
@ -93,7 +92,7 @@ public class TimeDurationControlSet implements OnNNumberPickedListener,
Resources r = activity.getResources(); Resources r = activity.getResources();
if(timeDurationInSeconds == 0) { if(timeDurationInSeconds == 0) {
timeButton.setText(r.getString(R.string.blank_button_title)); timeButton.setText(r.getString(R.string.WID_dateButtonUnset));
return; return;
} }

Loading…
Cancel
Save