Move backup preferences to top level

pull/467/head
Alex Baker 9 years ago
parent 52f0db8e52
commit 1889a80b9c

@ -26,7 +26,6 @@ import org.tasks.files.FileExplore;
import org.tasks.files.MyFilePickerActivity; import org.tasks.files.MyFilePickerActivity;
import org.tasks.locale.ui.activity.TaskerSettingsActivity; import org.tasks.locale.ui.activity.TaskerSettingsActivity;
import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.AppearancePreferences;
import org.tasks.preferences.BackupPreferences;
import org.tasks.preferences.BasicPreferences; import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.DateShortcutPreferences; import org.tasks.preferences.DateShortcutPreferences;
import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.HelpAndFeedbackActivity;
@ -106,8 +105,6 @@ public interface ActivityComponent {
void inject(ShortcutConfigActivity shortcutConfigActivity); void inject(ShortcutConfigActivity shortcutConfigActivity);
void inject(BackupPreferences backupPreferences);
void inject(MiscellaneousPreferences miscellaneousPreferences); void inject(MiscellaneousPreferences miscellaneousPreferences);
void inject(HelpAndFeedbackActivity helpAndFeedbackActivity); void inject(HelpAndFeedbackActivity helpAndFeedbackActivity);

@ -26,7 +26,6 @@ import org.tasks.files.FileExplore;
import org.tasks.files.MyFilePickerActivity; import org.tasks.files.MyFilePickerActivity;
import org.tasks.locale.ui.activity.TaskerSettingsActivity; import org.tasks.locale.ui.activity.TaskerSettingsActivity;
import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.AppearancePreferences;
import org.tasks.preferences.BackupPreferences;
import org.tasks.preferences.BasicPreferences; import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.DateShortcutPreferences; import org.tasks.preferences.DateShortcutPreferences;
import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.HelpAndFeedbackActivity;
@ -106,8 +105,6 @@ public interface ActivityComponent {
void inject(ShortcutConfigActivity shortcutConfigActivity); void inject(ShortcutConfigActivity shortcutConfigActivity);
void inject(BackupPreferences backupPreferences);
void inject(MiscellaneousPreferences miscellaneousPreferences); void inject(MiscellaneousPreferences miscellaneousPreferences);
void inject(HelpAndFeedbackActivity helpAndFeedbackActivity); void inject(HelpAndFeedbackActivity helpAndFeedbackActivity);

@ -28,7 +28,6 @@ import org.tasks.files.FileExplore;
import org.tasks.files.MyFilePickerActivity; import org.tasks.files.MyFilePickerActivity;
import org.tasks.locale.ui.activity.TaskerSettingsActivity; import org.tasks.locale.ui.activity.TaskerSettingsActivity;
import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.AppearancePreferences;
import org.tasks.preferences.BackupPreferences;
import org.tasks.preferences.BasicPreferences; import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.DateShortcutPreferences; import org.tasks.preferences.DateShortcutPreferences;
import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.HelpAndFeedbackActivity;
@ -113,8 +112,6 @@ public interface ActivityComponent {
void inject(ShortcutConfigActivity shortcutConfigActivity); void inject(ShortcutConfigActivity shortcutConfigActivity);
void inject(BackupPreferences backupPreferences);
void inject(MiscellaneousPreferences miscellaneousPreferences); void inject(MiscellaneousPreferences miscellaneousPreferences);
void inject(HelpAndFeedbackActivity helpAndFeedbackActivity); void inject(HelpAndFeedbackActivity helpAndFeedbackActivity);

@ -192,11 +192,6 @@
android:label="@string/miscellaneous" android:label="@string/miscellaneous"
android:theme="@style/Tasks" /> android:theme="@style/Tasks" />
<activity
android:name=".preferences.BackupPreferences"
android:label="@string/backup_BPr_header"
android:theme="@style/Tasks" />
<!-- Activity that configures widget --> <!-- Activity that configures widget -->
<!--suppress AndroidLintExportedPreferenceActivity --> <!--suppress AndroidLintExportedPreferenceActivity -->
<activity <activity

@ -1,89 +0,0 @@
package org.tasks.preferences;
import android.content.Intent;
import android.os.Bundle;
import org.tasks.R;
import org.tasks.files.FileExplore;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingPreferenceActivity;
import java.io.File;
import javax.inject.Inject;
import static org.tasks.dialogs.ExportTasksDialog.newExportTasksDialog;
import static org.tasks.dialogs.ImportTasksDialog.newImportTasksDialog;
public class BackupPreferences extends InjectingPreferenceActivity {
private static final String FRAG_TAG_IMPORT_TASKS = "frag_tag_import_tasks";
private static final String FRAG_TAG_EXPORT_TASKS = "frag_tag_export_tasks";
private static final int REQUEST_CODE_BACKUP_DIR = 2;
private static final int REQUEST_PICKER = 1000;
@Inject Preferences preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_backup);
findPreference(R.string.backup_BAc_import).setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(BackupPreferences.this, FileExplore.class);
intent.putExtra(FileExplore.EXTRA_START_PATH, preferences.getBackupDirectory().getAbsolutePath());
startActivityForResult(intent, REQUEST_PICKER);
return false;
});
findPreference(R.string.backup_BAc_export).setOnPreferenceClickListener(preference -> {
newExportTasksDialog().show(getFragmentManager(), FRAG_TAG_EXPORT_TASKS);
return false;
});
initializeBackupDirectory();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_BACKUP_DIR && resultCode == RESULT_OK) {
if (data != null) {
String dir = data.getStringExtra(FileExplore.EXTRA_DIRECTORY);
preferences.setString(R.string.p_backup_dir, dir);
updateBackupDirectory();
}
} else if (requestCode == REQUEST_PICKER) {
if (resultCode == RESULT_OK) {
newImportTasksDialog(data.getStringExtra(FileExplore.EXTRA_FILE))
.show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
private void initializeBackupDirectory() {
findPreference(getString(R.string.p_backup_dir)).setOnPreferenceClickListener(p -> {
Intent filesDir = new Intent(BackupPreferences.this, FileExplore.class);
filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR);
return true;
});
updateBackupDirectory();
}
private void updateBackupDirectory() {
findPreference(getString(R.string.p_backup_dir)).setSummary(getBackupDirectory());
}
private String getBackupDirectory() {
File dir = preferences.getBackupDirectory();
return dir == null ? "" : dir.getAbsolutePath();
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
}

@ -23,6 +23,7 @@ import org.tasks.billing.PurchaseHelper;
import org.tasks.billing.PurchaseHelperCallback; import org.tasks.billing.PurchaseHelperCallback;
import org.tasks.dialogs.ColorPickerDialog; import org.tasks.dialogs.ColorPickerDialog;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.files.FileExplore;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.injection.InjectingPreferenceActivity;
import org.tasks.locale.Locale; import org.tasks.locale.Locale;
@ -33,12 +34,16 @@ import org.tasks.themes.ThemeBase;
import org.tasks.themes.ThemeCache; import org.tasks.themes.ThemeCache;
import org.tasks.themes.ThemeColor; import org.tasks.themes.ThemeColor;
import java.io.File;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber; import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1;
import static org.tasks.dialogs.DonationDialog.newDonationDialog; import static org.tasks.dialogs.DonationDialog.newDonationDialog;
import static org.tasks.dialogs.ExportTasksDialog.newExportTasksDialog;
import static org.tasks.dialogs.ImportTasksDialog.newImportTasksDialog;
import static org.tasks.locale.LocalePickerDialog.newLocalePickerDialog; import static org.tasks.locale.LocalePickerDialog.newLocalePickerDialog;
public class BasicPreferences extends InjectingPreferenceActivity implements public class BasicPreferences extends InjectingPreferenceActivity implements
@ -47,11 +52,15 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
private static final String EXTRA_RESULT = "extra_result"; private static final String EXTRA_RESULT = "extra_result";
private static final String FRAG_TAG_LOCALE_PICKER = "frag_tag_locale_picker"; private static final String FRAG_TAG_LOCALE_PICKER = "frag_tag_locale_picker";
private static final String FRAG_TAG_DONATION = "frag_tag_donation"; private static final String FRAG_TAG_DONATION = "frag_tag_donation";
private static final String FRAG_TAG_IMPORT_TASKS = "frag_tag_import_tasks";
private static final String FRAG_TAG_EXPORT_TASKS = "frag_tag_export_tasks";
private static final int RC_PREFS = 10001; private static final int RC_PREFS = 10001;
private static final int REQUEST_THEME_PICKER = 10002; private static final int REQUEST_THEME_PICKER = 10002;
private static final int REQUEST_COLOR_PICKER = 10003; private static final int REQUEST_COLOR_PICKER = 10003;
private static final int REQUEST_ACCENT_PICKER = 10004; private static final int REQUEST_ACCENT_PICKER = 10004;
public static final int REQUEST_PURCHASE = 10005; public static final int REQUEST_PURCHASE = 10005;
private static final int REQUEST_CODE_BACKUP_DIR = 10005;
private static final int REQUEST_PICKER = 10006;
@Inject Tracker tracker; @Inject Tracker tracker;
@Inject Preferences preferences; @Inject Preferences preferences;
@ -188,6 +197,20 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
}); });
} }
findPreference(R.string.backup_BAc_import).setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(BasicPreferences.this, FileExplore.class);
intent.putExtra(FileExplore.EXTRA_START_PATH, preferences.getBackupDirectory().getAbsolutePath());
startActivityForResult(intent, REQUEST_PICKER);
return false;
});
findPreference(R.string.backup_BAc_export).setOnPreferenceClickListener(preference -> {
newExportTasksDialog().show(getFragmentManager(), FRAG_TAG_EXPORT_TASKS);
return false;
});
initializeBackupDirectory();
requires(R.string.get_plugins, atLeastJellybeanMR1(), R.string.p_purchased_dashclock); requires(R.string.get_plugins, atLeastJellybeanMR1(), R.string.p_purchased_dashclock);
requires(R.string.settings_localization, atLeastJellybeanMR1(), R.string.p_language, R.string.p_layout_direction); requires(R.string.settings_localization, atLeastJellybeanMR1(), R.string.p_language, R.string.p_layout_direction);
@ -241,6 +264,17 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
if (resultCode == Activity.RESULT_OK && data != null) { if (resultCode == Activity.RESULT_OK && data != null) {
result.putAll(data.getExtras()); result.putAll(data.getExtras());
} }
} else if (requestCode == REQUEST_CODE_BACKUP_DIR) {
if (resultCode == RESULT_OK && data != null) {
String dir = data.getStringExtra(FileExplore.EXTRA_DIRECTORY);
preferences.setString(R.string.p_backup_dir, dir);
updateBackupDirectory();
}
} else if (requestCode == REQUEST_PICKER) {
if (resultCode == RESULT_OK) {
newImportTasksDialog(data.getStringExtra(FileExplore.EXTRA_FILE))
.show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS);
}
} else if (requestCode == REQUEST_PURCHASE) { } else if (requestCode == REQUEST_PURCHASE) {
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data); purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
} else { } else {
@ -316,6 +350,25 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
} }
} }
private void initializeBackupDirectory() {
findPreference(getString(R.string.p_backup_dir)).setOnPreferenceClickListener(p -> {
Intent filesDir = new Intent(BasicPreferences.this, FileExplore.class);
filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR);
return true;
});
updateBackupDirectory();
}
private void updateBackupDirectory() {
findPreference(getString(R.string.p_backup_dir)).setSummary(getBackupDirectory());
}
private String getBackupDirectory() {
File dir = preferences.getBackupDirectory();
return dir == null ? "" : dir.getAbsolutePath();
}
@Override @Override
public void inject(ActivityComponent component) { public void inject(ActivityComponent component) {
component.inject(this); component.inject(this);

@ -112,8 +112,8 @@ public class Preferences {
} }
public void setDefaults() { public void setDefaults() {
PreferenceManager.setDefaultValues(context, R.xml.preferences, true);
PreferenceManager.setDefaultValues(context, R.xml.preferences_appearance, true); PreferenceManager.setDefaultValues(context, R.xml.preferences_appearance, true);
PreferenceManager.setDefaultValues(context, R.xml.preferences_backup, true);
PreferenceManager.setDefaultValues(context, R.xml.preferences_date_shortcuts, true); PreferenceManager.setDefaultValues(context, R.xml.preferences_date_shortcuts, true);
PreferenceManager.setDefaultValues(context, R.xml.preferences_defaults, true); PreferenceManager.setDefaultValues(context, R.xml.preferences_defaults, true);
PreferenceManager.setDefaultValues(context, R.xml.preferences_gtasks, true); PreferenceManager.setDefaultValues(context, R.xml.preferences_gtasks, true);

@ -49,12 +49,6 @@
android:targetPackage="org.tasks" /> android:targetPackage="org.tasks" />
</Preference> </Preference>
<Preference android:title="@string/backup_BPr_header">
<intent
android:targetClass="org.tasks.preferences.BackupPreferences"
android:targetPackage="org.tasks" />
</Preference>
<Preference <Preference
android:key="@string/EPr_manage_header" android:key="@string/EPr_manage_header"
android:title="@string/EPr_manage_header" /> android:title="@string/EPr_manage_header" />
@ -67,6 +61,23 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory
android:title="@string/backup_BPr_header">
<Preference
android:key="@string/p_backup_dir"
android:title="@string/backup_directory" />
<Preference
android:key="@string/backup_BAc_import"
android:title="@string/backup_BAc_import" />
<Preference
android:key="@string/backup_BAc_export"
android:title="@string/backup_BAc_export" />
</PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:key="@string/settings_localization" android:key="@string/settings_localization"
android:title="@string/settings_localization"> android:title="@string/settings_localization">

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
** Copyright (c) 2012 Todoroo Inc
**
** See the file "LICENSE" for the full license governing this code.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/backup_BPr_header">
<Preference
android:key="@string/p_backup_dir"
android:title="@string/backup_directory" />
<Preference
android:key="@string/backup_BAc_import"
android:title="@string/backup_BAc_import" />
<Preference
android:key="@string/backup_BAc_export"
android:title="@string/backup_BAc_export" />
</PreferenceScreen>
Loading…
Cancel
Save