fix: make color picker popup responsive

This commit is contained in:
7015725
2026-05-22 03:57:31 +08:00
parent cc23da6904
commit 2a97a7a790
3 changed files with 44 additions and 15 deletions

View File

@@ -4754,15 +4754,32 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) {
var T = PT ? PT.T : this.getAnimalIslandTheme();
var wm = this.state.wm;
var dm = context.getResources().getDisplayMetrics();
var sw = Number(dm.widthPixels || 0);
var sh = Number(dm.heightPixels || 0);
try {
if (self.getScreenSizePx) {
var ss = self.getScreenSizePx();
if (ss && ss.w > 0 && ss.h > 0) { sw = ss.w; sh = ss.h; }
}
} catch(eScreenSize) { safeLog(null, 'e', "catch " + String(eScreenSize)); }
if (sw <= 0) sw = self.dp(360);
if (sh <= 0) sh = self.dp(640);
var panelWidth = Math.round(sw * 0.92);
var panelHeight = Math.round(sh * 0.84);
if (panelWidth > self.dp(420)) panelWidth = self.dp(420);
if (panelWidth < self.dp(300)) panelWidth = Math.min(sw - self.dp(16), self.dp(300));
if (panelHeight > sh - self.dp(48)) panelHeight = sh - self.dp(48);
if (panelHeight < self.dp(420)) panelHeight = Math.min(sh - self.dp(24), self.dp(420));
var root = new android.widget.FrameLayout(context);
root.setBackgroundColor(self.withAlpha(isDark ? 0xFF000000 : 0xFFFFFFFF, isDark ? 0.58 : 0.42));
root.setClickable(true);
try { root.setFocusable(true); root.setFocusableInTouchMode(true); } catch(eRootFocus) {}
var card = new android.widget.LinearLayout(context);
card.setOrientation(android.widget.LinearLayout.VERTICAL);
var cardLp = new android.widget.FrameLayout.LayoutParams(
self.dp(340), self.dp(520)
);
var cardLp = new android.widget.FrameLayout.LayoutParams(panelWidth, panelHeight);
cardLp.gravity = android.view.Gravity.CENTER;
card.setLayoutParams(cardLp);
card.setBackground(self.ui.createStrokeDrawable(T.card, self.withAlpha(T.primaryDeep, isDark ? 0.28 : 0.22), self.dp(1), self.dp(24)));
@@ -4784,19 +4801,31 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) {
});
closeBtn.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 18);
closeBtn.setTypeface(null, android.graphics.Typeface.BOLD);
try { closeBtn.setBackground(self.ui.createStrokeDrawable(T.primarySoft, self.withAlpha(T.primaryDeep, isDark ? 0.30 : 0.22), self.dp(1), self.dp(18))); } catch(eCloseBg) {}
header.addView(closeBtn, new android.widget.LinearLayout.LayoutParams(self.dp(42), self.dp(38)));
closeBtn.setGravity(android.view.Gravity.CENTER);
closeBtn.setPadding(0, 0, 0, 0);
try { closeBtn.setMinWidth(self.dp(44)); closeBtn.setMinHeight(self.dp(44)); } catch(eCloseMin) {}
try { closeBtn.setBackground(self.ui.createStrokeDrawable(T.primarySoft, self.withAlpha(T.primaryDeep, isDark ? 0.30 : 0.22), self.dp(1), self.dp(22))); } catch(eCloseBg) {}
header.addView(closeBtn, new android.widget.LinearLayout.LayoutParams(self.dp(44), self.dp(44)));
card.addView(header);
var scroll = new android.widget.ScrollView(context);
try { scroll.setFillViewport(false); } catch(eFill) {}
try { scroll.setVerticalScrollBarEnabled(false); } catch(eBar) {}
var scrollLp = new android.widget.LinearLayout.LayoutParams(
android.widget.LinearLayout.LayoutParams.MATCH_PARENT,
0
);
scrollLp.weight = 1;
scroll.setLayoutParams(scrollLp);
var content = new android.widget.LinearLayout(context);
content.setOrientation(android.widget.LinearLayout.VERTICAL);
content.setPadding(0, self.dp(8), 0, 0);
var contentLp = new android.widget.LinearLayout.LayoutParams(
android.widget.LinearLayout.LayoutParams.MATCH_PARENT,
android.widget.LinearLayout.LayoutParams.MATCH_PARENT
);
content.setLayoutParams(contentLp);
card.addView(content);
scroll.addView(content, new android.widget.ScrollView.LayoutParams(
android.widget.ScrollView.LayoutParams.MATCH_PARENT,
android.widget.ScrollView.LayoutParams.WRAP_CONTENT
));
card.addView(scroll);
root.addView(card);

