diff options
Diffstat (limited to 'src/de/danoeh/antennapod/activity/OpmlImportActivity.java')
-rw-r--r-- | src/de/danoeh/antennapod/activity/OpmlImportActivity.java | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java deleted file mode 100644 index 5ec2e8538..000000000 --- a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java +++ /dev/null @@ -1,233 +0,0 @@ -package de.danoeh.antennapod.activity; - -import java.io.File; -import java.util.ArrayList; - -import android.app.AlertDialog; -import android.content.DialogInterface; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.TextView; -import android.widget.Toast; - -import com.actionbarsherlock.app.SherlockActivity; -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.OpmlFeedQueuer; -import de.danoeh.antennapod.asynctask.OpmlImportWorker; -import de.danoeh.antennapod.opml.OpmlElement; -import de.danoeh.antennapod.util.StorageUtils; - -/** Lets the user start the OPML-import process. */ -public class OpmlImportActivity extends SherlockActivity { - private static final String TAG = "OpmlImportActivity"; - - public static final String IMPORT_DIR = "import/"; - - private TextView txtvPath; - private Button butStart; - private String importPath; - - private OpmlImportWorker importWorker; - - private static ArrayList<OpmlElement> readElements; - - @Override - protected void onCreate(Bundle savedInstanceState) { - setTheme(PodcastApp.getThemeResourceId()); - super.onCreate(savedInstanceState); - - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - setContentView(R.layout.opml_import); - - txtvPath = (TextView) findViewById(R.id.txtvPath); - butStart = (Button) findViewById(R.id.butStartImport); - - butStart.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - checkFolderForFiles(); - } - - }); - } - - @Override - protected void onResume() { - super.onResume(); - StorageUtils.checkStorageAvailability(this); - setImportPath(); - } - - /** - * Sets the importPath variable and makes txtvPath display the import - * directory. - */ - private void setImportPath() { - File importDir = PodcastApp.getDataFolder(this, IMPORT_DIR); - boolean success = true; - if (!importDir.exists()) { - if (AppConfig.DEBUG) - Log.d(TAG, "Import directory doesn't exist. Creating..."); - success = importDir.mkdir(); - if (!success) { - Log.e(TAG, "Could not create directory"); - } - } - if (success) { - txtvPath.setText(importDir.toString()); - importPath = importDir.toString(); - } else { - txtvPath.setText(R.string.opml_directory_error); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - default: - return false; - } - } - - /** - * Looks at the contents of the import directory and decides what to do. If - * more than one file is in the directory, a dialog will be created to let - * the user choose which item to import - * */ - private void checkFolderForFiles() { - File dir = new File(importPath); - if (dir.isDirectory()) { - File[] fileList = dir.listFiles(); - if (fileList.length == 1) { - if (AppConfig.DEBUG) - Log.d(TAG, "Found one file, choosing that one."); - startImport(fileList[0]); - } else if (fileList.length > 1) { - Log.w(TAG, "Import directory contains more than one file."); - askForFile(dir); - } else { - Log.e(TAG, "Import directory is empty"); - Toast toast = Toast - .makeText(this, R.string.opml_import_error_dir_empty, - Toast.LENGTH_LONG); - toast.show(); - } - } - } - - /** Starts the import process. */ - private void startImport(File file) { - - if (file != null) { - importWorker = new OpmlImportWorker(this, file) { - - @Override - protected void onPostExecute(ArrayList<OpmlElement> result) { - super.onPostExecute(result); - if (result != null) { - if (AppConfig.DEBUG) - Log.d(TAG, "Parsing was successful"); - readElements = result; - startActivityForResult(new Intent( - OpmlImportActivity.this, - OpmlFeedChooserActivity.class), 0); - } else { - if (AppConfig.DEBUG) - Log.d(TAG, "Parser error occured"); - } - } - }; - importWorker.executeAsync(); - } - } - - /** - * Asks the user to choose from a list of files in a directory and returns - * his choice. - */ - private void askForFile(File dir) { - final File[] fileList = dir.listFiles(); - String[] fileNames = dir.list(); - - AlertDialog.Builder dialog = new AlertDialog.Builder(this); - dialog.setTitle(R.string.choose_file_to_import_label); - dialog.setNeutralButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - if (AppConfig.DEBUG) - Log.d(TAG, "Dialog was cancelled"); - dialog.dismiss(); - } - }); - dialog.setItems(fileNames, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - if (AppConfig.DEBUG) - Log.d(TAG, "File at index " + which + " was chosen"); - dialog.dismiss(); - startImport(fileList[which]); - } - }); - dialog.create().show(); - } - - /** - * Handles the choices made by the user in the OpmlFeedChooserActivity and - * starts the OpmlFeedQueuer if necessary. - */ - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (AppConfig.DEBUG) - Log.d(TAG, "Received result"); - if (resultCode == RESULT_CANCELED) { - if (AppConfig.DEBUG) - Log.d(TAG, "Activity was cancelled"); - } else { - int[] selected = data - .getIntArrayExtra(OpmlFeedChooserActivity.EXTRA_SELECTED_ITEMS); - if (selected != null && selected.length > 0) { - OpmlFeedQueuer queuer = new OpmlFeedQueuer(this, selected) { - - @Override - protected void onPostExecute(Void result) { - super.onPostExecute(result); - Intent intent = new Intent(OpmlImportActivity.this, MainActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP - | Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - } - - }; - queuer.executeAsync(); - } else { - if (AppConfig.DEBUG) - Log.d(TAG, "No items were selected"); - } - } - } - - public static ArrayList<OpmlElement> getReadElements() { - return readElements; - } - -} |