First pass at a migration for asserting the hide until section always exists

pull/14/head
Sam Bosley 14 years ago
parent fe3241022b
commit 76ac2d53d5

@ -408,25 +408,12 @@
<item >@string/TEA_control_lists</item> <item >@string/TEA_control_lists</item>
<item >@string/TEA_control_notes</item> <item >@string/TEA_control_notes</item>
<item >@string/TEA_control_files</item> <item >@string/TEA_control_files</item>
<item >@string/TEA_control_hidden_section</item>
<item >@string/TEA_control_reminders</item> <item >@string/TEA_control_reminders</item>
<item >@string/TEA_control_timer</item> <item >@string/TEA_control_timer</item>
<item >@string/TEA_control_share</item> <item >@string/TEA_control_share</item>
</string-array> </string-array>
<string-array name="TEA_control_sets">
<item>@string/TEA_control_title</item>
<item>@string/TEA_control_who</item>
<item>@string/TEA_control_when</item>
<item>@string/TEA_control_more_section</item>
<item>@string/TEA_control_importance</item>
<item>@string/TEA_control_lists</item>
<item>@string/TEA_control_notes</item>
<item>@string/TEA_control_files</item>
<item>@string/TEA_control_reminders</item>
<item>@string/TEA_control_timer</item>
<item>@string/TEA_control_share</item>
</string-array>
<string name="TEA_ctrl_title_pref">TEA_ctrl_title_pref</string> <!-- Deprecated --> <string name="TEA_ctrl_title_pref">TEA_ctrl_title_pref</string> <!-- Deprecated -->
<string name="TEA_ctrl_who_pref">TEA_ctrl_who_pref</string> <string name="TEA_ctrl_who_pref">TEA_ctrl_who_pref</string>
<string name="TEA_ctrl_when_pref">TEA_ctrl_when_pref</string> <string name="TEA_ctrl_when_pref">TEA_ctrl_when_pref</string>
@ -436,6 +423,7 @@
<string name="TEA_ctrl_lists_pref">TEA_ctrl_lists_pref</string> <string name="TEA_ctrl_lists_pref">TEA_ctrl_lists_pref</string>
<string name="TEA_ctrl_notes_pref">TEA_ctrl_notes_pref</string> <string name="TEA_ctrl_notes_pref">TEA_ctrl_notes_pref</string>
<string name="TEA_ctrl_files_pref">TEA_ctrl_files_pref</string> <string name="TEA_ctrl_files_pref">TEA_ctrl_files_pref</string>
<string name="TEA_ctrl_hide_section_pref">TEA_ctrl_hide_section_pref</string>
<string name="TEA_ctrl_reminders_pref">TEA_ctrl_reminders_pref</string> <string name="TEA_ctrl_reminders_pref">TEA_ctrl_reminders_pref</string>
<string name="TEA_ctrl_timer_pref">TEA_ctrl_timer_pref</string> <string name="TEA_ctrl_timer_pref">TEA_ctrl_timer_pref</string>
<string name="TEA_ctrl_share_pref">TEA_ctrl_share_pref</string> <string name="TEA_ctrl_share_pref">TEA_ctrl_share_pref</string>
@ -448,6 +436,7 @@
<item>@string/TEA_ctrl_lists_pref</item> <item>@string/TEA_ctrl_lists_pref</item>
<item>@string/TEA_ctrl_notes_pref</item> <item>@string/TEA_ctrl_notes_pref</item>
<item>@string/TEA_ctrl_files_pref</item> <item>@string/TEA_ctrl_files_pref</item>
<item>@string/TEA_ctrl_hide_section_pref</item>
<item>@string/TEA_ctrl_reminders_pref</item> <item>@string/TEA_ctrl_reminders_pref</item>
<item>@string/TEA_ctrl_timer_pref</item> <item>@string/TEA_ctrl_timer_pref</item>
<item>@string/TEA_ctrl_share_pref</item> <item>@string/TEA_ctrl_share_pref</item>

@ -448,6 +448,8 @@
<!-- slide 16g --> <!-- slide 16g -->
<string name="TEA_control_share">Share With Friends</string> <string name="TEA_control_share">Share With Friends</string>
<string name="TEA_control_hidden_section">----Hide Always----</string>
<string name="hide_until_prompt">Show in my list</string> <string name="hide_until_prompt">Show in my list</string>
<!-- Add Ons tab when no add-ons found --> <!-- Add Ons tab when no add-ons found -->

@ -12,6 +12,7 @@ import android.app.ListActivity;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.View.OnTouchListener; import android.view.View.OnTouchListener;
@ -36,8 +37,45 @@ public class BeastModePreferences extends ListActivity {
public static final String BEAST_MODE_PREF_ITEM_SEPARATOR = ";"; //$NON-NLS-1$ public static final String BEAST_MODE_PREF_ITEM_SEPARATOR = ";"; //$NON-NLS-1$
private static final String BEAST_MODE_ASSERTED_HIDE_ALWAYS = "asserted_hide_always"; //$NON-NLS-1$
private HashMap<String, String> prefsToDescriptions; private HashMap<String, String> prefsToDescriptions;
/**
* Migration for existing users to assert that the "hide always" section divider exists in the preferences.
* Knowing that this section will always be in the constructed list of controls simplifies the logic a bit.
* @param c
*/
public static void assertHideUntilSectionExists(Context c, long latestSetVersion) {
if (latestSetVersion == 0)
Preferences.setBoolean(BEAST_MODE_ASSERTED_HIDE_ALWAYS, true);
if (Preferences.getBoolean(BEAST_MODE_ASSERTED_HIDE_ALWAYS, false))
return;
String order = Preferences.getStringValue(BEAST_MODE_ORDER_PREF);
String hideSectionPref = c.getString(R.string.TEA_ctrl_hide_section_pref);
if (TextUtils.isEmpty(order)) {
// create preference and stick hide always at the end of it
String[] items = c.getResources().getStringArray(R.array.TEA_control_sets_prefs);
StringBuilder builder = new StringBuilder();
for (String item : items) {
if (item.equals(hideSectionPref))
continue;
builder.append(item);
builder.append(BEAST_MODE_PREF_ITEM_SEPARATOR);
}
builder.append(hideSectionPref);
builder.append(BEAST_MODE_PREF_ITEM_SEPARATOR);
} else if (!order.contains(hideSectionPref)) {
order += (hideSectionPref + BEAST_MODE_PREF_ITEM_SEPARATOR);
}
Preferences.setString(BEAST_MODE_ORDER_PREF, order);
Preferences.setBoolean(BEAST_MODE_ASSERTED_HIDE_ALWAYS, true);
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);

@ -37,6 +37,7 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncService; import com.todoroo.astrid.actfm.sync.ActFmSyncService;
import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.backup.BackupConstants; import com.todoroo.astrid.backup.BackupConstants;
import com.todoroo.astrid.backup.BackupService; import com.todoroo.astrid.backup.BackupService;
import com.todoroo.astrid.backup.TasksXmlImporter; import com.todoroo.astrid.backup.TasksXmlImporter;
@ -154,6 +155,8 @@ public class StartupService {
Preferences.setLong(AstridPreferences.P_FIRST_LAUNCH, 0); Preferences.setLong(AstridPreferences.P_FIRST_LAUNCH, 0);
} }
BeastModePreferences.assertHideUntilSectionExists(context, latestSetVersion);
int version = 0; int version = 0;
String versionName = "0"; //$NON-NLS-1$ String versionName = "0"; //$NON-NLS-1$
try { try {

Loading…
Cancel
Save