// Path: src/main/java/de/e621/rebane/SQLite/SQLiteDB.java
// public class SQLiteDB {
// 	private SQLiteDatabase database;
// 	private SQLhelper dbHelper;
//     private Context context;
// 
//     /** Erzeugt eine Neue instanz. Es sollte immer nur eine Instanz gleichzeitig verwendet werden<br>
//      * Jedoch ist das hohlen des Context über einen Konstruktor wesentlich angenehmer ;)<br>
//      * <br>
//      * Anschließen muss die Datenbank mit instanc.open() geöffnet und abschließend mit instance.close()<br>
//      * wieder geschlossen werden.
//      * */
// 	public SQLiteDB(Context context) {
// 		dbHelper = new SQLhelper(this.context = context);
// 	}
// 
//     /** Öffnet die Datenbank - nach der bearbeitung .close() nicht vergessen */
// 	public void open() throws SQLException {
//         try {
//             if (database == null || !database.isOpen())
//                 database = dbHelper.getWritableDatabase();
//         } catch (Exception e) {
//             dbHelper = new SQLhelper(context);
//             database = dbHelper.getReadableDatabase();
//         }
// 	}
// 
//     /** Schließt die datenbank.<br>Ich bin mir nicht sicher, ob überhaupt ein Fehler auftritt, wenn man
//      * versucht, daten zu lesen wären die Datenbank geschlossen ist - einfach aufpassen :)
//       */
// 	public void close() {
// 		dbHelper.close();
// 	}
// 
//     /** Speicher ein Key Value Paar.<br>Der Wert für Key wird überschrieben, fals der Key bereits existiert */
// 	public void setValue(String Key, String Value) {
// 		//See if key already exists
// 		Cursor cursor = database.query(SQLhelper.TABLE_NAME, new String[]{ "Key" } , "Key='" + Key + "'", null, null, null, null);
// 		Boolean got_result = cursor.moveToFirst();
// 		cursor.close();
// 		
// 		if (!got_result) { //Create Key
// 			ContentValues values = new ContentValues();
// 			values.put("VALUE", Value);
// 			values.put("KEY", Key);
// 			database.insert(SQLhelper.TABLE_NAME, null, values);
// 		} else { //Update Key
// 			ContentValues values = new ContentValues();
// 			values.put("VALUE", Value);
// 			database.update(SQLhelper.TABLE_NAME, values, "Key='" + Key + "'", null);
// 		}
// 	}
// 
//     /** Holt einen Wert aus der Datenbank.<br>Fals kein Key Value Paar existiert wird null zurück gegeben*/
// 	public String getValue(String Key) {
// 		Cursor cursor = database.query(SQLhelper.TABLE_NAME, new String[]{ "Value" } , "Key='" + Key + "'", null, null, null, null);
// 		if (!cursor.moveToFirst() || cursor.isNull(0)) { cursor.close(); return null; }
// 		String result = cursor.getString(0);
// 		
// 		cursor.close(); return result;
// 	}
// 
//     public String[] getStringArray(String key) {
//         String raw = getValue(key);
//         if (raw == null || raw.isEmpty()) return new String[]{};
//         Logger.getLogger("SQLite").info("Getting " + key + " : " + raw);
//         return raw.substring(2, raw.length()-2).split("\", \"");
//     }
//     public void setStringArray(String key, String... array) {
//         String raw = "[\"";
//         int l1 = array.length-1;
//         for (int i = 0; i <= l1; i++) {
//             raw += array[i];
//             if (i != l1) raw += "\", \"";
//         }
//         raw += "\"]";
//         Logger.getLogger("SQLite").info("Setting " + key + " : " + raw);
//         setValue(key, raw);
//     }
// }


