summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorMahdi Hijazi <mahdi.hijazi@booking.com>2017-04-29 19:52:09 +0200
committerMahdi Hijazi <mahdi.hijazi@booking.com>2017-05-03 23:58:40 +0200
commited30caa3dd34d8e8e58a3c03665d8b75f166e7f1 (patch)
tree18eb77def83ea9b1ddf0f298cef45dea1c47ebad /Source/Android/app/src/main/java
parenteaa4565e6374e6f903863585dedb629f8ba91019 (diff)
[Android] Fix crash on the Android TV
Whenever the EmulationActivity crashes and the app gets back to the TvMainActivity, dolphin will crash tring to restor the mBrowseFragment since we don't save the adapter data in the bundle. This is quick hack to avoid the crash. The proper fix would be to save the adapter data in the bundle and restore it before restoring the fragment when the activity gets recreated. Crash Stacktrace: Process: org.dolphinemu.dolphinemu.debug, PID: 30353 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.dolphinemu.dolphinemu.debug/org.dolphinemu.dolphinemu.ui.main.TvMainActivity}: java.lang.IllegalArgumentException: Invalid position 1 requested at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2691) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2752) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6120) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.IllegalArgumentException: Invalid position 1 requested at android.support.v17.leanback.app.BrowseFragment.createMainFragment(BrowseFragment.java:509) at android.support.v17.leanback.app.BrowseFragment.replaceMainFragment(BrowseFragment.java:1454) at android.support.v17.leanback.app.BrowseFragment.setAdapter(BrowseFragment.java:764) at org.dolphinemu.dolphinemu.ui.main.TvMainActivity.buildRowsAdapter(TvMainActivity.java:183) at org.dolphinemu.dolphinemu.ui.main.TvMainActivity.onCreate(TvMainActivity.java:59) at android.app.Activity.performCreate(Activity.java:6664) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2644) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2752)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6120)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index 3f235fa1c4..17dad7a41e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -46,8 +46,11 @@ public final class TvMainActivity extends Activity implements MainView
setContentView(R.layout.activity_tv_main);
final FragmentManager fragmentManager = getFragmentManager();
- mBrowseFragment = (BrowseFragment) fragmentManager.findFragmentById(
- R.id.fragment_game_list);
+ mBrowseFragment = new BrowseFragment();
+ fragmentManager
+ .beginTransaction()
+ .add(R.id.content, mBrowseFragment, "BrowseFragment")
+ .commit();
// Set display parameters for the BrowseFragment
mBrowseFragment.setHeadersState(BrowseFragment.HEADERS_ENABLED);
@@ -55,7 +58,6 @@ public final class TvMainActivity extends Activity implements MainView
mBrowseFragment.setBadgeDrawable(getResources().getDrawable(
R.drawable.ic_launcher, null));
mBrowseFragment.setBrandColor(getResources().getColor(R.color.dolphin_blue_dark));
-
buildRowsAdapter();
mPresenter.onCreate();