diff options
Diffstat (limited to 'src/de/danoeh/antennapod/activity')
3 files changed, 75 insertions, 26 deletions
diff --git a/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java b/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java index 246852840..69a721db8 100644 --- a/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java +++ b/src/de/danoeh/antennapod/activity/DirectoryChooserActivity.java @@ -5,9 +5,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import android.app.Activity; import android.app.AlertDialog; -import android.app.AlertDialog.Builder; import android.content.DialogInterface; +import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.os.FileObserver; @@ -20,7 +21,6 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageButton; import android.widget.ListView; -import android.widget.SlidingDrawer; import android.widget.TextView; import android.widget.Toast; @@ -42,6 +42,9 @@ public class DirectoryChooserActivity extends SherlockActivity { private static final String CREATE_DIRECTORY_NAME = "AntennaPod"; + public static final String RESULT_SELECTED_DIR = "selected_dir"; + public static final int RESULT_CODE_DIR_SELECTED = 1; + private Button butConfirm; private Button butCancel; private ImageButton butNavUp; @@ -73,6 +76,13 @@ public class DirectoryChooserActivity extends SherlockActivity { @Override public void onClick(View v) { + if (AppConfig.DEBUG) + Log.d(TAG, "Returning " + selectedDir.getAbsolutePath() + + " as result"); + Intent resultData = new Intent(); + resultData.putExtra(RESULT_SELECTED_DIR, + selectedDir.getAbsolutePath()); + setResult(RESULT_CODE_DIR_SELECTED, resultData); finish(); } }); @@ -81,6 +91,7 @@ public class DirectoryChooserActivity extends SherlockActivity { @Override public void onClick(View v) { + setResult(Activity.RESULT_CANCELED); finish(); } }); diff --git a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java index 48f3b632b..5ec2e8538 100644 --- a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java +++ b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java @@ -72,7 +72,7 @@ public class OpmlImportActivity extends SherlockActivity { * directory. */ private void setImportPath() { - File importDir = getExternalFilesDir(IMPORT_DIR); + File importDir = PodcastApp.getDataFolder(this, IMPORT_DIR); boolean success = true; if (!importDir.exists()) { if (AppConfig.DEBUG) diff --git a/src/de/danoeh/antennapod/activity/PreferenceActivity.java b/src/de/danoeh/antennapod/activity/PreferenceActivity.java index f4afa319a..9ce3074a9 100644 --- a/src/de/danoeh/antennapod/activity/PreferenceActivity.java +++ b/src/de/danoeh/antennapod/activity/PreferenceActivity.java @@ -1,16 +1,23 @@ package de.danoeh.antennapod.activity; +import java.io.File; + +import android.app.Activity; import android.content.Intent; +import android.content.SharedPreferences; import android.content.res.Resources.Theme; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceManager; +import android.util.Log; import com.actionbarsherlock.app.SherlockPreferenceActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; +import de.danoeh.antennapod.AppConfig; import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.asynctask.FlattrClickWorker; @@ -34,7 +41,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity { public void onCreate(Bundle savedInstanceState) { setTheme(PodcastApp.getThemeResourceId()); super.onCreate(savedInstanceState); - + getSupportActionBar().setDisplayHomeAsUpEnabled(true); addPreferencesFromResource(R.xml.preferences); findPreference(PREF_FLATTR_THIS_APP).setOnPreferenceClickListener( @@ -85,26 +92,33 @@ public class PreferenceActivity extends SherlockPreferenceActivity { return true; } }); - - findPreference(PREF_CHOOSE_DATA_DIR).setOnPreferenceClickListener(new OnPreferenceClickListener() { - - @Override - public boolean onPreferenceClick(Preference preference) { - startActivity(new Intent(PreferenceActivity.this, DirectoryChooserActivity.class)); - return true; - } - }); - findPreference(PodcastApp.PREF_THEME).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - Intent i = getIntent(); - i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); - finish(); - startActivity(i); - return true; - } - }); + + findPreference(PREF_CHOOSE_DATA_DIR).setOnPreferenceClickListener( + new OnPreferenceClickListener() { + + @Override + public boolean onPreferenceClick(Preference preference) { + startActivityForResult( + new Intent(PreferenceActivity.this, + DirectoryChooserActivity.class), + DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED); + return true; + } + }); + findPreference(PodcastApp.PREF_THEME).setOnPreferenceChangeListener( + new OnPreferenceChangeListener() { + + @Override + public boolean onPreferenceChange(Preference preference, + Object newValue) { + Intent i = getIntent(); + i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK + | Intent.FLAG_ACTIVITY_NEW_TASK); + finish(); + startActivity(i); + return true; + } + }); } @@ -112,6 +126,7 @@ public class PreferenceActivity extends SherlockPreferenceActivity { protected void onResume() { super.onResume(); checkItemVisibility(); + setDataFolderText(); } @SuppressWarnings("deprecation") @@ -124,6 +139,14 @@ public class PreferenceActivity extends SherlockPreferenceActivity { } + private void setDataFolderText() { + File f = PodcastApp.getDataFolder(this, null); + if (f != null) { + findPreference(PREF_CHOOSE_DATA_DIR) + .setSummary(f.getAbsolutePath()); + } + } + @Override public boolean onCreateOptionsMenu(Menu menu) { return true; @@ -147,7 +170,22 @@ public class PreferenceActivity extends SherlockPreferenceActivity { protected void onApplyThemeResource(Theme theme, int resid, boolean first) { theme.applyStyle(PodcastApp.getThemeResourceId(), true); } - - + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED) { + String dir = data + .getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR); + if (dir != null) { + if (AppConfig.DEBUG) + Log.d(TAG, "Setting data folder"); + PodcastApp.getInstance().setDataFolder(dir); + } else { + if (AppConfig.DEBUG) + Log.d(TAG, "Result from DirectoryChooser was null"); + } + } + } } |