From a2d72a36a67cb964a69e1015fc0dd500d521495a Mon Sep 17 00:00:00 2001 From: Junyu Long <877730493@qq.com> Date: Sun, 14 Jul 2024 01:26:35 +0800 Subject: [PATCH] Fixed screen dimming when using game controller --- .../java/com/winlator/widget/TouchpadView.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/winlator/widget/TouchpadView.java b/app/src/main/java/com/winlator/widget/TouchpadView.java index ce77a42..23bd13e 100644 --- a/app/src/main/java/com/winlator/widget/TouchpadView.java +++ b/app/src/main/java/com/winlator/widget/TouchpadView.java @@ -1,6 +1,9 @@ package com.winlator.widget; import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.StateListDrawable; import android.view.InputDevice; import android.view.MotionEvent; import android.view.View; @@ -40,8 +43,9 @@ public class TouchpadView extends View { super(context); this.xServer = xServer; setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + setBackground(createTransparentBg()); setClickable(true); - setFocusable(false); + setFocusable(true); setFocusableInTouchMode(false); updateXform(AppUtils.getScreenWidth(), AppUtils.getScreenHeight(), xServer.screenInfo.width, xServer.screenInfo.height); } @@ -353,4 +357,16 @@ public class TouchpadView extends View { result[1] = y - lastY; return result; } + + private StateListDrawable createTransparentBg() { + StateListDrawable stateListDrawable = new StateListDrawable(); + + ColorDrawable focusedDrawable = new ColorDrawable(Color.TRANSPARENT); + ColorDrawable defaultDrawable = new ColorDrawable(Color.TRANSPARENT); + + stateListDrawable.addState(new int[]{android.R.attr.state_focused}, focusedDrawable); + stateListDrawable.addState(new int[]{}, defaultDrawable); + + return stateListDrawable; + } }