diff --git a/privacy.html b/privacy.html index 94ab2b4..a9eb9d7 100644 --- a/privacy.html +++ b/privacy.html @@ -5,7 +5,7 @@ Privacy Policy | RadioPlayer - + @@ -107,23 +107,47 @@ font-weight: 700; } - .back-link { - padding: 0.7rem 1rem; + .language-switch { + display: inline-flex; + gap: 4px; + padding: 4px; border: 1px solid var(--border); border-radius: 999px; background: rgba(255, 255, 255, 0.06); - color: var(--text-main); - text-decoration: none; - font-size: 0.92rem; - font-weight: 700; } - .back-link:hover, - .back-link:focus-visible { - border-color: rgba(77, 215, 200, 0.45); + .language-button { + min-width: 48px; + min-height: 40px; + padding: 0.55rem 0.85rem; + border: 0; + border-radius: 999px; + background: transparent; + color: var(--text-main); + font-size: 0.92rem; + font-weight: 700; + cursor: pointer; + } + + .language-button:hover, + .language-button:focus-visible { background: rgba(255, 255, 255, 0.1); } + .language-button[aria-pressed="true"] { + background: var(--accent); + color: #071412; + } + + .language-button:focus-visible { + outline: 2px solid var(--accent-3); + outline-offset: 2px; + } + + .language-panel[hidden] { + display: none; + } + .privacy-card { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--border); @@ -225,8 +249,8 @@ align-items: stretch; } - .back-link { - text-align: center; + .language-switch { + align-self: flex-end; } .privacy-card { @@ -248,106 +272,362 @@ RadioPlayer RadioPlayer - Web radio player + Native Android radio player - Back to the app +
+ + +
+

Policy

Privacy Policy

- This page explains which data RadioPlayer stores only in your browser, why it uses that data, and how you - can remove it. This text applies to the web version of the app and to its PWA installation. + This policy explains how the native RadioPlayer application for Android (net.klevze.radio) + handles information when you listen to radio stations, use Android Auto or Google Cast, and configure app + features. RadioPlayer does not require an account and does not contain advertising or analytics SDKs.

-
Effective date: April 29, 2026
+
Effective date: September 3, 2026
-

What data is created during use

+

Information stored on your device

- RadioPlayer does not require registration or a user account. The app may, however, store settings and - lists that you create locally in your browser so they are available again the next time you visit. + RadioPlayer stores app settings and operational data locally in Android DataStore and app-private cache + files. This lets the app restore your choices without creating an online account.

    -
  • playback volume, the last selected station, and the last selected country filter,
  • -
  • your list of favorite stations and local playback statistics used to show recently played stations,
  • -
  • stations that you add manually in the editor,
  • -
  • the selected audio casting mode for a Google Cast connection.
  • +
  • favorite and recently played station identifiers;
  • +
  • the last selected station, without automatically starting playback after a normal app restart;
  • +
  • country, category, language and sorting filters, app language and visualizer preference;
  • +
  • an optional sleep-timer deadline;
  • +
  • an optional wake-alarm schedule and the station information needed to run it;
  • +
  • a local list of up to 50 recently played track titles and artists, shown on the "Recently played" screen and cleared from Settings;
  • +
  • a cached station catalog and cached station artwork needed for reliable operation.
+

Station search text is used only for the current session and is not kept as a search history.

-

Where the data is stored

+

Network connections and radio streams

- The data listed above is stored locally in your browser or in this website's data on your device. For - more persistent storage of settings and stations, the app uses the browser's local IndexedDB database. - When you use a new version for the first time, it may also migrate older local settings from previous - local storage so your data is preserved. RadioPlayer does not send these settings to its own server and - does not share them with other users without your action. + The app uses HTTPS to retrieve station-catalog updates from radio.76bit.net. When you + select a station, audio and artwork are requested directly from that station's or content provider's + server. A small fixed allowlist of HTTP audio hosts may be used only when a stream does not support HTTPS. + RadioPlayer does not disable or bypass TLS certificate validation.

- The app also uses cached application files for faster startup and operation without downloading all static - files again. You can clear this cache at any time in your browser settings. + Those third-party servers may receive technical information required to deliver the request, such as your + IP address, device or network information, requested URL and request time. Their own privacy policies and + retention practices apply. RadioPlayer does not control the availability or logging practices of + third-party stations.

-

External providers and streaming

+

Background playback and notifications

- When you start a radio stream, your browser connects directly to the radio station's server or another - stream provider. These external providers typically receive the technical data required to deliver the - stream, such as your IP address, browser details, and the time of the request. -

-

- If you use Google Cast, the Google Cast Web Sender SDK is used to establish and manage casting. In that - case, Google or the playback device may process data required for the casting session and media routing. -

-

- On Apple devices, the app may also offer AirPlay output selection. In that case, the media stream is - routed to the selected AirPlay device through your browser and operating system capabilities, so the - external device or Apple may process data required to establish and manage playback. + While audio is playing, Android may display a media notification and MediaSession controls in the + notification area, on the lock screen, on Bluetooth devices or in other compatible system surfaces. On + Android 13 and later, the app may request notification permission for these controls. Notifications are + used only for playback and alarm-related functionality, not for advertising.

-

Cookies and analytics

+

Sleep timer and wake alarm

- The current version of the app does not use analytics scripts for user profiling and does not set its own - advertising cookies. To store settings, the app uses the browser's local storage and IndexedDB rather - than traditional cookies. + The sleep timer stores an on-device deadline. If you enable the wake alarm, RadioPlayer uses Android's + exact-alarm capability so playback can start at the time you selected. Android may ask you to grant + Alarms & reminders access. After a reboot, time-zone change or relevant system event, the app only + reschedules an enabled alarm; receiving the boot event does not itself start playback. Exact timing may + still be affected by device-manufacturer battery policies.

-

Hosting logs

+

Android Auto

- The website host may automatically keep basic technical access logs for security, stability, or debugging - purposes. The scope of these logs depends on the hosting provider and is not part of the settings managed - by the RadioPlayer user interface. + When connected to Android Auto, the vehicle interface can browse the on-device station catalog, + favorites and recent stations, display station artwork, search for stations and control the same playback + session used by the phone. RadioPlayer does not create a separate car account, and connecting Android + Auto does not by itself start playback. Android Auto and Google may process technical information needed + to provide the connection and voice features under their own terms.

-

How to delete local data

+

Google Cast

- If you want to remove saved favorite stations, custom stations, or other settings, delete this website's - data in your browser. This removes local settings and cached application files from this device. + Google Cast is optional and starts only when you choose a compatible receiver. Google Cast and Android's + Media Router discover receivers on your local network. RadioPlayer sends the selected station's public + stream URL and basic metadata, such as its name and artwork URL, to the selected receiver using the + Default Media Receiver. Google and the receiver may process technical information required to establish + and operate that session. RadioPlayer does not add a separate Cast analytics account.

-

Policy updates

+

Audio visualizer

- This policy may be updated if the app's behavior, hosting setup, or external providers change. The - current version of the text will always be published on this page. + The optional 32-band visualizer analyzes audio samples already being decoded for playback inside the app. + The analysis is used only to draw the on-screen animation. It does not use the microphone, does not + require the RECORD_AUDIO permission, is not saved as an audio recording and is not sent + to the developer. +

+
+ +
+

Album / track cover art

+

+ RadioPlayer does not contact any external album-art or music-metadata service. The + artwork shown in the player, the media notification, on the lock screen and in Android Auto is the + logo or image supplied by the radio station (or the app's own placeholder when a + station provides none). The current song's artist and title, when a station broadcasts them, are shown + as text only and are never sent anywhere for an artwork lookup. +

+
+ +
+

Information not collected by the developer

+

RadioPlayer 2.0.0 does not include developer-operated:

+
    +
  • user accounts or cloud synchronization of favorites and settings;
  • +
  • advertising or user-profiling SDKs;
  • +
  • analytics SDKs;
  • +
  • sale of personal information;
  • +
  • access to your location, microphone, contacts, photos or files;
  • +
  • upload of your listening or track history to the developer — the bounded list of recently played tracks is kept only on your device.
  • +
+

+ This statement does not cover technical data processed independently by Android, Google Play, Android + Auto, Google Cast, radio stations, stream hosts or artwork providers under their own policies. +

+
+ +
+

Deleting your data

+

+ RadioPlayer has no online account to delete. You can remove locally stored favorites, recent stations, + preferences, timers, alarms and cached data by opening Android Settings, selecting Apps, RadioPlayer, + Storage, and clearing the app's storage. Uninstalling the app also removes its local app data, subject to + Android or Google backup and restore settings controlled by you. You can revoke notification, alarm and + other granted app access at any time in Android Settings. +

+
+ +
+

Android TV

+

+ RadioPlayer 2.0.0 does not provide a separately installable native Android TV application. You may cast + from the phone app to a compatible Google TV or Cast receiver. +

+
+ +
+

Changes and contact

+

+ This policy may be updated when RadioPlayer's behavior, dependencies or external services change. The + effective date above identifies the current version. For privacy questions, use the developer contact + information published with RadioPlayer on its Google Play listing.

+
+ + +
+ - \ No newline at end of file + diff --git a/sync.sh b/sync.sh index 33bc784..b4a655b 100644 --- a/sync.sh +++ b/sync.sh @@ -5,7 +5,7 @@ set -euo pipefail repoRoot='/mnt/d/Sites/RadioPlayer/web' localDistFolder="$repoRoot/dist/." remoteFolder='/opt/www/virtual/RadioPlayer/' -remoteServer='klevze@server.klevze.si' +remoteServer='klevze@server4.klevze.si' run_build() { if grep -qi microsoft /proc/version 2>/dev/null && command -v powershell.exe >/dev/null 2>&1; then