integrated import worker into import activity

This commit is contained in:
daniel oeh 2012-07-23 14:26:31 +02:00
parent 85e171ed99
commit d33b959e11
3 changed files with 67 additions and 6 deletions

View File

@ -133,5 +133,6 @@
<string name="opml_directory_error">ERROR!</string> <string name="opml_directory_error">ERROR!</string>
<string name="reading_opml_label">Reading OPML file</string> <string name="reading_opml_label">Reading OPML file</string>
<string name="opml_reader_error">An error has occured while reading the opml document:</string> <string name="opml_reader_error">An error has occured while reading the opml document:</string>
<string name="opml_import_error_dir_empty">It seems like the import directory is empty. Please copy a OPML file into the directory to import it.</string>
</resources> </resources>

View File

@ -1,16 +1,23 @@
package de.danoeh.antennapod.activity; package de.danoeh.antennapod.activity;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.AppConfig; import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R; import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.OpmlImportWorker;
import de.danoeh.antennapod.opml.OpmlElement;
import de.danoeh.antennapod.util.StorageUtils; import de.danoeh.antennapod.util.StorageUtils;
public class OpmlImportActivity extends SherlockActivity { public class OpmlImportActivity extends SherlockActivity {
@ -20,6 +27,9 @@ public class OpmlImportActivity extends SherlockActivity {
private TextView txtvPath; private TextView txtvPath;
private Button butStart; private Button butStart;
private String importPath;
private OpmlImportWorker importWorker;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -29,6 +39,14 @@ public class OpmlImportActivity extends SherlockActivity {
txtvPath = (TextView) findViewById(R.id.txtvPath); txtvPath = (TextView) findViewById(R.id.txtvPath);
butStart = (Button) findViewById(R.id.butStartImport); butStart = (Button) findViewById(R.id.butStartImport);
butStart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startImport();
}
});
} }
@Override @Override
@ -42,7 +60,8 @@ public class OpmlImportActivity extends SherlockActivity {
File importDir = getExternalFilesDir(IMPORT_DIR); File importDir = getExternalFilesDir(IMPORT_DIR);
boolean success = true; boolean success = true;
if (!importDir.exists()) { 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(); success = importDir.mkdir();
if (!success) { if (!success) {
Log.e(TAG, "Could not create directory"); Log.e(TAG, "Could not create directory");
@ -50,8 +69,48 @@ public class OpmlImportActivity extends SherlockActivity {
} }
if (success) { if (success) {
txtvPath.setText(importDir.toString()); txtvPath.setText(importDir.toString());
importPath = importDir.toString();
} else { } else {
txtvPath.setText(R.string.opml_directory_error); 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<OpmlElement> result) {
super.onPostExecute(result);
}
};
} else {
Log.e(TAG, "Import directory is empty");
}
}
}
} }

View File

@ -88,6 +88,7 @@ public class OpmlImportWorker extends
} }
}); });
alert.create().show();
} }
} }