void remove_single_item(Long itemid) { String Query = "SELECT type,data FROM playlist WHERE playorder=" + itemid; JSONArray jArray = activity.ld.runQuery("lyricDb", Query); if (jArray == null) { return; } try { JSONObject results = jArray.getJSONObject(0); if ((results.getString("type").equals("play")) || (results.getString("type").equals("sub"))) { Query = "SELECT playorder FROM playlist WHERE playlist=" + results.getLong("data"); JSONArray pArray = activity.ld.runQuery("lyricDb", Query); if (pArray != null) { for (int i = 0; i < pArray.length(); i++) { JSONObject item = pArray.getJSONObject(i); remove_single_item(item.getLong("playorder")); } } Query = "DELETE FROM playlist WHERE playlist=" + results.getLong("data"); activity.ld.runQuery("lyricDb", Query); Query = "DELETE FROM playlists WHERE id=" + results.getLong("data"); activity.ld.runQuery("lyricDb", Query); } Query = "DELETE FROM playlist WHERE playorder=" + itemid; activity.ld.runQuery("lyricDb", Query); Query = "DELETE FROM associations WHERE playlist=" + itemid; activity.ld.runQuery("lyricDb", Query); } catch (JSONException e) { activity.logError("Error parsing data " + e.toString()); } }
void add_playlist() { Log.i(TAG, "add_playlist:" + this_playlist); if (activity.hosts == null) { load_demo_playlist(); return; } if (this_playlist <= 0) { return; } String Query; Query = "SELECT playlist FROM playlist WHERE data=" + this_playlist + " AND (type='play' OR type='sub')"; parent_playlist = (long) activity.ld.runQuery_int("lyricDb", Query, "playlist"); Query = "SELECT playorder, type, data FROM playlist" + " WHERE playlist=" + this_playlist + " ORDER BY playorder"; JSONArray jArray = activity.ld.runQuery("lyricDb", Query); if (jArray == null) { return; } for (int i = 0; i < jArray.length(); i++) { try { JSONObject results = jArray.getJSONObject(i); if (results.getString("type").equals("play") || results.getString("type").equals("sub")) { String Query2 = "SELECT * FROM playlists WHERE id=" + results.getString("data"); JSONArray pArray = activity.ld.runQuery("lyricDb", Query2); if (pArray != null && pArray.length() > 0) { adapter.add( results.getLong("playorder"), "", pArray.getJSONObject(0).getString("title"), results.getString("type"), results.getLong("data")); Log.i( TAG, "Add list:" + results.getLong("data") + "-" + pArray.getJSONObject(0).getString("title")); } } else if (results.getString("type").equals("song")) { String Query2 = "SELECT pagetitle, lyrics FROM page WHERE pageid=" + results.getString("data"); JSONArray pArray = activity.ld.runQuery("lyricDb", Query2); if (pArray != null && pArray.length() > 0) { adapter.add( results.getLong("playorder"), pArray.getJSONObject(0).getString("pagetitle"), pArray.getJSONObject(0).getString("lyrics"), results.getString("type"), (long) 0); } } else if (results.getString("type").equals("vers")) { adapter.add( results.getLong("playorder"), "", "Verses " + results.getString("data"), results.getString("type"), (long) 0); } else if (results.getString("type").equals("file")) { String filename = results.getString("data"); if (filename.startsWith("/var/tmp/lyricue-")) { filename = filename .substring(filename.lastIndexOf("/") + 1, filename.length() - 4) .replace("_", " "); adapter.add( results.getLong("playorder"), "Presentation: " + filename, "", results.getString("type"), (long) 0); } else { adapter.add( results.getLong("playorder"), "File: " + results .getString("data") .substring(results.getString("data").lastIndexOf("/") + 1), "", results.getString("type"), (long) 0); } } else if (results.getString("type").equals("imag")) { String[] imageItem = results.getString("data").split(";", 2); switch (imageItem[0]) { case "db": String Query2 = "SELECT description FROM media WHERE id=" + imageItem[1]; JSONArray pArray = activity.ld.runQuery("mediaDb", Query2); if (pArray != null && pArray.length() > 0) { String desc = pArray.getJSONObject(0).getString("description"); adapter.add( results.getLong("playorder"), "Image: " + desc, "", results.getString("type"), (long) 0); } else { adapter.add( results.getLong("playorder"), "Image", "unknown", results.getString("type"), (long) 0); } break; case "dir": adapter.add( results.getLong("playorder"), "Image: " + imageItem[1].substring(imageItem[1].lastIndexOf("/") + 1), "", results.getString("type"), (long) 0); break; default: adapter.add( results.getLong("playorder"), "Image: " + imageItem[1], "", results.getString("type"), (long) 0); break; } } else { adapter.add( results.getLong("playorder"), "Unknown item type", "", results.getString("type"), (long) 0); } } catch (JSONException e) { activity.logError("Error parsing data " + e.toString()); return; } } }