summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/activity
diff options
context:
space:
mode:
authorligi <ligi@ligi.de>2013-01-23 16:13:09 +0100
committerligi <ligi@ligi.de>2013-01-23 16:13:09 +0100
commitab9b244af45cffb568794232a6e1f82912d5bdb0 (patch)
treea62668527c870bd59b0f01dee76226e9ac88cec1 /src/de/danoeh/antennapod/activity
parente54dbbcdce01d3180fe1cdbf245fd6ea2dfafcd8 (diff)
downloadAntennaPod-ab9b244af45cffb568794232a6e1f82912d5bdb0.zip
deduplication and cleanup -> preparing a pull request
Diffstat (limited to 'src/de/danoeh/antennapod/activity')
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java45
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java50
-rw-r--r--src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java320
3 files changed, 178 insertions, 237 deletions
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
index d285cbe15..012f51c6d 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportBaseActivity.java
@@ -1,27 +1,13 @@
package de.danoeh.antennapod.activity;
-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;
-
-import java.io.File;
+import java.io.Reader;
import java.util.ArrayList;
/**
@@ -30,8 +16,9 @@ import java.util.ArrayList;
public class OpmlImportBaseActivity extends SherlockActivity {
private static final String TAG = "OpmlImportBaseActivity";
+ private OpmlImportWorker importWorker;
- /**
+ /**
* Handles the choices made by the user in the OpmlFeedChooserActivity and
* starts the OpmlFeedQueuer if necessary.
*/
@@ -68,6 +55,32 @@ public class OpmlImportBaseActivity extends SherlockActivity {
}
}
+ /** Starts the import process. */
+ protected void startImport(Reader reader) {
+
+ if (reader != null) {
+ importWorker = new OpmlImportWorker(this, reader) {
+
+ @Override
+ protected void onPostExecute(ArrayList<OpmlElement> result) {
+ super.onPostExecute(result);
+ if (result != null) {
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Parsing was successful");
+ OpmlImportHolder.setReadElements(result);
+ startActivityForResult(new Intent(
+ OpmlImportBaseActivity.this,
+ OpmlFeedChooserActivity.class), 0);
+ } else {
+ if (AppConfig.DEBUG)
+ Log.d(TAG, "Parser error occured");
+ }
+ }
+ };
+ importWorker.executeAsync();
+ }
+ }
+
protected boolean finishWhenCanceled() {
return false;
}
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
index 7366391d5..cbe69d48c 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportFromIntentActivity.java
@@ -1,36 +1,13 @@
package de.danoeh.antennapod.activity;
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.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.OpmlImportWorker;
-import de.danoeh.antennapod.opml.OpmlElement;
-import de.danoeh.antennapod.util.StorageUtils;
-
import java.io.*;
-import java.net.MalformedURLException;
import java.net.URL;
-import java.util.ArrayList;
/** Lets the user start the OPML-import process. */
public class OpmlImportFromIntentActivity extends OpmlImportBaseActivity {
- private static final String TAG = "OpmlImportFromPathActivity";
-
- public static final String IMPORT_DIR = "import/";
-
- private OpmlImportWorker importWorker;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -49,33 +26,6 @@ public class OpmlImportFromIntentActivity extends OpmlImportBaseActivity {
}
-
- /** Starts the import process. */
- private void startImport(Reader reader) {
-
- if (reader != null) {
- importWorker = new OpmlImportWorker(this, reader) {
-
- @Override
- protected void onPostExecute(ArrayList<OpmlElement> result) {
- super.onPostExecute(result);
- if (result != null) {
- if (AppConfig.DEBUG)
- Log.d(TAG, "Parsing was successful");
- OpmlImportHolder.setReadElements(result);
- startActivityForResult(new Intent(
- OpmlImportFromIntentActivity.this,
- OpmlFeedChooserActivity.class), 0);
- } else {
- if (AppConfig.DEBUG)
- Log.d(TAG, "Parser error occured");
- }
- }
- };
- importWorker.executeAsync();
- }
- }
-
@Override
protected boolean finishWhenCanceled() {
return true;
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
index 374612a1b..bb5734b57 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
@@ -1,11 +1,7 @@
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;
@@ -13,181 +9,163 @@ 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. */
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.Reader;
+
+/**
+ * Lets the user start the OPML-import process from a path
+ */
public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
- private static final String TAG = "OpmlImportFromPathActivity";
-
- public static final String IMPORT_DIR = "import/";
-
- private TextView txtvPath;
- private Button butStart;
- private String importPath;
-
- private OpmlImportWorker importWorker;
-
- @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");
- OpmlImportHolder.setReadElements(result);
- startActivityForResult(new Intent(
- OpmlImportFromPathActivity.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();
- }
+ public static final String IMPORT_DIR = "import/";
+ private static final String TAG = "OpmlImportFromPathActivity";
+ private TextView txtvPath;
+ private Button butStart;
+ private String importPath;
+
+ @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();
+ }
+ }
+ }
+
+ private void startImport(File file) {
+ try {
+ Reader mReader = new FileReader(file);
+ if (AppConfig.DEBUG) Log.d(TAG, "Parsing " + file.toString());
+ startImport(mReader);
+ } catch (FileNotFoundException e) {
+ Log.d(TAG, "File not found which really should be there");
+ // this should never happen as it is a file we have just chosen
+ }
+ }
+
+ /**
+ * 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();
+ }
}