X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fandroid%2FAndroidReaderActivity.java;h=290b5baee76f54b2b0a7d42266714199dbca318f;hb=410f1eaefe49d6b7fc02ae9e3b5d4856d51cfecf;hp=b4d33d7bdd079a7d6fae1654f69fb5b124cd252b;hpb=649684189468206b46778bbc18d8bb47e66f7be1;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/android/AndroidReaderActivity.java b/src/be/nikiroo/fanfix/reader/android/AndroidReaderActivity.java index b4d33d7..290b5ba 100644 --- a/src/be/nikiroo/fanfix/reader/android/AndroidReaderActivity.java +++ b/src/be/nikiroo/fanfix/reader/android/AndroidReaderActivity.java @@ -1,11 +1,13 @@ package be.nikiroo.fanfix.reader.android; import android.app.Activity; +import android.app.AlertDialog; import android.app.FragmentTransaction; -import android.content.Intent; -import android.os.AsyncTask; +import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; import android.os.Environment; +import android.text.InputType; import android.view.View; import android.widget.EditText; @@ -25,70 +27,88 @@ public class AndroidReaderActivity extends Activity implements @Override protected void onCreate(Bundle savedInstanceState) { - config(); + reader = config(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } - int i = 1; + @Override + protected void onStart() { + super.onStart(); + refresh(); + } - public void buttonClick(View view) { - AndroidReaderGroup group = null; - if (group == null) { - group = new AndroidReaderGroup(); - } + private void refresh() { + AndroidReaderGroup group = new AndroidReaderGroup(); FragmentTransaction trans = getFragmentManager().beginTransaction(); - trans.replace(R.id.dropZone, group); + trans.replace(R.id.Main_pnlStories, group); trans.commit(); getFragmentManager().executePendingTransactions(); - group.fill(reader, null); + group.fill(reader.getLibrary().getList(), reader); } - public void onClick(View view) { - new AsyncTask() { - @Override - protected void onPreExecute() { - EditText editText = findViewById(R.id.editText); - editText.setText("Downloading..."); - } - - @Override - protected String doInBackground(Void... voids) { - try { - URL[] urls = new URL[] { - new URL("https://e621.net/pool/show/13124"), - new URL("https://e621.net/pool/show/13121"), }; - - for (int i = 0; i < urls.length; i++) { - if (reader.getLibrary().getList().size() <= i) { - reader.getLibrary().imprt(urls[i], null); - } - } - - String message = ""; - for (MetaData meta : reader.getLibrary().getList()) { - message += meta.getTitle() + "\n"; + public void onAdd(View view) { + final View root = findViewById(R.id.Main); + + ask(this, + "Import new story", + "Enter the story URL (the program will then download it -- the interface will not be usable until it is downloaded", + "Download", new AnswerListener() { + @Override + public void onAnswer(final String answer) { + root.setEnabled(false); + new Thread(new Runnable() { + @Override + public void run() { + try { + URL url = new URL(answer); + reader.getLibrary().imprt(url, null); + } catch (Throwable e) { + // TODO: show error message correctly + String mess = ""; + for (String tab = ""; e != null + && e != e.getCause(); e = e + .getCause()) { + mess += tab + "[" + + e.getClass().getSimpleName() + + "] " + e.getMessage() + "\n"; + tab += "\t"; + } + + final String messf = mess; + AndroidReaderActivity.this + .runOnUiThread(new Runnable() { + @Override + public void run() { + ask(AndroidReaderActivity.this, + "Error", + "Cannot import URL: \n" + + messf, + "OK", null); + } + }); + + } + + AndroidReaderActivity.this + .runOnUiThread(new Runnable() { + @Override + public void run() { + refresh(); + root.setEnabled(true); + } + }); + } + }).start(); } + }); - return message; - } catch (Exception e) { - return e.getClass() + ": " + e.getMessage(); - } - } - - @Override - protected void onPostExecute(String message) { - EditText editText = findViewById(R.id.editText); - editText.setText("testy"); - - Intent intent = new Intent(AndroidReaderActivity.this, - SayIt.class); - intent.putExtra(SayIt.MESSAGE, message); - startActivity(intent); - } - }.execute(); + /* + * Intent intent = new Intent(AndroidReaderActivity.this, SayIt.class); + * intent.putExtra(SayIt.MESSAGE, message); startActivity(intent); + */ } @Override @@ -101,9 +121,9 @@ public class AndroidReaderActivity extends Activity implements } } - private void config() { + private Reader config() { if (reader != null) { - return; + return reader; } String internal = getExternalFilesDir(null).toString(); @@ -130,6 +150,42 @@ public class AndroidReaderActivity extends Activity implements Instance.setTraceHandler(new TraceHandler(true, true, 2)); BasicReader.setDefaultReaderType(Reader.ReaderType.ANDROID); - reader = BasicReader.getReader(); + return BasicReader.getReader(); + } + + public static void ask(Context context, String title, String message, + String okMessage, final AnswerListener listener) { + final EditText input = new EditText(context); + input.setFocusable(true); + input.setInputType(InputType.TYPE_CLASS_TEXT); + + AlertDialog.Builder alert = new AlertDialog.Builder(context); + alert.setTitle(title); + alert.setMessage(message); + alert.setCancelable(true); + alert.setView(input); + + if (listener != null) { + alert.setPositiveButton(okMessage, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + listener.onAnswer(input.getText().toString()); + } + }); + + alert.setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialog) { + listener.onAnswer(null); + } + }); + } + + alert.show(); + } + + private interface AnswerListener { + public void onAnswer(String answer); } } \ No newline at end of file