diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2022-02-17 04:35:24 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2022-02-17 04:35:24 +0900 |
commit | bc493cc00746e0ba6d17b77c122cbf33ed16e8e5 (patch) | |
tree | 2cc72992a25cfc8700e51bc3036968d8a987b2e9 | |
parent | f19c280566277f341901d86fe3f383268c5d1706 (diff) |
launcher: better activity handling and cleanup
-rw-r--r-- | src/pw/cloudef/rpg/Launcher.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/pw/cloudef/rpg/Launcher.java b/src/pw/cloudef/rpg/Launcher.java index 626ac14..ab2e9b2 100644 --- a/src/pw/cloudef/rpg/Launcher.java +++ b/src/pw/cloudef/rpg/Launcher.java @@ -74,6 +74,14 @@ public class Launcher extends Activity { return null; } + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + try { Os.remove(zipPath()); } catch (Exception e) {} + try { Os.remove(baseDir() + "/game.zip"); } catch (Exception e) {} + try { Os.remove(baseDir() + "/rtp"); } catch (Exception e) {} + finishAndRemoveTask(); + } + protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { @@ -82,6 +90,7 @@ public class Launcher extends Activity { OutputStream output = new FileOutputStream(file); byte[] buf = new byte[8 * 1024]; for (int read = 0; (read = input.read(buf)) != -1;) output.write(buf, 0, read); + output.close(); input.close(); Class activity = getActivityForZip(file); if (activity == null) throw new Exception("Can't handle this game"); new File(baseDir()).mkdirs(); @@ -92,13 +101,14 @@ public class Launcher extends Activity { Os.symlink(rtpDir(), baseDir() + "/rtp"); Intent intent = new Intent(this, activity); intent.putExtra("id", gameId()); - startActivity(intent); + startActivityForResult(intent, 1); finish(); } catch (Exception e) { Log.d("pw.cloudef.rpg", e.toString()); try { Os.remove(zipPath()); } catch (Exception e2) {} try { Os.remove(baseDir() + "/game.zip"); } catch (Exception e2) {} + try { Os.remove(baseDir() + "/rtp"); } catch (Exception e2) {} + finishAndRemoveTask(); } - finishAndRemoveTask(); } } |