View File

@@ -54,8 +54,8 @@
"size": 21198
},
"th_14_panels.js": {
"sha256": "e71b13ecaa8c33bf4742b2a9d8201b0d3556b797c693721688f0dc51be5e22c7",
"size": 292862
"sha256": "73e874db57d5422dbd0e92dc5f78795971547f79899175673e35fb78d492b728",
"size": 294294
},
"th_15_extra.js": {
"sha256": "11a9866ba156c2a7862633530eb0d796a9955698a0c3fad4199dcccd4bb27c47",
@@ -68,5 +68,5 @@
},
"keyId": "toolhub-targets-2026-rsa3072",
"schema": 2,
"version": 20260521194955
"version": 20260521195721
}

View File

@@ -1 +1 @@
NP16btZ+A8rAqr9KVGhL04QXPaDNxjQ3RyBOsoweawP4JpyD81Zt+JpgffpK87PqyaVEfYHRl883F6axGHpYgAVHSl49R0wTLnwaWuFddsIjKZtnThZJD7138glSGIFrYZ3HjiYmshJerfVe434crIQKTeFCd7hPr42MTuhQWtl30MQS4zXaKV7F8S0agJzVJUHR9zQdSBgdjS0luHrSTurIPmq4xy3j/CVzfgtw3103jm+meX+AYvIaANm26GYS0ye2W78zvEzGBwNgMRDQvkg/LcrDRLz2d5O4kVPviAd/2fWvqKet9WCnWx8VrZGcDtNS3ru2Z/aGnVnk2XLz9OFOWofdWOhoTcDrH7Fa8Ox8r9eIBZZIiRJL45ml7PustLP3kOI/hhX0eNXbr32On3+Y2lbHQw4mmA/RFHV7sVHbkaD8iDRYONXxYoF8h2qBVCyTmti5qe36H3gtOCTBgOXa9SpEc8Uj2S79eQvxatQc33LS++0RSNrEoCAcuR3r
e+hl66dbk5PzH1lUwHaxVcG5q1TWOXfeTWqAUrU75ce9P83uC/c1D+peNh/49pYrtCoof9SVcSJvJvBcw7/KFhMRpV/VVDv8gtcfifI2zVzozUdBwR09p6be65umHZqKATVWcS3Qi2jFkrugArvYBLMDH7+Azx8a5xercJ+zFYe0oKl+yssmNz/c3+9f3LQOhdI2DCqZLDeVR0hQ4gPxqTc55LSX5uQV1cWjg04nahGWsy+OY4GswwoZn3kZSkFR4pR8C/jRNgXI1WJGqRa4mVuEejPihkBgs+go5679YZovQeHbFvGhGkIMfMZnzqnSVcrJ7MDoLKTj8xciyAWRRkXPr8pLLddHa4013fVkC8LqnzrUXO6rz66yTfKzNydG26IEX/gXOao3aBTm94l033//bp3S1b3se5NupLjYnsL3on2aIYUHuHokYiHcD0kisMhPLA96FF1hiOl0QrxZunU/K3QRZY8hUUH5KSJzCTvCypWU6fZ/oIdfJoStz2Zv