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

kivy / kivy / 30072869306
60%

Build:
DEFAULT BRANCH: master
Ran 24 Jul 2026 06:48AM UTC
Jobs 2
Files 346
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

24 Jul 2026 06:38AM UTC coverage: 60.228% (+0.002%) from 60.226%
30072869306

push

github

web-flow
Remove remaining python-for-android android module usage from Kivy core (#9346)

* 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
of a direct jnius r... (continued)

3276 of 6498 branches covered (50.42%)

27 of 58 new or added lines in 8 files covered. (46.55%)

541 existing lines in 32 files now uncovered.

29544 of 49054 relevant lines covered (60.23%)

1.19 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
0.0
0.0% kivy/core/clipboard/clipboard_android.py
4
62.39
0.0% kivy/app.py
2
67.41
-1.64% kivy/core/window/__init__.py
2
48.76
-0.5% kivy/core/window/window_sdl3.py
1
72.58
-4.19% kivy/base.py
1
0.0
0.0% kivy/core/audio_output/audio_android.py

Coverage Regressions

Lines Coverage ∆ File
108
2.07
-44.63% kivy/core/video/video_ffpyplayer.py
71
4.81
-68.27% kivy/core/audio_output/audio_ffpyplayer.py
53
54.52
-11.99% kivy/lang/builder.py
31
65.54
-6.14% kivy/core/text/__init__.py
29
59.76
-5.72% kivy/lang/parser.py
26
74.77
-4.79% kivy/core/image/__init__.py
26
36.36
-59.09% kivy/tests/test_audio.py
23
53.85
-35.38% kivy/input/postproc/tripletap.py
19
56.45
-30.65% kivy/input/postproc/doubletap.py
17
55.81
-19.77% kivy/effects/dampedscroll.py
16
4.55
-36.36% kivy/core/image/img_ffpyplayer.py
16
34.43
-26.23% kivy/tests/test_coverage.py
15
52.55
-4.78% kivy/tests/async_common.py
14
67.41
-1.64% kivy/core/window/__init__.py
13
72.58
-4.19% kivy/base.py
9
78.71
-4.46% kivy/input/motionevent.py
8
38.68
-7.55% kivy/cache.py
7
40.98
-11.48% kivy/factory.py
7
37.73
-3.18% kivy/logger.py
5
30.42
-1.09% kivy/clock.py
5
80.77
-4.81% kivy/core/audio_output/__init__.py
4
74.83
-0.92% kivy/animation.py
3
20.97
-0.91% kivy/config.py
3
48.76
-0.5% kivy/core/window/window_sdl3.py
3
34.31
-2.19% kivy/metrics.py
2
78.38
-5.41% kivy/core/image/img_sdl3.py
2
53.02
-1.34% kivy/core/__init__.py
2
56.06
-3.03% kivy/resources.py
1
0.0
0.0% kivy/core/clipboard/clipboard_android.py
1
76.98
-0.79% kivy/core/video/__init__.py
1
49.26
-0.3% kivy/tests/common.py
1
98.8
-0.6% kivy/tests/test_benchmark.py
Jobs
ID Job ID Ran Files Coverage
1 30072869306.1 24 Jul 2026 06:48AM UTC 346
58.72
GitHub Action Run
2 30072869306.2 24 Jul 2026 06:48AM UTC 346
60.18
GitHub Action Run
Source Files on build 30072869306
  • Tree
  • List 346
  • Changed 8
  • Source Changed 8
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30072869306
  • 57083705 on github
  • Prev Build on master (#30072791444)
  • Next Build on master (#30202678850)
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