You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/src/main/java/org/tasks/preferences/BackupPreferences.java

62 lines
2.0 KiB
Java

package org.tasks.preferences;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import com.todoroo.astrid.files.FileExplore;
import org.tasks.R;
import org.tasks.injection.InjectingPreferenceActivity;
import java.io.File;
import javax.inject.Inject;
public class BackupPreferences extends InjectingPreferenceActivity {
private static final int REQUEST_CODE_BACKUP_DIR = 2;
@Inject Preferences preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_backup);
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.RESULT_DIR_SELECTED);
preferences.setString(R.string.p_backup_dir, dir);
updateBackupDirectory();
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
private void initializeBackupDirectory() {
findPreference(getString(R.string.p_backup_dir)).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference p) {
Intent filesDir = new Intent(BackupPreferences.this, FileExplore.class);
filesDir.putExtra(FileExplore.EXTRA_DIRECTORIES_SELECTABLE, true);
startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR);
return true;
}
});
updateBackupDirectory();
}
private void updateBackupDirectory() {
File dir = preferences.getBackupDirectory();
findPreference(getString(R.string.p_backup_dir)).setSummary(dir.getAbsolutePath());
}
}