summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorsigmabeta <sigmabeta@users.noreply.github.com>2016-02-06 18:00:36 -0500
committersigmabeta <sigmabeta@users.noreply.github.com>2016-02-08 21:23:16 -0500
commit85cf07e87e4d472bb83a736d5c4420918cc24469 (patch)
tree1b5777510cc05a3c997834fc474f832e6b5fa5d9 /Source/Android/app/src/main/java
parent32dcb4c37cb70d895afd9a5050edbfb79f51d7a2 (diff)
Add Wiimote Input menu
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java12
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityPresenter.java14
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivityView.java10
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsAdapter.java5
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java21
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java9
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SettingsFile.java6
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";