diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index f7608506ed..c4cc9e1f3a 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -28,6 +28,7 @@ import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.fragments.EmulationFragment; import org.dolphinemu.dolphinemu.fragments.LoadStateFragment; +import org.dolphinemu.dolphinemu.fragments.MenuFragment; import org.dolphinemu.dolphinemu.fragments.SaveStateFragment; import java.util.List; @@ -40,7 +41,7 @@ public final class EmulationActivity extends AppCompatActivity private FrameLayout mFrameEmulation; private LinearLayout mMenuLayout; - private String mMenuFragmentTag; + private String mSubmenuFragmentTag; // So that MainActivity knows which view to invalidate before the return animation. private int mPosition; @@ -67,6 +68,7 @@ public final class EmulationActivity extends AppCompatActivity }; private String mScreenPath; private FrameLayout mFrameContent; + private String mSelectedTitle; @Override protected void onCreate(Bundle savedInstanceState) @@ -129,7 +131,7 @@ public final class EmulationActivity extends AppCompatActivity Intent gameToEmulate = getIntent(); String path = gameToEmulate.getStringExtra("SelectedGame"); - String title = gameToEmulate.getStringExtra("SelectedTitle"); + mSelectedTitle = gameToEmulate.getStringExtra("SelectedTitle"); mScreenPath = gameToEmulate.getStringExtra("ScreenPath"); mPosition = gameToEmulate.getIntExtra("GridPosition", -1); @@ -175,8 +177,6 @@ public final class EmulationActivity extends AppCompatActivity } }); - setTitle(title); - // Instantiate an EmulationFragment. EmulationFragment emulationFragment = EmulationFragment.newInstance(path); @@ -184,6 +184,21 @@ public final class EmulationActivity extends AppCompatActivity getFragmentManager().beginTransaction() .add(R.id.frame_emulation_fragment, emulationFragment, EmulationFragment.FRAGMENT_TAG) .commit(); + + if (mDeviceHasTouchScreen) + { + setTitle(mSelectedTitle); + } + else + { + MenuFragment menuFragment = (MenuFragment) getFragmentManager() + .findFragmentById(R.id.fragment_menu); + + if (menuFragment != null) + { + menuFragment.setTitleText(mSelectedTitle); + } + } } @Override @@ -240,7 +255,7 @@ public final class EmulationActivity extends AppCompatActivity { if (!mDeviceHasTouchScreen) { - if (mMenuFragmentTag != null) + if (mSubmenuFragmentTag != null) { removeMenu(); } @@ -579,12 +594,12 @@ public final class EmulationActivity extends AppCompatActivity { case SaveStateFragment.FRAGMENT_ID: fragment = SaveStateFragment.newInstance(); - mMenuFragmentTag = SaveStateFragment.FRAGMENT_TAG; + mSubmenuFragmentTag = SaveStateFragment.FRAGMENT_TAG; break; case LoadStateFragment.FRAGMENT_ID: fragment = LoadStateFragment.newInstance(); - mMenuFragmentTag = LoadStateFragment.FRAGMENT_TAG; + mSubmenuFragmentTag = LoadStateFragment.FRAGMENT_TAG; break; default: @@ -593,15 +608,15 @@ public final class EmulationActivity extends AppCompatActivity getFragmentManager().beginTransaction() .setCustomAnimations(R.animator.menu_slide_in, R.animator.menu_slide_out) - .replace(R.id.frame_submenu, fragment, mMenuFragmentTag) + .replace(R.id.frame_submenu, fragment, mSubmenuFragmentTag) .commit(); } private void removeMenu() { - if (mMenuFragmentTag != null) + if (mSubmenuFragmentTag != null) { - final Fragment fragment = getFragmentManager().findFragmentByTag(mMenuFragmentTag); + final Fragment fragment = getFragmentManager().findFragmentByTag(mSubmenuFragmentTag); if (fragment != null) { @@ -632,11 +647,16 @@ public final class EmulationActivity extends AppCompatActivity Log.e("DolphinEmu", "[EmulationActivity] Fragment not found, can't remove."); } - mMenuFragmentTag = null; + mSubmenuFragmentTag = null; } else { Log.e("DolphinEmu", "[EmulationActivity] Fragment Tag empty."); } } + + public String getSelectedTitle() + { + return mSelectedTitle; + } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java index 5c847ee1b1..d894f32373 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java @@ -8,6 +8,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; +import android.widget.TextView; import org.dolphinemu.dolphinemu.BuildConfig; import org.dolphinemu.dolphinemu.R; @@ -17,20 +18,24 @@ public final class MenuFragment extends Fragment implements View.OnClickListener { public static final String FRAGMENT_TAG = BuildConfig.APPLICATION_ID + ".ingame_menu"; public static final int FRAGMENT_ID = R.layout.fragment_ingame_menu; + private TextView mTitleText; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - LinearLayout rootView = (LinearLayout) inflater.inflate(FRAGMENT_ID, container, false); + View rootView = inflater.inflate(FRAGMENT_ID, container, false); - for (int childIndex = 0; childIndex < rootView.getChildCount(); childIndex++) + LinearLayout options = (LinearLayout) rootView.findViewById(R.id.layout_options); + for (int childIndex = 0; childIndex < options.getChildCount(); childIndex++) { - Button button = (Button) rootView.getChildAt(childIndex); + Button button = (Button) options.getChildAt(childIndex); button.setOnClickListener(this); } + mTitleText = (TextView) rootView.findViewById(R.id.text_game_title); + return rootView; } @@ -39,4 +44,9 @@ public final class MenuFragment extends Fragment implements View.OnClickListener { ((EmulationActivity) getActivity()).onMenuItemClicked(button.getId()); } + + public void setTitleText(String title) + { + mTitleText.setText(title); + } } diff --git a/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml b/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml index df31f0b69f..44093dc324 100644 --- a/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml +++ b/Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml @@ -1,46 +1,69 @@ -