diff --git a/core/nullDC.cpp b/core/nullDC.cpp index 6f2f0665e..c10639008 100755 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -142,7 +142,7 @@ int dc_init(int argc,wchar* argv[]) { return 69; } - +#ifndef _ANDROID if(!cfgOpen()) { msgboxf("Unable to open config file",MBX_ICONERROR); @@ -150,7 +150,6 @@ int dc_init(int argc,wchar* argv[]) } LoadSettings(); -#ifndef _ANDROID os_CreateWindow(); #endif diff --git a/shell/android/res/layout/configure_fragment.xml b/shell/android/res/layout/configure_fragment.xml index c9027e27c..f50b0d014 100644 --- a/shell/android/res/layout/configure_fragment.xml +++ b/shell/android/res/layout/configure_fragment.xml @@ -326,33 +326,34 @@ - + android:gravity="center_vertical" > + android:layout_weight="1" + android:gravity="right" > - + + + + + + + \ No newline at end of file diff --git a/shell/android/res/values/strings.xml b/shell/android/res/values/strings.xml index 689bf02f6..13d476a95 100644 --- a/shell/android/res/values/strings.xml +++ b/shell/android/res/values/strings.xml @@ -34,6 +34,8 @@ Available Dreamcast Games + Previous Crash Detected + Customize Touch Controls Launch Editor Touch Vibration diff --git a/shell/android/src/com/reicast/emulator/MainActivity.java b/shell/android/src/com/reicast/emulator/MainActivity.java index 9454e60d2..5bd870c42 100644 --- a/shell/android/src/com/reicast/emulator/MainActivity.java +++ b/shell/android/src/com/reicast/emulator/MainActivity.java @@ -25,7 +25,6 @@ import android.view.View.OnTouchListener; import android.widget.TextView; import android.widget.Toast; -import com.android.util.DreamTime; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnOpenListener; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; @@ -65,22 +64,19 @@ public class MainActivity extends SlidingFragmentActivity implements public void uncaughtException(Thread t, Throwable error) { if (error != null) { Log.e("com.reicast.emulator", error.getMessage()); - Toast.makeText(MainActivity.this, - getString(R.string.platform), - Toast.LENGTH_SHORT).show(); - GenerateLogs mGenerateLogs = new GenerateLogs(MainActivity.this); - mGenerateLogs.setUnhandled(error.getMessage()); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - mGenerateLogs.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, - home_directory); - } else { - mGenerateLogs.execute(home_directory); - } + mPrefs.edit().putString("prior_error", error.getMessage()).commit(); + MainActivity.this.finish(); } } }; Thread.setDefaultUncaughtExceptionHandler(mUEHandler); + String prior_error = mPrefs.getString("prior_error", null); + if (!prior_error.equals(null)) { + initiateReport(prior_error); + mPrefs.edit().remove("prior_error").commit(); + } + // Check that the activity is using the layout version with // the fragment_container FrameLayout if (findViewById(R.id.fragment_container) != null) { @@ -264,6 +260,37 @@ public class MainActivity extends SlidingFragmentActivity implements } + private void initiateReport(final String error) { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(getString(R.string.report_issue)); + builder.setMessage(error); + builder.setNegativeButton("Cancel", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }); + builder.setPositiveButton("Report", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Toast.makeText(MainActivity.this, + getString(R.string.platform), + Toast.LENGTH_SHORT).show(); + GenerateLogs mGenerateLogs = new GenerateLogs(MainActivity.this); + mGenerateLogs.setUnhandled(error); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + mGenerateLogs.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, + home_directory); + } else { + mGenerateLogs.execute(home_directory); + } + dialog.dismiss(); + } + }); + builder.create(); + builder.show(); + } + public static boolean isBiosExisting() { File bios = new File(home_directory, "data/dc_boot.bin"); return bios.exists(); diff --git a/shell/android/src/com/reicast/emulator/config/ConfigureFragment.java b/shell/android/src/com/reicast/emulator/config/ConfigureFragment.java index 2b8abefc6..71a7cb069 100644 --- a/shell/android/src/com/reicast/emulator/config/ConfigureFragment.java +++ b/shell/android/src/com/reicast/emulator/config/ConfigureFragment.java @@ -1,10 +1,6 @@ package com.reicast.emulator.config; import java.io.File; -import java.io.FileOutputStream; -import java.util.Scanner; - -import org.apache.commons.lang3.StringUtils; import android.app.Activity; import android.content.SharedPreferences; @@ -16,7 +12,6 @@ import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.text.Editable; import android.text.TextWatcher; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -48,7 +43,7 @@ public class ConfigureFragment extends Fragment { public static boolean dynarecopt = true; public static boolean idleskip = true; - public static boolean unstableopt = true; + public static boolean unstableopt = false; public static int cable = 3; public static int dcregion = 3; public static int broadcast = 4; @@ -371,39 +366,5 @@ public class ConfigureFragment extends Fragment { ConfigureFragment.cheatdisk); JNIdc.cheatdisk(ConfigureFragment.cheatdisk); JNIdc.dreamtime(DreamTime.getDreamtime()); - -// StringBuilder rebuildFile = new StringBuilder(); -// rebuildFile.append("[config]" + "\n"); -// rebuildFile.append("Dynarec.Enabled=" -// + String.valueOf(ConfigureFragment.dynarecopt ? 1 : 0) -// + "\n"); -// rebuildFile.append("Dynarec.idleskip=1" + "\n"); -// rebuildFile.append("Dynarec.unstable-opt=" -// + String.valueOf(ConfigureFragment.unstableopt ? 1 : 0) -// + "\n"); -// rebuildFile.append("Dreamcast.Cable=3" + "\n"); -// rebuildFile.append("Dreamcast.RTC=" + DreamTime.getDreamtime() -// + "\n"); -// rebuildFile.append("Dreamcast.Region=" -// + String.valueOf(ConfigureFragment.dcregion) + "\n"); -// rebuildFile.append("Dreamcast.Broadcast=4" + "\n"); -// rebuildFile.append("aica.LimitFPS=" -// + String.valueOf(ConfigureFragment.limitfps ? 1 : 0) -// + "\n"); -// rebuildFile.append("aica.NoBatch=0" + "\n"); -// rebuildFile.append("rend.UseMipmaps=" -// + String.valueOf(ConfigureFragment.mipmaps ? 1 : 0) -// + "\n"); -// rebuildFile.append("rend.WideScreen=" -// + String.valueOf(ConfigureFragment.widescreen ? 1 : 0) -// + "\n"); -// rebuildFile.append("pvr.Subdivide=0" + "\n"); -// rebuildFile.append("ta.skip=" -// + String.valueOf(ConfigureFragment.frameskip) + "\n"); -// rebuildFile.append("pvr.rend=" -// + String.valueOf(ConfigureFragment.pvrrender ? 1 : 0) -// + "\n"); -// rebuildFile.append("image=" + ConfigureFragment.cheatdisk -// + "\n"); } }