remove android files
[fanfix.git] / src / be / nikiroo / fanfix / reader / android / AndroidReaderActivity.java
index b4d33d7bdd079a7d6fae1654f69fb5b124cd252b..290b5baee76f54b2b0a7d42266714199dbca318f 100644 (file)
@@ -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<Void, Void, String>() {
-                       @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