import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.widget.TextView;
import com.itwookie.XMLreader.XMLNode;
import com.itwookie.XMLreader.XMLTask;
import java.util.logging.Logger;
import de.e621.rebane.SQLite.SQLiteDB;
import de.e621.rebane.a621.R;

                    n.setTitle("Update available");
                    TextView fMsg = new TextView(LauncherActivity.this);
                    fMsg.setPadding(8,8,8,8);
                    fMsg.setText(Html.fromHtml("Installed: " + vcur + "<br>Latest: " + vnew + "<br>Please visit the <a href=\"https://e621.net/forum/show.xml?id=191258\">Forum</a> for more information."));
                    n.setView(fMsg);
                    n.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            goon();
                        }
                    });
                    n.setOnDismissListener(new DialogInterface.OnDismissListener() {
                        @Override public void onDismiss(DialogInterface dialogInterface) {
                            goon();
                        }
                    });
                    n.show();
                } else goon();
            }

            @Override public void onExecutionFailed(Exception exc) {
                goon();
            }

        }.execute("https://e621.net/forum/show.xml?id=191258");
    }

    public void goon() {
        runOnUiThread(new Runnable() {
            @Override public void run() {

// Path: src/main/java/de/e621/rebane/SQLite/SQLiteDB.java
// public class SQLiteDB {
// 	private SQLiteDatabase database;
// 	private SQLhelper dbHelper;
//     private Context context;
// 
//     /** Erzeugt eine Neue instanz. Es sollte immer nur eine Instanz gleichzeitig verwendet werden<br>
//      * Jedoch ist das hohlen des Context über einen Konstruktor wesentlich angenehmer ;)<br>
//      * <br>
//      * Anschließen muss die Datenbank mit instanc.open() geöffnet und abschließend mit instance.close()<br>
//      * wieder geschlossen werden.
//      * */
// 	public SQLiteDB(Context context) {
// 		dbHelper = new SQLhelper(this.context = context);
// 	}
// 
//     /** Öffnet die Datenbank - nach der bearbeitung .close() nicht vergessen */
// 	public void open() throws SQLException {
//         try {
//             if (database == null || !database.isOpen())
//                 database = dbHelper.getWritableDatabase();
//         } catch (Exception e) {
//             dbHelper = new SQLhelper(context);
//             database = dbHelper.getReadableDatabase();
//         }
// 	}
// 
//     /** Schließt die datenbank.<br>Ich bin mir nicht sicher, ob überhaupt ein Fehler auftritt, wenn man
//      * versucht, daten zu lesen wären die Datenbank geschlossen ist - einfach aufpassen :)
//       */
// 	public void close() {
// 		dbHelper.close();
// 	}
// 
//     /** Speicher ein Key Value Paar.<br>Der Wert für Key wird überschrieben, fals der Key bereits existiert */
// 	public void setValue(String Key, String Value) {
// 		//See if key already exists
// 		Cursor cursor = database.query(SQLhelper.TABLE_NAME, new String[]{ "Key" } , "Key='" + Key + "'", null, null, null, null);
// 		Boolean got_result = cursor.moveToFirst();
// 		cursor.close();
// 		
// 		if (!got_result) { //Create Key
// 			ContentValues values = new ContentValues();
// 			values.put("VALUE", Value);
// 			values.put("KEY", Key);
// 			database.insert(SQLhelper.TABLE_NAME, null, values);
// 		} else { //Update Key
// 			ContentValues values = new ContentValues();
// 			values.put("VALUE", Value);
// 			database.update(SQLhelper.TABLE_NAME, values, "Key='" + Key + "'", null);
// 		}
// 	}
// 
//     /** Holt einen Wert aus der Datenbank.<br>Fals kein Key Value Paar existiert wird null zurück gegeben*/
// 	public String getValue(String Key) {
// 		Cursor cursor = database.query(SQLhelper.TABLE_NAME, new String[]{ "Value" } , "Key='" + Key + "'", null, null, null, null);
// 		if (!cursor.moveToFirst() || cursor.isNull(0)) { cursor.close(); return null; }
// 		String result = cursor.getString(0);
// 		
// 		cursor.close(); return result;
// 	}
// 
//     public String[] getStringArray(String key) {
//         String raw = getValue(key);
//         if (raw == null || raw.isEmpty()) return new String[]{};
//         Logger.getLogger("SQLite").info("Getting " + key + " : " + raw);
//         return raw.substring(2, raw.length()-2).split("\", \"");
//     }
//     public void setStringArray(String key, String... array) {
//         String raw = "[\"";
//         int l1 = array.length-1;
//         for (int i = 0; i <= l1; i++) {
//             raw += array[i];
//             if (i != l1) raw += "\", \"";
//         }
//         raw += "\"]";
//         Logger.getLogger("SQLite").info("Setting " + key + " : " + raw);
//         setValue(key, raw);
//     }
// }


// Path: src/main/java/de/e621/rebane/activities/LauncherActivity.java
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.widget.TextView;
import com.itwookie.XMLreader.XMLNode;
import com.itwookie.XMLreader.XMLTask;
import java.util.logging.Logger;
import de.e621.rebane.SQLite.SQLiteDB;
import de.e621.rebane.a621.R;

                    n.setTitle("Update available");
                    TextView fMsg = new TextView(LauncherActivity.this);
                    fMsg.setPadding(8,8,8,8);
                    fMsg.setText(Html.fromHtml("Installed: " + vcur + "<br>Latest: " + vnew + "<br>Please visit the <a href=\"https://e621.net/forum/show.xml?id=191258\">Forum</a> for more information."));
                    n.setView(fMsg);
                    n.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            goon();
                        }
                    });
                    n.setOnDismissListener(new DialogInterface.OnDismissListener() {
                        @Override public void onDismiss(DialogInterface dialogInterface) {
                            goon();
                        }
                    });
                    n.show();
                } else goon();
            }

            @Override public void onExecutionFailed(Exception exc) {
                goon();
            }

        }.execute("https://e621.net/forum/show.xml?id=191258");
    }

    public void goon() {
        runOnUiThread(new Runnable() {
            @Override public void run() {

                SQLiteDB database = new SQLiteDB(LauncherActivity.this);
