Permalink
Browse files

Merge pull request #7320 from zackhow/leanback-button-clear

Android: Clear controller binding by long press on TV
  • Loading branch information...
degasus committed Aug 13, 2018
2 parents 15ef7d6 + 51fa5d2 commit 9322c0edfa41d6a12ef04a9e447b388d5a748119
@@ -11,6 +11,7 @@
import org.dolphinemu.dolphinemu.features.settings.model.view.InputBindingSetting;
import org.dolphinemu.dolphinemu.utils.ControllerMappingHelper;
import org.dolphinemu.dolphinemu.utils.Log;
import org.dolphinemu.dolphinemu.utils.TvUtil;
import java.util.ArrayList;
import java.util.List;
@@ -45,7 +46,7 @@ public boolean onKeyEvent(int keyCode, KeyEvent event)
Log.debug("[MotionAlertDialog] Received key event: " + event.getAction());
switch (event.getAction())
{
case KeyEvent.ACTION_DOWN:
case KeyEvent.ACTION_UP:
if (!ControllerMappingHelper.shouldKeyBeIgnored(event.getDevice(), keyCode))
{
saveKeyInput(event);
@@ -58,6 +59,21 @@ public boolean onKeyEvent(int keyCode, KeyEvent event)
}
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event)
{
// Option to clear by long back is only needed on the TV interface
if (TvUtil.isLeanback(getContext()))
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
clearBinding();
return true;
}
}
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
@@ -197,4 +213,14 @@ private void saveInput(String bind, String ui)
dismiss();
}
private void clearBinding()
{
setting.setValue("");
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor editor = preferences.edit();
editor.remove(setting.getKey());
editor.apply();
dismiss();
}
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="clear">Hold back to clear</string>
</resources>

0 comments on commit 9322c0e

Please sign in to comment.