Merge pull request #282 from LoungeKatt/master

Error reporting and handling updates
This commit is contained in:
TwistedUmbrella 2014-02-15 16:16:04 -05:00
commit 3bdb4fafe9
5 changed files with 60 additions and 64 deletions

View File

@ -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

View File

@ -326,33 +326,34 @@
</LinearLayout>
</TableRow>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
<TableRow
android:layout_marginTop="10dp"
android:orientation="vertical" >
android:gravity="center_vertical" >
<TextView
android:id="@+id/region_text"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:gravity="center_vertical|left"
android:text="@string/select_region" />
<LinearLayout
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:layout_weight="1"
android:gravity="right" >
<Spinner
android:id="@+id/region_spinner"
android:layout_width="0dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
</Spinner>
</LinearLayout>
</LinearLayout>
</TableRow>
<TableRow
android:layout_marginTop="10dp"
@ -441,4 +442,10 @@
</TableLayout>
</LinearLayout>
<TableLayout>
</TableLayout>
<LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -34,6 +34,8 @@
<string name="games_listing">Available Dreamcast Games</string>
<string name="report_issue">Previous Crash Detected</string>
<string name="customize_touch_controls">Customize Touch Controls</string>
<string name="launch_editor">Launch Editor</string>
<string name="touch_vibration">Touch Vibration</string>

View File

@ -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();

View File

@ -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");
}
}