Admin page: the top bar clears the status bar in the iOS app (#423)
admin.html's viewport meta lacked viewport-fit=cover, which index.html has. Without it env(safe-area-inset-top) is 0, so the top bar's padding did not clear the clock in the app's full-screen web view, and the back arrow sat under it and could not be tapped. Seen in the simulator, the built page served locally: the arrow and the title level with the clock before, below the status bar after. Also a launch argument, -ipx.noBadgePrompt, so a simulator run can get past the badge permission dialog. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -27,7 +27,7 @@ The first launch asks, with `https://ipodderx.sdf1.net` filled in; a bare host g
|
|||||||
Shake the phone to change it. Plain `http://` only on your own network
|
Shake the phone to change it. Plain `http://` only on your own network
|
||||||
(`http://192.168.1.130:8099`), which is all `NSAllowsLocalNetworking` allows. Sign in on the page
|
(`http://192.168.1.130:8099`), which is all `NSAllowsLocalNetworking` allows. Sign in on the page
|
||||||
that follows, through Cloudflare Access or ipx's own form; the cookies that leaves are what the
|
that follows, through Cloudflare Access or ipx's own form; the cookies that leaves are what the
|
||||||
player uses (`CookieBridge`). `-ipx.server <url>` as a launch argument overrides it for a run.
|
player uses (`CookieBridge`). `-ipx.server <url>` as a launch argument overrides it for a run. `-ipx.noBadgePrompt YES` skips the badge permission dialog, which covers the page in a simulator run nobody is there to tap.
|
||||||
|
|
||||||
## Player token
|
## Player token
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ enum Badge {
|
|||||||
|
|
||||||
/// Asks once, for the badge alone: no alerts, no sounds.
|
/// Asks once, for the badge alone: no alerts, no sounds.
|
||||||
static func requestPermission() {
|
static func requestPermission() {
|
||||||
|
// `-ipx.noBadgePrompt YES` on the launch arguments: a simulator run that drives the page
|
||||||
|
// has nobody to tap Allow, and the dialog covers it.
|
||||||
|
if UserDefaults.standard.bool(forKey: "ipx.noBadgePrompt") { return }
|
||||||
UNUserNotificationCenter.current().requestAuthorization(options: [.badge]) { _, _ in }
|
UNUserNotificationCenter.current().requestAuthorization(options: [.badge]) { _, _ in }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- The Check every feed button in All Subscriptions' header, which did what the top bar's does (#416).
|
- The Check every feed button in All Subscriptions' header, which did what the top bar's does (#416).
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- The admin page's top bar clears the status bar in the iOS app, so its back button can be tapped; the page asked for no room under the clock as the app page does (#423).
|
||||||
- Swiping, or j, through more than 50 items no longer stops at the 50th until a reload: the next ones are fetched as you near the end, and Load more on the Unread tab no longer skips as many unread items as you had read (#383).
|
- Swiping, or j, through more than 50 items no longer stops at the 50th until a reload: the next ones are fetched as you near the end, and Load more on the Unread tab no longer skips as many unread items as you had read (#383).
|
||||||
- On the Unread tab, a short list read through no longer asks the server for more that is not there, or shows a count of 0 items beside the items still on screen (#385).
|
- On the Unread tab, a short list read through no longer asks the server for more that is not there, or shows a count of 0 items beside the items still on screen (#385).
|
||||||
- ipx-web no longer logs a deprecation warning about its metrics setting at every start (#381).
|
- ipx-web no longer logs a deprecation warning about its metrics setting at every start (#381).
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
||||||
<meta name="color-scheme" content="dark light">
|
<meta name="color-scheme" content="dark light">
|
||||||
<meta name="theme-color" content="#0a1726">
|
<meta name="theme-color" content="#0a1726">
|
||||||
<title>iPX admin</title>
|
<title>iPX admin</title>
|
||||||
|
|||||||
Reference in New Issue
Block a user