diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9debe78fb..37d1a57a1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -133,5 +133,6 @@
ERROR!
Reading OPML file
An error has occured while reading the opml document:
+ It seems like the import directory is empty. Please copy a OPML file into the directory to import it.
\ No newline at end of file
diff --git a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java
index a84450e81..3acf96f55 100644
--- a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java
+++ b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java
@@ -1,34 +1,52 @@
package de.danoeh.antennapod.activity;
import java.io.File;
+import java.util.ArrayList;
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 com.actionbarsherlock.app.SherlockActivity;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.asynctask.OpmlImportWorker;
+import de.danoeh.antennapod.opml.OpmlElement;
import de.danoeh.antennapod.util.StorageUtils;
public class OpmlImportActivity extends SherlockActivity {
private static final String TAG = "OpmlImportActivity";
-
+
private static final String IMPORT_DIR = "import/";
-
+
private TextView txtvPath;
private Button butStart;
+ private String importPath;
+
+ private OpmlImportWorker importWorker;
@Override
protected void onCreate(Bundle savedInstanceState) {
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) {
+ startImport();
+ }
+
+ });
}
@Override
@@ -37,21 +55,62 @@ public class OpmlImportActivity extends SherlockActivity {
StorageUtils.checkStorageAvailability(this);
setImportPath();
}
-
+
private void setImportPath() {
File importDir = getExternalFilesDir(IMPORT_DIR);
boolean success = true;
if (!importDir.exists()) {
- if (AppConfig.DEBUG) Log.d(TAG, "Import directory doesn't exist. Creating...");
+ 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;
+ }
+ }
+
+ private void startImport() {
+ File dir = new File(importPath);
+ if (dir.isDirectory()) {
+ File[] fileList = dir.listFiles();
+ if (fileList.length > 1) {
+ Log.w(TAG,
+ "Import directory contains more than one file. Might choose the wrong one");
+ }
+ if (fileList.length > 0) {
+ importWorker = new OpmlImportWorker(this, fileList[0]) {
+
+ @Override
+ protected void onPostExecute(ArrayList result) {
+ super.onPostExecute(result);
+
+ }
+ };
+ } else {
+ Log.e(TAG, "Import directory is empty");
+ }
+ }
+ }
}
diff --git a/src/de/danoeh/antennapod/asynctask/OpmlImportWorker.java b/src/de/danoeh/antennapod/asynctask/OpmlImportWorker.java
index de2db951e..be026f1e0 100644
--- a/src/de/danoeh/antennapod/asynctask/OpmlImportWorker.java
+++ b/src/de/danoeh/antennapod/asynctask/OpmlImportWorker.java
@@ -88,6 +88,7 @@ public class OpmlImportWorker extends
}
});
+ alert.create().show();
}
}