• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kivy / kivy / 30008832315
60%

Build:
DEFAULT BRANCH: master
Ran 23 Jul 2026 01:02PM UTC
Jobs 2
Files 345
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jul 2026 12:53PM UTC coverage: 59.829% (+0.3%) from 59.518%
30008832315

push

github

web-flow
kivy.mobile Android backend for Window geometry, metrics scaling, and keyboard input type (#9345)

* kivy.mobile: add Android backend for window/display geometry

Implement the Android platform backend for kivy.mobile using jnius,
exposing DPI, scale, keyboard height, safe area, display cutout and
system-bar insets. The backend:

* is import-safe off-device and on API < 30 (jnius imports and
  WindowInsets.Type resolution are guarded/lazy), degrading to
  zeros/None with a single warning instead of failing to import;
* uses DisplayMetrics.density (not scaledDensity) for scale so the
  user's font scale is not double-counted;
* documents the per-feature Android API-level requirements;
* drives keyboard-height updates by polling the IME inset from a Kivy
  Clock tick, with the polling-vs-listener rationale documented inline;
* logs (rather than silently swallows) exceptions raised by
  keyboard-height subscribers while keeping subscribers isolated.

* kivy.core.window: source mobile keyboard height and safe area from kivy.mobile

Route Window.keyboard_height through kivy.mobile.get_keyboard_height()
for both Android and iOS, and subscribe to kivy.mobile keyboard-height
updates. Refresh Window.safe_area on both size and rotation changes
(Android orientation changes arrive as window resizes, not rotation
property changes), with a next-frame refresh so an early null inset read
does not stick at zero, and without swallowing errors raised by
on_safe_area observers.

* kivy.mobile: add test suite for the Android backend

Exercise android.py's real reflection paths through a fake jnius harness:
metric reads, keyboard-height polling and change notification, safe-area
unioning of system bars and display cutout, graceful degradation
off-device and on API 29, subscription idempotence, and isolation of a
raising keyboard-height subscriber.

* kivy.metrics: source fontscale from kivy.mobile

Route Metrics.fontscale through kivy.mobile like dpi and density, instead
o... (continued)

3263 of 6505 branches covered (50.16%)

361 of 380 new or added lines in 5 files covered. (95.0%)

2 existing lines in 2 files now uncovered.

29230 of 48856 relevant lines covered (59.83%)

1.18 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
93.29
-1.44% kivy/mobile/_platform/android.py
4
67.41
0.67% kivy/core/window/__init__.py
2
34.31
1.21% kivy/metrics.py
2
98.77
0.44% kivy/tests/test_mobile.py

Coverage Regressions

Lines Coverage ∆ File
1
67.41
0.67% kivy/core/window/__init__.py
1
65.73
-0.26% kivy/modules/inspector.py
Jobs
ID Job ID Ran Files Coverage
1 30008832315.1 23 Jul 2026 01:02PM UTC 345
58.37
GitHub Action Run
2 30008832315.2 23 Jul 2026 01:03PM UTC 345
59.78
GitHub Action Run
Source Files on build 30008832315
  • Tree
  • List 345
  • Changed 9
  • Source Changed 6
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30008832315
  • ceb47fd5 on github
  • Prev Build on master (#29254728594)
  • Next Build on master (#30009088541)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc