diff options
| author | sigmabeta <sigmabeta@users.noreply.github.com> | 2016-02-06 18:00:36 -0500 |
|---|---|---|
| committer | sigmabeta <sigmabeta@users.noreply.github.com> | 2016-02-08 21:23:16 -0500 |
| commit | 85cf07e87e4d472bb83a736d5c4420918cc24469 (patch) | |
| tree | 1b5777510cc05a3c997834fc474f832e6b5fa5d9 /Source/Android/app/src/main/java/org | |
| parent | 32dcb4c37cb70d895afd9a5050edbfb79f51d7a2 (diff) | |
Add Wiimote Input menu
Diffstat (limited to 'Source/Android/app/src/main/java/org')
10 files changed, 87 insertions, 5 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java index 42b3231c8c..b0f9358852 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java @@ -54,6 +54,9 @@ public final class MainPresenter mView.launchSettingsActivity(SettingsFile.FILE_NAME_GCPAD); return true; + case R.id.menu_settings_wiimote: + mView.launchSettingsActivity(SettingsFile.FILE_NAME_WIIMOTE); + case R.id.menu_refresh: mView.refresh(); return true; 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 bf9087bef1..c4f753edbd 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 @@ -225,10 +225,6 @@ public final class TvMainActivity extends Activity implements MainView { ArrayObjectAdapter rowItems = new ArrayObjectAdapter(new SettingsRowPresenter()); - rowItems.add(new TvSettingsItem(R.id.menu_refresh, - R.drawable.ic_refresh_tv, - R.string.grid_menu_refresh)); - rowItems.add(new TvSettingsItem(R.id.menu_settings_core, R.drawable.ic_settings_core_tv, R.string.grid_menu_core_settings)); @@ -241,10 +237,18 @@ public final class TvMainActivity extends Activity implements MainView R.drawable.ic_settings_gcpad, R.string.grid_menu_gcpad_settings)); + rowItems.add(new TvSettingsItem(R.id.menu_settings_wiimote, + R.drawable.ic_settings_wiimote, + R.string.grid_menu_wiimote_settings)); + rowItems.add(new TvSettingsItem(R.id.button_add_directory, R.drawable.ic_add_tv, R.string.add_directory_title)); + rowItems.add(new TvSettingsItem(R.id.menu_refresh, + R.drawable.ic_refresh_tv, + R.string.grid_menu_refresh)); + // Create a header for this row. HeaderItem header = new HeaderItem(R.string.settings, getString(R.string.settings)); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java index 206d6432dd..2ba41846b9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java @@ -156,6 +156,12 @@ public final class SettingsActivity extends AppCompatActivity implements Setting mPresenter.onGcPadSettingChanged(key, value); } + @Override + public void onWiimoteSettingChanged(String section, int value) + { + mPresenter.onWiimoteSettingChanged(section, value); + } + private SettingsFragment getFragment() { return (SettingsFragment) getFragmentManager().findFragmentByTag(SettingsFragment.FRAGMENT_TAG); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java index 59d4cbee77..7aea8c88d0 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java @@ -174,4 +174,18 @@ public final class SettingsActivityPresenter break; } } + + public void onWiimoteSettingChanged(String section, int value) + { + switch (value) + { + case 1: + mView.showToastMessage("Configuration coming soon. Settings from old versions will still work."); + break; + + case 2: + mView.showToastMessage("Please make sure Continuous Scanning is enabled in Core Settings."); + break; + } + } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java index 4307ec891b..8276077505 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java @@ -78,4 +78,14 @@ public interface SettingsActivityView * @param value New setting for the GCPad. */ void onGcPadSettingChanged(String key, int value); + + /** + * Called by a containing Fragment tell the containing Activity that a Wiimote's setting + * was modified. + * + * @param section Identifier for Wiimote that was modified; Wiimotes are identified by their section, + * not their key. + * @param value New setting for the Wiimote. + */ + void onWiimoteSettingChanged(String section, int value); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java index 4028af87a2..182593c2c9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java @@ -194,6 +194,11 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde mView.onGcPadSettingChanged(scSetting.getKey(), value); } + if (scSetting.getKey().equals(SettingsFile.KEY_WIIMOTE_TYPE)) + { + mView.onWiimoteSettingChanged(scSetting.getSetting().getSection(), value); + } + // Get the backing Setting, which may be null (if for example it was missing from the file) IntSetting setting = scSetting.setSelectedValue(value); if (setting != null) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java index 6ccd5f1a22..aacdfee03a 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java @@ -157,6 +157,12 @@ public final class SettingsFragment extends Fragment implements SettingsFragment mActivity.onGcPadSettingChanged(key, value); } + @Override + public void onWiimoteSettingChanged(String section, int value) + { + mActivity.onWiimoteSettingChanged(section, value); + } + public static final String FRAGMENT_TAG = BuildConfig.APPLICATION_ID + ".fragment.settings"; public static final String ARGUMENT_MENU_TAG = FRAGMENT_TAG + ".menu_tag"; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java index 72eaad9187..01fad9d322 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java @@ -106,6 +106,10 @@ public final class SettingsFragmentPresenter addGcPadSettings(sl); break; + case SettingsFile.FILE_NAME_WIIMOTE: + addWiimoteSettings(sl); + break; + case SettingsFile.SECTION_GFX_ENHANCEMENTS: addEnhanceSettings(sl); break; @@ -133,6 +137,7 @@ public final class SettingsFragmentPresenter Setting dualCore = null; Setting overclockEnable = null; Setting overclock = null; + Setting continuousScan = null; if (mSettings != null) { @@ -140,6 +145,7 @@ public final class SettingsFragmentPresenter dualCore = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_DUAL_CORE); overclockEnable = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_OVERCLOCK_ENABLE); overclock = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_OVERCLOCK_PERCENT); + continuousScan = mSettings.get(SettingsFile.SECTION_CORE).getSetting(SettingsFile.KEY_WIIMOTE_SCAN); } else { @@ -154,7 +160,7 @@ public final class SettingsFragmentPresenter sl.add(new CheckBoxSetting(SettingsFile.KEY_DUAL_CORE, SettingsFile.SECTION_CORE, R.string.dual_core, R.string.dual_core_descrip, true, dualCore)); sl.add(new CheckBoxSetting(SettingsFile.KEY_OVERCLOCK_ENABLE, SettingsFile.SECTION_CORE, R.string.overclock_enable, R.string.overclock_enable_description, false, overclockEnable)); sl.add(new SliderSetting(SettingsFile.KEY_OVERCLOCK_PERCENT, SettingsFile.SECTION_CORE, R.string.overclock_title, 0, 400, "%", 100, overclock)); - + sl.add(new CheckBoxSetting(SettingsFile.KEY_WIIMOTE_SCAN, SettingsFile.SECTION_CORE, R.string.wiimote_scanning, R.string.wiimote_scanning_description, true, continuousScan)); } private void addGcPadSettings(ArrayList<SettingsItem> sl) @@ -170,6 +176,19 @@ public final class SettingsFragmentPresenter } } + private void addWiimoteSettings(ArrayList<SettingsItem> sl) + { + if (mSettings != null) + { + for (int i = 1; i <= 4; i++) + { + // TODO This wiimote_0 + i business is quite the hack. It should work, but only if the definitions are kept together and in order. + Setting wiimoteSetting = mSettings.get(SettingsFile.SECTION_WIIMOTE + i).getSetting(SettingsFile.KEY_WIIMOTE_TYPE); + sl.add(new SingleChoiceSetting(SettingsFile.KEY_WIIMOTE_TYPE, SettingsFile.SECTION_WIIMOTE + i, R.string.wiimote_0 + i - 1, 0, R.array.wiimoteTypeEntries, R.array.wiimoteTypeValues, 0, wiimoteSetting)); + } + } + } + private void addGraphicsSettings(ArrayList<SettingsItem> sl) { Setting showFps = null; diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java index 8cdf4361e7..e3a62bbbbb 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java @@ -84,4 +84,13 @@ public interface SettingsFragmentView * @param value New setting for the GCPad. */ void onGcPadSettingChanged(String key, int value); + + /** + * Have the fragment tell the containing Activity that a Wiimote's setting was modified. + * + * @param section Identifier for Wiimote that was modified; Wiimotes are identified by their section, + * not their key. + * @param value New setting for the Wiimote. + */ + void onWiimoteSettingChanged(String section, int value); } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java index 12221cb0fe..22404d32d6 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java @@ -41,6 +41,8 @@ public final class SettingsFile public static final String SECTION_STEREOSCOPY = "Stereoscopy"; + public static final String SECTION_WIIMOTE = "Wiimote"; + public static final String KEY_CPU_CORE = "CPUCore"; public static final String KEY_DUAL_CORE = "CPUThread"; public static final String KEY_OVERCLOCK_ENABLE = "OverclockEnable"; @@ -78,6 +80,10 @@ public final class SettingsFile public static final String KEY_GCADAPTER_RUMBLE = "AdapterRumble"; public static final String KEY_GCADAPTER_BONGOS = "SimulateKonga"; + public static final String KEY_WIIMOTE_TYPE = "Source"; + + public static final String KEY_WIIMOTE_SCAN = "WiimoteContinuousScanning"; + // Internal only, not actually found in settings file. public static final String KEY_XFB_METHOD = "XFBMethod"; |
