Release Android Preview 21 and bilingual changelog

Add permission-based reading of Android contacts, SMS and call history. Include shared Gaia fixes and document device validation limits. Pixel image qualification remains pending.
This commit is contained in:
OverSu 2026-10-14 13:13:46 +02:00
commit 200d1fb235
43 changed files with 2271 additions and 65 deletions

View file

@ -55,8 +55,15 @@
ime.dispatchEvent(new Event('inputcontextchange'));
};
Object.defineProperty(navigator,'mozInputMethod',{value:ime});
addEventListener('vulpes-service-event',({detail})=>{if(detail.type==='input-focus')setState(detail.data);});
call('input.request',{operation:'state'}).then(setState).catch(console.error);
let focusReceived=false;
addEventListener('vulpes-service-event',({detail})=>{
if(detail.type==='input-focus') {focusReceived=true;setState(detail.data);}
});
// A focus event can arrive while the initial state request is in flight.
// Its older snapshot must not clear or reopen the newer input context.
call('input.request',{operation:'state'}).then(state=>{
if(!focusReceived)setState(state);
}).catch(console.error);
window.resizeTo=(_width,height)=>call('input.request',{operation:'height',height}).catch(console.error);
}
if(app==='system') {

View file

@ -103,3 +103,25 @@
background-color: var(--vulpes-surface) !important;
color: var(--vulpes-text) !important;
}
/* Keep the message and its surface paired, including lazily loaded Gaia dialogs. */
:root #vulpes-gaia-notice,
:root #vulpes-gaia-notice > section,
:root #vulpes-gaia-notice > section > p {
background-color: #f4f4f4 !important;
color: #202b33 !important;
}
:root[data-vulpes-theme="dark"] #vulpes-gaia-notice,
:root[data-vulpes-theme="dark"] #vulpes-gaia-notice > section,
:root[data-vulpes-theme="dark"] #vulpes-gaia-notice > section > p {
background-color: var(--vulpes-surface) !important;
color: var(--vulpes-text) !important;
}
:root[data-vulpes-app="settings"] p[data-vulpes-unavailable] {
background-color: #f4f4f4 !important;
color: #202b33 !important;
}
:root[data-vulpes-theme="dark"][data-vulpes-app="settings"] p[data-vulpes-unavailable] {
background-color: var(--vulpes-surface) !important;
color: var(--vulpes-text) !important;
}