Android: Point the downloader to the nightly builds

This commit is contained in:
Lioncash 2014-12-20 23:34:21 -05:00
parent 2621ea9dd8
commit 67456b9023

View File

@ -5,6 +5,7 @@ import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
@ -72,8 +73,8 @@ public final class DownloadableCoresFragment extends ListFragment
} }
private static final String BUILDBOT_BASE_URL = "http://buildbot.libretro.com"; private static final String BUILDBOT_BASE_URL = "http://buildbot.libretro.com";
private static final String BUILDBOT_CORE_URL = BUILDBOT_BASE_URL + "/stable/android/armv7/1.0.0.2/cores/"; private static final String BUILDBOT_CORE_URL = BUILDBOT_BASE_URL + "/nightly/android/latest/armeabi-v7a/";
private static final String BUILDBOT_INFO_URL = BUILDBOT_BASE_URL + "/stable/android/armv7/1.0.0.2/info/"; private static final String BUILDBOT_INFO_URL = BUILDBOT_BASE_URL + "/nightly/android/latest/info/";
private OnCoreDownloadedListener coreDownloadedListener = null; private OnCoreDownloadedListener coreDownloadedListener = null;
@ -182,7 +183,7 @@ public final class DownloadableCoresFragment extends ListFragment
final String coreURL = BUILDBOT_BASE_URL + coreElement.attr("href"); final String coreURL = BUILDBOT_BASE_URL + coreElement.attr("href");
final String coreName = coreURL.substring(coreURL.lastIndexOf("/") + 1); final String coreName = coreURL.substring(coreURL.lastIndexOf("/") + 1);
final String infoURL = BUILDBOT_INFO_URL + coreName.replace("_android.so.zip", ".info"); final String infoURL = BUILDBOT_INFO_URL + coreName.replace(".so.zip", ".info");
downloadableCores.add(new DownloadableCore(getCoreName(infoURL), coreURL)); downloadableCores.add(new DownloadableCore(getCoreName(infoURL), coreURL));
} }
@ -191,7 +192,7 @@ public final class DownloadableCoresFragment extends ListFragment
} }
catch (IOException e) catch (IOException e)
{ {
Log.e("PopulateCoresListOperation", e.getMessage()); Log.e("PopulateCoresListOperation", e.toString());
// Make a dummy entry to notify an error. // Make a dummy entry to notify an error.
return new ArrayList<DownloadableCore>(); return new ArrayList<DownloadableCore>();
@ -216,35 +217,53 @@ public final class DownloadableCoresFragment extends ListFragment
// //
// One way this can be improved is by checking the info directory for // One way this can be improved is by checking the info directory for
// existing info files that match the core. Eliminating the download retrieval. // existing info files that match the core. Eliminating the download retrieval.
private String getCoreName(String urlPath) throws IOException private String getCoreName(String urlPath)
{ {
final URL url = new URL(urlPath);
final BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
final StringBuilder sb = new StringBuilder();
String str = "";
while ((str = br.readLine()) != null)
sb.append(str + "\n");
br.close();
// Write the info file.
File outputPath = new File(adapter.getContext().getApplicationInfo().dataDir + "/info/", urlPath.substring(urlPath.lastIndexOf('/') + 1));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputPath));
bw.append(sb);
bw.close();
// Now read the core name
String[] lines = sb.toString().split("\n");
String name = ""; String name = "";
for (int i = 0; i < lines.length; i++)
try
{ {
if (lines[i].contains("corename")) final URL url = new URL(urlPath);
final BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
final StringBuilder sb = new StringBuilder();
String str = "";
while ((str = br.readLine()) != null)
sb.append(str + "\n");
br.close();
// Write the info file.
File outputPath = new File(adapter.getContext().getApplicationInfo().dataDir + "/info/", urlPath.substring(urlPath.lastIndexOf('/') + 1));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputPath));
bw.append(sb);
bw.close();
// Now read the core name
String[] lines = sb.toString().split("\n");
for (int i = 0; i < lines.length; i++)
{ {
// Gross if (lines[i].contains("corename"))
name = lines[i].split("=")[1].trim().replace("\"", ""); {
break; // Gross
name = lines[i].split("=")[1].trim().replace("\"", "");
break;
}
} }
} }
catch (FileNotFoundException fnfe)
{
// Can't find the info file. Name it the same thing as the package.
final int start = urlPath.lastIndexOf('/') + 1;
final int end = urlPath.lastIndexOf('.');
if (end == -1)
name = urlPath.substring(start);
else
name = urlPath.substring(start, end);
}
catch (IOException ioe)
{
name = "Report this: " + ioe.getMessage();
}
return name; return name;
} }