diff --git a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java index bc0fd72c7..0a34cd70d 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java @@ -2,19 +2,23 @@ package com.todoroo.astrid.files; import java.io.File; import java.util.ArrayList; +import java.util.Date; import android.app.Activity; +import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; +import com.timsu.astrid.R; import com.todoroo.aacenc.RecognizerApi; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Query; +import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Task; @@ -27,21 +31,25 @@ public class FilesControlSet extends PopupControlSet { private MetadataService metadataService; private final ArrayList files = new ArrayList(); + private final LinearLayout fileList; public FilesControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) { super(activity, viewLayout, displayViewLayout, title); DependencyInjectionService.getInstance().inject(this); + + displayText.setText(activity.getString(R.string.TEA_control_files)); + fileList = (LinearLayout) getDisplayView().findViewById(R.id.files_list); } @Override protected void refreshDisplayView() { - LinearLayout display = (LinearLayout) getDisplayView(); - display.removeAllViews(); + fileList.removeAllViews(); for (final File f : files) { TextView textView = new TextView(activity); - String name = f.getName(); + String name = parseName(f.getName()); textView.setText(name); - if (name.contains("audio")) { + textView.setTextAppearance(activity, R.style.TextAppearance_EditRowDisplay); + if (name.contains("audio")) { //$NON-NLS-1$ textView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -49,7 +57,10 @@ public class FilesControlSet extends PopupControlSet { } }); } - display.addView(textView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); + + LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + lp.gravity = Gravity.RIGHT; + fileList.addView(textView, lp); } } @@ -70,6 +81,7 @@ public class FilesControlSet extends PopupControlSet { } finally { cursor.close(); } + refreshDisplayView(); } @Override @@ -88,4 +100,16 @@ public class FilesControlSet extends PopupControlSet { // TODO Auto-generated method stub } + @Override + protected OnClickListener getDisplayClickListener() { + return null; + } + + private String parseName(String filename) { + String[] components = filename.split("_"); + long date = Long.parseLong(components[1]); + String dateString = DateUtilities.getDateString(activity, new Date(date)); + return components[2] + " " + dateString; + } + } diff --git a/astrid/res/layout/control_set_files_display.xml b/astrid/res/layout/control_set_files_display.xml new file mode 100644 index 000000000..4ed481fcb --- /dev/null +++ b/astrid/res/layout/control_set_files_display.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + diff --git a/astrid/res/values/keys.xml b/astrid/res/values/keys.xml index 401ca902e..4f7f5e948 100644 --- a/astrid/res/values/keys.xml +++ b/astrid/res/values/keys.xml @@ -401,6 +401,7 @@ @string/TEA_control_importance @string/TEA_control_lists @string/TEA_control_notes + @string/TEA_control_files @string/TEA_control_reminders @string/TEA_control_timer @string/TEA_control_share @@ -414,6 +415,7 @@ @string/TEA_control_importance @string/TEA_control_lists @string/TEA_control_notes + @string/TEA_control_files @string/TEA_control_reminders @string/TEA_control_timer @string/TEA_control_share @@ -427,6 +429,7 @@ TEA_ctrl_importance_pref TEA_ctrl_lists_pref TEA_ctrl_notes_pref + TEA_ctrl_files_pref TEA_ctrl_reminders_pref TEA_ctrl_timer_pref TEA_ctrl_share_pref @@ -438,6 +441,7 @@ @string/TEA_ctrl_importance_pref @string/TEA_ctrl_lists_pref @string/TEA_ctrl_notes_pref + @string/TEA_ctrl_files_pref @string/TEA_ctrl_reminders_pref @string/TEA_ctrl_timer_pref @string/TEA_ctrl_share_pref diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index 0079bebd5..a09bcf752 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -419,8 +419,9 @@ When ----Details---- Importance - Lists + Lists Notes + Files Reminders Timer Controls Share With Friends diff --git a/astrid/src/com/todoroo/astrid/activity/BeastModePreferences.java b/astrid/src/com/todoroo/astrid/activity/BeastModePreferences.java index 8d290aa45..681d1ba02 100644 --- a/astrid/src/com/todoroo/astrid/activity/BeastModePreferences.java +++ b/astrid/src/com/todoroo/astrid/activity/BeastModePreferences.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; +import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.view.MotionEvent; @@ -42,20 +43,7 @@ public class BeastModePreferences extends ListActivity { buildDescriptionMap(getResources()); touchList = (TouchListView) getListView(); - String order = Preferences.getStringValue(BEAST_MODE_ORDER_PREF); - String[] itemsArray; - if (order == null) { - itemsArray = getResources().getStringArray(R.array.TEA_control_sets_prefs); - } else { - itemsArray = order.split(BEAST_MODE_PREF_ITEM_SEPARATOR); - } - - items = new ArrayList(); - for (String s : itemsArray) { - if (!s.equals(getResources().getString(R.string.TEA_ctrl_title_pref))){ - items.add(s); - } - } + items = constructOrderedControlList(this); adapter = new ArrayAdapter(this, R.layout.preference_draggable_row, R.id.text, items) { @Override @@ -120,4 +108,31 @@ public class BeastModePreferences extends ListActivity { super.finish(); } + public static ArrayList constructOrderedControlList(Context context) { + String order = Preferences.getStringValue(BEAST_MODE_ORDER_PREF); + ArrayList list = new ArrayList(); + String[] itemsArray; + if (order == null) { + itemsArray = context.getResources().getStringArray(R.array.TEA_control_sets_prefs); + } else { + itemsArray = order.split(BEAST_MODE_PREF_ITEM_SEPARATOR); + } + + for (String s : itemsArray) { + if (!s.equals(context.getResources().getString(R.string.TEA_ctrl_title_pref))){ + list.add(s); + } + } + + if (order == null) + return list; + + itemsArray = context.getResources().getStringArray(R.array.TEA_control_sets_prefs); + for (int i = 0; i < itemsArray.length; i++) { + if (!list.contains(itemsArray[i])) + list.add(i, itemsArray[i]); + } + return list; + } + } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java index 4e4298ab3..e4c1d8d48 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java @@ -70,6 +70,7 @@ import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.EditPeopleControlSet; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.files.FilesControlSet; import com.todoroo.astrid.gcal.GCalControlSet; import com.todoroo.astrid.helper.TaskEditControlSet; import com.todoroo.astrid.notes.EditNoteActivity; @@ -550,6 +551,13 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { controls.add(timerControl); controlSetMap.put(getString(R.string.TEA_ctrl_timer_pref), timerControl); + FilesControlSet filesControl = new FilesControlSet(getActivity(), + -1, + R.layout.control_set_files_display, + R.string.TEA_control_files); + controls.add(filesControl); + controlSetMap.put(getString(R.string.TEA_ctrl_files_pref), filesControl); + try { if (ProducteevUtilities.INSTANCE.isLoggedIn()) { ProducteevControlSet producteevControl = new ProducteevControlSet( @@ -578,13 +586,9 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { Log.e("astrid-error", "loading-control-set", e); //$NON-NLS-1$ //$NON-NLS-2$ } - String[] itemOrder; - String orderPreference = Preferences.getStringValue(BeastModePreferences.BEAST_MODE_ORDER_PREF); - if (orderPreference != null) - itemOrder = orderPreference.split(BeastModePreferences.BEAST_MODE_PREF_ITEM_SEPARATOR); - else - itemOrder = getResources().getStringArray( - R.array.TEA_control_sets_prefs); + ArrayList controlOrder = BeastModePreferences.constructOrderedControlList(getActivity()); + String[] itemOrder = controlOrder.toArray(new String[controlOrder.size()]); + String moreSectionTrigger = getString(R.string.TEA_ctrl_more_pref); String shareViewDescriptor = getString(R.string.TEA_ctrl_share_pref); LinearLayout section = basicControls;