Repository navigation
Releases
Dynamic Island 0.1.17-dev2
English
This pre-release adds fixes for the reports on 0.1.17-dev1 and the charging popup option.
- Samsung's call window goes only when the island takes the call. Samsung's small incoming-call window was hidden as soon as a call notification arrived, whether or not the island could show the call. In a full-screen app, or with the island hidden, or when no card could be built for the call, nothing was left to see or answer except a small pill. The window is now hidden only while the island takes the call over, and left alone otherwise (and the hiding stops if the island lets go of it). Reported by Alireza. Not checked on a real device.
- A sports score with a team that has no logo. When one team of a live match (a Google sports notification) has only a letter on a grey tile instead of a logo, the pill fell back to plain text ("0-0F") instead of the two-sided score. The missing logo is now drawn as that letter on a grey tile, on whichever side it belongs. Reported by Alireza. Not checked on a real device.
- A call card's icon keeps its shape with an icon pack. The icon on a call card was always cut into a circle, which looked wrong for the rounded-square phone icon of an icon pack. A caller's photo is still round; an app's own icon now keeps a rounded square, like the icons in the pill. Reported by Alireza. Not checked on a real device.
- A number changed in a notification no longer opens another card. With All notifications in the island, a notification that asked to alert only once and kept changing a number in itself (the battery level) opened a new card at every change. It gets its card once, and again after ten minutes; a new message of a conversation still gets its card. Reported by Alireza. Not checked on a real device.
- Silent notifications get no card with All notifications. The option opened a card for notifications that make no sound too, which the system itself never pops up. Notifications the system rates as silent are now left out; only ones that make a sound get a card. Reported by Alireza. Not checked on a real device.
- The system's banner no longer stays beside an island card when it comes up late. When the island opened a card from the notification list, it looked for the system's banner of that notification only at once and after 120 ms. System UI binds the banner's view asynchronously, so the banner could appear after both looks and stay next to the card. The island now looks again up to two seconds after opening the card. The Diagnostics report also keeps the latest banner decisions (taken by the island, left to the stock banner and why) instead of only the first ones. Reported by Alireza. Not checked on a real device.
- Samsung's Edge Lighting popup stays away from what the island shows. Edge Lighting has its own small "brief" popup (it opens into the detailed one) and skips a notification only while the system's banner for it is pinned. A banner the island took is not pinned, so the Edge Lighting popup could appear next to the island's card. It now counts a notification the island has or will take as pinned. This needs Edge Lighting turned on for when the screen is on. Reported by Alireza. Not checked on a real device.
- The wide charging popup can be switched off. With Samsung's charging effect off (the default), plugging in opens the charging popup as a long pill across the status bar. On some phones that is too big. Wide charging popup (Events, next to the Samsung effect option) is on by default, as before; off gives the charging popup the size of an ordinary popup. Reported by a user (#42). Not checked on a real device.
Validation and installation
449 automated Android tests, release lint, translation validation and APK assembly passed. None of these changes has been checked on a physical device yet; the banner and Edge Lighting changes in particular need a phone to confirm.
Install over the existing version, then restart SystemUI or reboot. This APK uses the existing project release signature and a higher version code. Existing settings are retained.
한국어
0.1.17-dev1 이후 제보에 대한 수정과 충전 팝업 옵션을 담은 프리릴리즈입니다.
- 삼성 통화 창은 아일랜드가 통화를 맡을 때만 사라집니다. 삼성의 작은 수신 전화 창이 통화 알림이 오자마자, 아일랜드가 그 통화를 보여줄 수 있는지와 상관없이 숨겨졌습니다. 전체 화면 앱에 있거나 아일랜드가 숨겨져 있거나 카드를 만들 수 없는 통화에서는 작은 알약 말고는 볼 것도 받을 것도 남지 않았습니다. 이제 아일랜드가 통화를 맡는 동안에만 그 창을 숨기고, 그렇지 않으면 그대로 두며(아일랜드가 손을 떼면 숨기기도 멈춥니다). Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 로고가 없는 팀이 있는 스포츠 점수. 경기의 한 팀이 로고 대신 회색 타일 위 글자만 가진 경우(구글 스포츠 알림), 알약이 양쪽 점수 모양 대신 "0-0F" 같은 평범한 글자로 깨졌습니다. 이제 로고가 없는 쪽을 회색 타일 위 글자로 그려서 그 팀 자리에 둡니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 아이콘 팩을 써도 통화 카드의 아이콘 모양이 유지됩니다. 통화 카드의 아이콘이 항상 원으로 잘려서, 아이콘 팩의 둥근 사각형 전화 아이콘이 어색하게 보였습니다. 발신자 사진은 그대로 원이고, 앱 자체 아이콘은 알약 안 아이콘처럼 둥근 사각형을 유지합니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 알림 안의 숫자가 바뀔 때마다 새 카드가 뜨지 않습니다. 모든 알림을 아일랜드에 옵션을 켰을 때, 한 번만 알리도록 지정된 알림이 안의 숫자(배터리 잔량)를 계속 바꾸면 바뀔 때마다 새 카드가 열렸습니다. 이제 카드는 한 번 나오고, 10분 뒤에 다시 나옵니다. 대화의 새 메시지는 그대로 카드가 나옵니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 모든 알림 옵션에서 무음 알림은 카드가 뜨지 않습니다. 이 옵션이 소리 없는 알림에도 카드를 열었는데, 시스템도 그런 알림은 팝업으로 띄우지 않습니다. 시스템이 무음으로 분류한 알림은 이제 제외하고, 소리가 나는 알림만 카드가 나옵니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 카드가 열린 뒤 늦게 뜨는 시스템 배너도 사라집니다. 알림 목록에서 카드를 열 때 시스템 배너를 열린 직후와 120ms 뒤에 딱 두 번만 찾았습니다. 시스템 UI는 배너 뷰를 비동기로 만들기 때문에 두 번 다 놓친 뒤에 배너가 떠서 카드 옆에 남을 수 있었습니다. 이제 카드가 열린 뒤 최대 2초까지 다시 찾아 지웁니다. 진단 리포트도 처음 몇 건이 아니라 가장 최근의 배너 판단(아일랜드가 가져감, 기본 배너에 맡김과 이유)을 남깁니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 삼성 엣지 라이팅 팝업이 아일랜드가 보여주는 알림과 겹치지 않습니다. 엣지 라이팅에는 자체 "간략" 팝업(자세히 보기로 이어지는)이 있고, 시스템 배너가 고정돼 있는 동안에만 그 알림을 건너뜁니다. 아일랜드가 가져간 배너는 고정되지 않아서 엣지 라이팅 팝업이 아일랜드 카드 옆에 뜰 수 있었습니다. 이제 아일랜드가 가졌거나 가져갈 알림은 고정된 것으로 취급합니다. 엣지 라이팅이 화면이 켜져 있을 때도 켜져 있어야 해당됩니다. Alireza님이 알려 주셨습니다. 실제 기기에서는 확인하지 못했습니다.
- 넓은 충전 팝업을 끌 수 있습니다. 삼성 충전 효과가 꺼져 있으면(기본값) 충전기를 꽂을 때 상태 표시줄 전체에 걸친 긴 알약으로 충전 팝업이 열립니다. 일부 기기에서는 너무 큽니다. 넓은 충전 팝업(이벤트, 삼성 효과 옵션 옆)은 지금처럼 기본으로 켜져 있고, 끄면 충전 팝업이 보통 팝업 크기로 나옵니다. 사용자가 알려 주셨습니다(#42). 실제 기기에서는 확인하지 못했습니다.
검증·설치
자동 Android 테스트 449개, 릴리즈 린트, 번역 검사와 APK 빌드를 통과했습니다. 이 변경 중 어느 것도 아직 실기기에서 확인하지 못했습니다. 특히 배너와 엣지 라이팅 변경은 실제 기기 확인이 필요합니다.
기존 버전 위에 설치한 뒤 SystemUI를 재시작하거나 재부팅하세요. 기존 프로젝트 배포 서명과 더 높은 버전 코드를 사용합니다. 기존 설정은 유지합니다.
Dynamic Island 0.1.17-dev1
English
This pre-release includes the incoming-call banner fix and the accumulated bug fixes since 0.1.16.
- Incoming calls open as a banner. The caller and answer/decline buttons appear automatically in classic and iMotion modes, independently of ordinary card auto-open settings. The banner stays open while ringing and folds when the incoming call ends. Manual dismissal is respected.
- Samsung call popups. Extended the existing mini-window hide retries to cover a window created later. Matching SystemUI banners are suppressed while the island displays the call. Duplicate native/OA call cards are removed by notification identity. Answer, decline and speaker actions are selected by meaning rather than button order; other dialers use their own speaker actions.
- Settings and custom rules. Resetting all settings now reaches SystemUI. External access to the settings provider is restricted to the app and SystemUI. Rule changes no longer depend on hash equality; stage limits, highest-stage matching, labels-only imports, case-insensitive reset, colour reset and the 40-rule limit are consistent. Pattern merging preserves backreferences and the slow-regex guard handles nested wrappers. Separate orders keep separate cards, and waiting cards advance when displayed cards expire.
- Notifications and replies. Frequent progress updates no longer postpone refresh indefinitely. Action-only updates are applied. Recording replacement hides only the matching notification, and an app-opening intent is no longer assumed to stop recording. New messages with repeated wording are recognized correctly. Delayed banner removal cannot remove a newer posting under the same key. Failed replies keep their draft; charging popups do not discard an active reply. Choice-only replies use the app's own UI instead of sending arbitrary text.
- OTP, progress and privacy. Alphanumeric codes retain their letters and are marked copied only after clipboard success. Progress parsing handles shared capacity units, remaining percentages and configured context windows consistently. Live indeterminate progress remains visible. App exclusions follow the documented OTP/live-activity exceptions. Camera/microphone expiry is independent of location updates, and sensor state is separated by UID/profile. Original progress notifications remain available while the overlay is suppressed.
- Music and connected devices. Buffering at zero speed does not advance the playback clock; ended sessions freeze at their current position. Album-art history is isolated per session. Headphone battery updates refresh the card, remote sessions do not inherit phone headphones, and Bluetooth identity uses route addresses before display names. Audio visualization retries temporary initialization failures and releases partially created effects.
- Device status and time. Stale charging estimates expire, signed current measurements retain net-discharge direction, the first flashlight-off event after startup is recognized, and brightness is synchronized when the torch camera changes. Hotspot time includes deep sleep; paused stopwatches do not grow on notification reposts, and chronometers use elapsed time through clock corrections. Broken custom notification views can recover on a later update. Existing cards no longer auto-open again merely after returning from an app.
Validation and installation
435 automated Android tests, release lint, translation validation and APK assembly passed. Physical-device integration of the latest fixes is still pending. Samsung's mini-window uses the existing close-after-creation API, so a brief initial appearance may remain.
Install over the existing version, then restart SystemUI or reboot. This APK uses the existing project release signature and a higher version code. Existing settings and the classic material default are retained.
한국어
수신 전화 배너 수정과 정식 0.1.16 이후 누적된 버그 수정을 포함한 프리릴리즈입니다.
- 수신 전화 자동 배너. 일반·iMotion 모두 발신자와 받기·거절 버튼을 자동으로 펼칩니다. 일반 카드 자동 열기 설정과 별개로 동작하며, 벨이 울리는 동안 유지하고 수신 상태가 끝나면 접습니다. 사용자가 직접 닫은 경우는 존중합니다.
- 삼성 통화 팝업과 버튼. 늦게 생성되는 미니 창까지 닫도록 기존 숨김 재시도를 연장했습니다. 아일랜드에 해당 전화가 표시되는 동안 기본 SystemUI 배너를 억제하고, 같은 알림의 중복 통화 카드를 제거합니다. 받기·거절·종료·스피커 버튼을 순서가 아닌 의미로 구분하며 다른 전화 앱의 스피커 액션도 사용합니다.
- 설정·사용자 규칙. 전체 초기화를 SystemUI에도 반영하고 설정 제공자 접근을 앱과 SystemUI로 제한했습니다. 규칙 변경의 해시 충돌, 단계 상한·판정 순서, 이름만 있는 파일 가져오기, 대소문자 초기화, 색상 초기화와 40개 제한을 수정했습니다. 정규식 병합 시 역참조를 유지하고 위험 패턴 검사를 보강했습니다. 서로 다른 주문은 별도 카드로 처리하며 앞 카드가 만료되면 대기 카드를 올립니다.
- 알림·답장. 빈번한 진행률 갱신으로 화면 업데이트가 계속 밀리는 문제와 버튼만 바뀐 갱신 누락을 수정했습니다. 녹화 원본은 해당 알림만 숨기고, 단순 앱 열기 인텐트를 중지 버튼으로 잘못 연결하지 않습니다. 같은 문구의 새 메시지와 동일 키의 새 게시를 구분합니다. 답장 전송 실패나 충전 팝업 때문에 초안을 잃지 않으며 선택형 답장은 앱에서 처리합니다.
- 인증번호·진행률·개인정보 표시. 영숫자 인증번호의 문자를 보존하고 복사 성공 시에만 완료 표시를 합니다. 용량 단위·잔여 비율·문맥 범위 해석과 실시간 로딩 표시를 수정했습니다. 앱 제외는 안내된 인증번호·라이브 활동 예외를 따릅니다. 위치 갱신이 카메라·마이크 종료를 미루지 않으며 UID·프로필별 센서 상태를 분리합니다. 아일랜드가 숨겨졌을 때 원본 진행 알림까지 숨기지 않습니다.
- 음악·연결 장치. 버퍼링 중 재생 시간 증가와 세션 종료 시 시간 역행을 수정하고 앨범 아트를 세션별로 분리했습니다. 이어폰 배터리 갱신을 반영하며 원격 재생에 휴대폰 이어폰 정보를 붙이지 않습니다. 같은 이름의 블루투스 장치는 출력 주소를 우선합니다. 시각화 초기화 실패 후 자동 재시도와 자원 정리도 보완했습니다.
- 기기 상태·시간. 오래된 충전 추정값을 버리고 실제 전류의 방전 방향을 보존합니다. 시작부터 켜져 있던 손전등의 첫 끄기 알림과 플래시 카메라 변경 시 밝기 동기화를 수정했습니다. 핫스팟 시간에 절전을 포함하고, 스톱워치 재게시와 시스템 시각 보정으로 경과 시간이 바뀌는 문제를 수정했습니다. 오류 난 커스텀 알림의 복구와 앱에서 돌아올 때 기존 카드가 다시 자동으로 펼쳐지는 문제도 수정했습니다.
검증·설치
자동 Android 테스트 435개, 릴리즈 린트, 번역 검사와 APK 빌드를 통과했습니다. 최신 수정의 실기기 통합 검증은 남아 있습니다. 삼성 미니 창은 기존의 생성 후 닫기 방식을 사용하므로 최초 순간 노출이 남을 수 있습니다.
기존 버전 위에 설치한 뒤 SystemUI를 재시작하거나 재부팅하세요. 기존 프로젝트 배포 서명과 더 높은 버전 코드를 사용합니다. 기존 설정과 클래식 재질 기본값은 유지합니다.
Dynamic Island 0.1.16
Dynamic Island 0.1.16 · Lighter, and in your colours
Stable release · Changes since 0.1.15 · English / 한국어
New options
- Always visible island (#27). Keep an empty pill around the camera when there is nothing to show. The first activity grows out of it and the last folds back into it. Works with Classic and iMotion; off by default. Thanks to @eohashzinXD for the idea and initial implementation, rewritten for the current architecture.
- More control over gestures (#34). Turn Swipe up to hide off to avoid hiding the small pill accidentally. In iMotion, holding the small pill also hides it. Folding an open card still works independently.
- Pull down to open. Swipe down on the main or sub pill to open its cards. In the stack presentation, cards follow your finger, respond to flick speed and fold back if released early; iMotion opens the selected activity directly. Enabled by default, with an option to restore notification-panel pulling. Touch handling inside apps has also been improved.
- A dedicated Performance page (#33). Low-performance mode now lives here, alongside separate switches for still music cards, a static waveform, a frame-rate limit and still animated icons. Individual limits are off by default.
- Wallpaper colours (#35). Choose System colour (Material You) for ordinary buttons and progress bars. Your saved custom colour remains available; music, app icons and warning controls keep their own colours.
- Charging details as text (#36, #37). An optional text layout shows live readings and enabled charging statistics instead of the battery gauge. Thanks to @BonkerUnkilBonki for the proposal; rewritten with the app's existing structure and translations.
- Popup duration. Choose 3, 4, 5 or 6 seconds for short system popups; the default is 4 seconds. Popups with an existing longer duration retain it.
- Privacy indicators inside the current app. An optional switch also shows camera and microphone use by the app on screen. Off by default; the main privacy-indicator switch must also be enabled.
- Reset all settings. A confirmed reset under Advanced & troubleshooting includes colours, position, app lists and user rules.
- Nine feature recommendations below search. One card at a time introduces this release's new options. Use Next suggestion for another randomly chosen card, or Explore to locate the real setting. Recommendations do not enable features automatically.
- Repository shortcut. The Made by entry on the About page opens the project repository.
Fixes
- Charging has the highest popup priority. Charging connection feedback comes first, followed by other short system popups, then notification peeks and ongoing activities. A new message cannot displace charging or short system feedback. Battery updates retain charging's priority and original expiry time.
- Short system popups appear in the main pill. Mode changes, quick-setting changes, unlock notices and headset connections no longer wait behind a recording, match or call. iMotion also handles arrivals during a swipe or while a card is expanded, and returns to the previous row after the popups end.
- Popups wait for the quick panel. Events arriving while it is open wait until it closes, then receive their full display time. Events waiting over 30 seconds are discarded; quick-setting changes made inside the panel are not repeated.
- Wide charging feedback. With Samsung's stock charging effect disabled, the charging popup expands to a wide pill, temporarily hides the other status-bar contents and restores them afterwards. It still appears with Charging details enabled and does not leave later pills stretched.
- Charging readings on phones reporting 0 mA (#31). Where supported, the battery charge counter supplies an estimate until a real current reading is available. Unknown readings show a dash or the percentage instead of a false zero.
- One popup for one Bluetooth headset. Related earbud connections are grouped, preventing duplicate connection popups reported with Galaxy Buds3 Pro.
- Incoming calls stay incoming. A ringing call offers Answer and Decline; speaker controls appear after answering. Leaving Samsung's call screen also reveals the island call card sooner.
- Samsung call mini-popup dismissal. The module requests that Samsung's separate mini call window close, without answering or ending the call and without adding Phone to the LSPosed scope. Brief initial visibility is still possible; prompt dismissal was confirmed on the maintainer's device.
- Refreshed call icons. Rounded Lottie answer and end-call icons match the other animated controls, respect performance settings and stop animating when settled. Button colours and actions are preserved.
- Frosted notification-card corners. Fixed the media player's conflicting round clip, and extended clipping and height handling to other followed notifications so their corners and lower edge are not cut off. Native scrolling and swipe clipping are preserved. The latest non-media corner fix still needs device confirmation.
- Frosted glass on bright backgrounds. A smooth brightness limit preserves text readability. A shader precision fix prevents the flashing black patches confirmed on the reporter's phone; other GPUs may behave differently.
- Sports live notifications. A score containing only a dash no longer displays it between the team logos. A targeted fix addresses accumulating SystemUI layout callbacks suspected of causing lag; the lag fix still needs device confirmation.
- More reliable status-bar pulls and settings updates. Downward pulls are less likely to become sideways paging. Settings changes trigger a refresh instead of repeatedly polling the app process.
Performance
- Up to 950% faster blur processing.
- Up to 2,100% faster time formatting, using up to 93% less memory.
- Less work and fewer temporary objects in animation frames, including reused icon geometry, cached clock text and shared backdrop-filter buffers. Existing visuals and effect settings are preserved.
- High refresh rates are requested while the island moves and released when it settles; the frame-rate limit option remains available.
- Diagnostics now report frame timing, memory/GC activity, backdrop-filter reuse and recent shade-material state changes.
The percentage figures are desktop JVM benchmark results for the named operations, not overall app-speed gains or measurements from a phone. Suggestions and reports from Alireza informed the popup, charging, gesture and glass changes.
Validation and installation
- 362 default Android tests, translation-tool tests, 727 source strings, release lint and APK assembly checked locally. English, Korean, Japanese, Simplified Chinese and Russian are complete; Turkish and Brazilian Portuguese are community translations with English fallback.
- Local tests and renders cover logic and presentation. Device-confirmed results are identified above; the latest priority and non-media corner fixes remain to be verified on a phone.
- The official APK uses the existing project release key and a newer version code. Install over 0.1.15 or a 0.1.16 development release; existing settings are preserved. Classic remains the default material, and explicit material selections are retained.
- Restart SystemUI or reboot after updating. Always visible, text charging details and foreground privacy indicators are opt-in. Swipe up to hide and swipe down to open are enabled by default.
한국어
정식 릴리즈 · 0.1.15 이후 변경점
새 옵션
- 항상 보이는 아일랜드 (#27). 표시할 내용이 없어도 카메라 주변에 빈 알약을 유지합니다. 첫 활동이 생기면 빈 알약에서 펼쳐지고, 마지막 활동이 끝나면 다시 접힙니다. 클래식과 iMotion에서 동작하며 기본은 꺼짐입니다. @eohashzinXD님의 아이디어와 초기 구현을 현재 구조에 맞춰 재작성했습니다.
- 숨기기 동작 선택 (#34). 위로 스와이프해 숨기기를 꺼서 실수로 숨겨지는 일을 막을 수 있습니다. iMotion에서는 작은 알약을 길게 눌러 숨길 수도 있습니다. 펼친 카드를 접는 동작은 별개로 유지됩니다.
- 아래로 당겨 카드 열기. 메인·서브 알약을 아래로 스와이프하면 해당 카드가 열립니다. 스택 방식에서는 손가락을 따라 펼쳐지고, 튕기는 속도에 반응하며, 일찍 놓으면 다시 접힙니다. iMotion은 선택한 활동을 바로 엽니다. 기본은 켜짐이며 알림창을 내리는 이전 동작으로 바꿀 수 있습니다. 앱 안에서의 터치 처리도 개선했습니다.
- 전용 성능 페이지 (#33). 저성능 모드와 함께 음악 카드 정지, 파형 정지, 프레임 레이트 제한, 애니메이션 아이콘 정지를 각각 선택할 수 있습니다. 개별 제한은 기본 꺼짐입니다.
- 배경화면을 따르는 색상 (#35). **시스템 색상(Material You)**을 선택하면 일반 버튼과 진행 막대에 배경화면의 강조색이 적용됩니다. 저장한 사용자 색상은 유지하며 음악·앱 아이콘·경고 색상은 각자의 색을 사용합니다.
- 충전 상세 정보를 텍스트로 (#36, #37). 배터리 게이지 대신 현재 측정값과 활성화한 충전 통계를 텍스트로 표시하는 옵션입니다. @BonkerUnkilBonki님의 제안을 기존 구조와 번역 체계에 맞춰 재작성했습니다.
- 팝업 표시 시간. 짧은 시스템 팝업의 시간을 3·4·5·6초 중에서 선택합니다. 기본은 4초이며 원래 더 오래 표시되던 팝업은 그 시간을 유지합니다.
- 사용 중인 앱의 개인정보 표시. 현재 앱이 사용하는 카메라·마이크도 표시하는 옵션입니다. 기본은 꺼짐이며 상위 개인정보 표시 스위치도 켜져 있어야 합니다.
- 설정 전체 초기화. 고급 및 문제 해결에서 확인 후 색상·위치·앱 목록·사용자 규칙까지 초기화합니다.
- 검색 아래 신기능 추천 카드 9개. 이번 릴리즈의 옵션을 한 번에 하나씩 소개합니다. 다음 추천은 무작위로 고르고, 알아보기를 누르면 실제 설정으로 이동합니다. 기능을 자동으로 켜지 않습니다.
- 저장소 바로가기. 정보 페이지의 만든 사람 항목이 프로젝트 저장소로 연결됩니다.
수정
- 충전 팝업 최우선. 충전 연결 알림, 그 외 짧은 시스템 알림, 일반 알림 미리보기·상시 활동 순서로 표시합니다. 새 메시지가 충전이나 짧은 시스템 알림을 밀어내지 못하며, 배터리 값이 갱신돼도 충전의 우선순위와 원래 종료 시간을 유지합니다.
- 짧은 시스템 알림이 메인 알약에 표시됩니다. 모드 변경·빠른 설정 변경·잠금 해제·이어폰 연결 알림이 녹화·경기·통화 뒤에 밀리지 않습니다. iMotion에서 스와이프 도중이나 카드를 펼친 상태에도 대응하며 팝업들이 끝나면 이전 알약 줄로 돌아옵니다.
- 퀵패널이 닫힌 뒤 팝업 표시. 패널이 열려 있을 때 생긴 이벤트는 닫힐 때까지 기다렸다가 정해진 시간만큼 표시합니다. 30초 넘게 기다린 이벤트는 버리고, 패널 안에서 직접 바꾼 빠른 설정은 중복 안내하지 않습니다.
- 넓은 충전 알약. 삼성 기본 충전 효과를 끄면 넓은 충전 알약을 표시하고 다른 상단바 내용을 잠시 숨겼다가 복원합니다. 충전 상세 정보가 켜져 있어도 표시하며 이후 알약이 넓게 남지 않습니다.
- 전류가 0 mA로 나오는 기기 (#31). 지원되는 기기에서는 배터리 충전량 카운터로도 전류를 추정하며 실제 측정값을 우선합니다. 아직 알 수 없는 값은 거짓 0 대신 대시나 퍼센트로 표시합니다.
- 이어폰 하나에 연결 팝업 하나. 관련 이어버드 연결을 묶어 갤럭시 버즈3 프로에서 제보된 중복 연결 알림을 방지합니다.
- 수신 전화 상태와 버튼 수정. 벨이 울리는 동안 받기·거절을 표시하고 스피커는 전화를 받은 뒤에 표시합니다. 삼성 전화 화면을 나가면 아일랜드 통화 카드도 더 빨리 나타납니다.
- 삼성 전화 미니 팝업 닫기. 전화를 받거나 끊지 않고 삼성의 별도 미니 통화 창을 닫도록 요청합니다. 전화 앱을 LSPosed 스코프에 추가할 필요는 없습니다. 처음 잠깐 보일 수 있으며, 관리자 기기에서 빠르게 닫히는 것을 확인했습니다.
- 통화 아이콘 개선. 다른 애니메이션 아이콘과 어울리는 둥근 Lottie 받기·종료 아이콘을 적용했습니다. 성능 설정을 따르고 움직임이 끝나면 정지합니다. 버튼 색상과 동작은 유지합니...
Dynamic Island 0.1.15
Dynamic Island 0.1.15 · See it before you choose
Stable release · Changes since 0.1.14, including the 0.1.15 development build · English / 한국어
Settings with a live preview
- A real island preview is pinned above Appearance. It plays sample cards (a sound-mode event, charging, music and the flashlight) with the settings as they are saved right now. Tap it to move to the next sample.
- Animation, card material, pill outline, event icon size and flashlight controls are One UI radio lists. Tapping an option selects it at once and the preview plays the sample that shows it best. Options are tagged Default and Recommended (iMotion, frosted glass, automatic outline, expanding beam).
- Every section has a short description under its label. The separate Animation and Card corners pages are now part of Appearance, notification auto-classification is one page under Notifications & activities, System events is grouped (charging, sound and headphones, quick settings and flashlight, privacy), and Restart System UI and the language sit at the bottom of the home page.
- Search builds its index when it opens, shows results as you type, and handles the Enter key and any error instead of staying empty.
- The notification settings say plainly what they do. Notification cards is off (stock banners), only for notifications that pop up as a banner, or banners and silent ones. A notification only becomes a card if the system would have shown it as a banner, and the page now says so.
Swipe up, the way you mean it (iMotion)
- On the small pill, a swipe up hides it. A short slow drag does nothing; a quick flick hides it after a short move, and it leaves faster the faster it was thrown. Pull down near the camera hole to restore it.
- On an expanded card, a swipe up folds the card back into the pill and the island stays. The card follows your finger; when you let go it folds if the swipe went far enough, counting where your finger was heading, otherwise it springs back. A quick flick folds it at once and carries its speed into the fold.
New optional cards (all off by default)
- Hotspot card. While the hotspot is on: connected devices, data used since it was switched on, and how long it has been on.
- Unlock notice. A short card that says how the phone was unlocked: fingerprint, face, trusted device or PIN (only when a lock is set), with the method written on the right of the pill. It notes when System UI accepts a fingerprint or face and asks the keyguard monitor for a trusted device, instead of hooking biometric classes. New fingerprint, face and keypad icons.
- Keep the headset card while connected. A wired or USB headset keeps its card until you unplug it.
- Progress on notification cards. A notification with its own progress bar (a send, an upload) shows the bar on its card.
- Progress of the app you are using. Downloads and transfers of the app that is open get their card too.
- Progress of ordinary notifications. A notification that is not ongoing but carries a real progress bar becomes a progress card, and a card with a bar is shown instead of the live card of the same notification.
Notifications
- System UI's empty "INSIGNIFICANT" placeholder no longer opens a card each time you unlock the phone.
- An app that posts the same message again (Telegram does it on read, sync and edit) no longer gets a second card or a stock banner for three minutes. A new message in the conversation still gets its card.
Smoother, lighter and harder to knock out
- Frosted glass is much cheaper. The compact island used to capture and filter the whole display every second, about 110 MB and a second of CPU per frame, which kept System UI in the garbage collector on some phones (#22). It now samples at most 480 rows (the same look, a quarter of the cost), waits at least as long as the last capture took, and repeats the idle preparation every 3 seconds.
- The automatic widest pill is smaller. With the widest on automatic the pill is now at most 56% of the screen and 232 dp wide (it was 72% and 300 dp). A widest you set yourself is unchanged.
- Transition blur gets a setting: Automatic (default; paused on a phone that cannot keep up), Always on, or Off.
- The pill can no longer stay gone behind a shade that is not there. While the island thinks the shade is pulled it asks System UI where the shade really is every 1.5 seconds, and it forgets the shade when the screen goes off.
- A failing task can no longer take System UI down. Every handler of the module contains an exception, logs it and carries on. When the crash guard does switch the module off, the diagnostics now say why (guard state and the previous crash), and the module gets another try after an hour instead of twelve.
- The diagnostics report names a card that opened empty and why, caps long entries, and keeps the recent events when the report is long.
Translations and compatibility
- Unfinished translations are welcome. A language listed in
scripts/partial-languages.txtmay leave strings untranslated (English fills the rest); the check still rejects unknown keys, empty values and placeholder mismatches. Region tags such as pt-BR work. - Brazilian Portuguese (pt-BR) is registered as an unfinished language: 34 of 660 strings are translated (taken from a pull request by eohashzinXD) and English fills the rest. Finish it by editing
app/src/main/res/values-pt-rBR/strings.xml(seedocs/TRANSLATING.md). - Fixed built-in rules and generated translations not loading in the in-memory loaders of Nothing OS, and heads-up removal on Samsung, AOSP/Nothing and older signatures.
Validation and installation
- 203 default Android tests, the translation-tool tests, all six 660-string catalogs, release lint and APK assembly pass locally. Behaviour was checked in headless tests and renders, not on a real device; in particular the unlock notice's method, the hotspot data counters and the new swipe feel can differ between phones.
- The official release is built and signed by the repository workflow with the existing project release key. Install over 0.1.14; existing settings and defaults are kept. The new options are off until you turn them on.
- Restart System UI or reboot after installing the module update.
한국어
0.1.14 이후 변경사항과 0.1.15 개발 빌드를 모은 정식 릴리즈입니다.
실시간 미리보기가 있는 설정
- 모양 페이지 위에 실제 아일랜드 미리보기가 고정됩니다. 소리 모드 이벤트, 충전, 음악, 손전등 샘플이 지금 저장된 설정으로 재생되고, 탭하면 다음 샘플로 넘어갑니다.
- 애니메이션, 카드 재질, 알약 외곽선, 이벤트 아이콘 크기, 손전등 조작 방식이 One UI 라디오 목록입니다. 옵션을 누르면 바로 선택되고 그 설정이 가장 잘 보이는 샘플이 재생됩니다. 옵션에는 기본값과 추천(iMotion, 프로스티드 글라스, 자동 외곽선, 넓어지는 빛) 태그가 붙습니다.
- 모든 섹션 라벨 밑에 짧은 설명이 붙었습니다. 따로 있던 애니메이션·카드 모서리 페이지는 모양 안으로, 알림 자동 분류는 알림·활동 아래 한 페이지로, 시스템 이벤트는 충전·소리와 이어폰·빠른 설정과 손전등·개인정보로 나뉘었고, 시스템 UI 재시작과 언어는 홈 화면 맨 아래에 있습니다.
- 검색은 열 때 색인을 만들고, 입력하는 즉시 결과를 보여 주며, 엔터 키와 오류에도 빈 화면으로 남지 않습니다.
- 알림 설정이 하는 일을 분명하게 적었습니다. 알림 카드는 끔(기본 배너), 배너로 뜨는 알림만, 배너와 무음 알림 중에서 고릅니다. 시스템이 배너로 띄웠을 알림만 카드가 된다는 조건도 화면에 적었습니다.
위로 밀기, 의도한 대로 (iMotion)
- 작은 알약을 위로 밀면 숨겨집니다. 짧고 느린 드래그는 아무것도 안 하고, 빠르게 튕기면 짧게 움직여도 숨겨지며, 던진 속도가 빠를수록 빨리 사라집니다. 카메라 구멍 근처를 아래로 당기면 돌아옵니다.
- 펼친 카드를 위로 밀면 카드가 알약으로 접히고 아일랜드는 남습니다. 카드는 손가락을 따라오고, 손을 떼면 손가락이 가던 방향까지 계산해 충분히 갔으면 접히고 아니면 스프링으로 돌아옵니다. 빠르게 튕기면 바로 접히고 그 속도가 접히는 움직임에 이어집니다.
새로 생긴 선택 카드 (모두 기본값 꺼짐)
- 핫스팟 카드. 핫스팟이 켜져 있는 동안 연결된 기기, 켠 뒤 사용한 데이터, 켜진 시간을 보여 줍니다.
- 잠금 해제 알림. 폰을 어떻게 풀었는지(지문, 얼굴, 신뢰 기기, PIN) 짧은 카드로 알려 줍니다(잠금이 설정된 경우만). 알약 오른쪽에 방법이 적힙니다. 생체 인증 클래스를 후킹하지 않고, SystemUI가 지문·얼굴을 받아들인 순간을 기록하고 신뢰 기기는 키가드 모니터에 물어봅니다. 지문·얼굴·키패드 아이콘도 새로 만들었습니다.
- 연결된 동안 이어폰 카드 유지. 유선·USB 이어폰은 뽑을 때까지 카드가 남습니다.
- 알림 카드에 진행률 표시. 알림에 자체 진행 바가 있으면(전송, 업로드) 카드에도 보여 줍니다.
- 사용 중인 앱의 진행 표시. 지금 열려 있는 앱의 다운로드·전송도 카드로 보여 줍니다.
- 일반 알림의 진행 표시. 상시 실행이 아니어도 진행 바가 있는 알림이 진행 카드가 되고, 같은 알림에 라이브 카드와 바 카드가 둘 다 있으면 바가 있는 쪽이 보입니다.
알림
- SystemUI가 올리는 빈 "INSIGNIFICANT" 알림이 잠금을 풀 때마다 카드를 띄우던 문제를 막았습니다.
- 앱이 같은 메시지를 다시 올려도(텔레그램은 읽음·동기화·수정 때마다 올립니다) 3분 동안 두 번째 카드나 기본 배너가 뜨지 않습니다. 대화에 새 메시지가 오면 카드는 그대로 뜹니다.
더 부드럽고 가볍고 잘 안 꺼집니다
- 프로스티드 글라스 비용을 크게 줄였습니다. 컴팩트 상태의 아일랜드가 1초마다 화면 전체를 캡처해 CPU로 필터링해서(프레임당 약 110MB, 1초 안팎) 일부 폰에서 SystemUI가 가비지 컬렉션에 매달렸습니다(#22). 이제 최대 480행으로 샘플링하고(같은 모습, 비용은 4분의 1), 이전 캡처에 걸린 시간만큼은 쉬며, 평상시 준비 캡처는 3초마다 합니다.
- 자동일 때 알약의 최대 너비가 줄었습니다. 최대 너비를 자동에 두면 알약은 화면 폭의 56%, 232dp까지입니다(이전에는 72%, 300dp). 직접 정한 최대 너비는 그대로입니다.
- 전환 블러에 설정이 생겼습니다: 자동(기본값, 따라가지 못하는 폰에서는 멈춤), 항상 켬, 끔.
- 알림창이 없는데 알약이 사라진 채 남는 문제를 막았습니다. 알약이 알림창이 내려와 있다고 믿는 동안 1.5초마다 SystemUI에 실제 위치를 물어 바로잡고, 화면이 꺼지면 알림창 상태를 초기화합니다.
- 작업 하나가 실패해도 SystemUI를 죽이지 못합니다. 모듈의 모든 핸들러가 예외를 가두고 기록한 뒤 계속 돕니다. 크래시 가드가 모듈을 끄면 이유(가드 상태와 직전 크래시)를 진단에 올리고, 12시간이 아니라 1시간 뒤 다시 시도합니다.
- 진단 리포트가 빈 채로 열린 카드와 이유를 알려 주고, 긴 항목을 줄이며, 리포트가 길어도 최근 이벤트를 남깁니다.
번역과 호환성
- 불완전한 번역도 환영합니다.
scripts/partial-languages.txt에 적은 언어는 번역하지 않은 문자열을 비워 둘 수 있고(영어로 채워집니다), 없는 키·빈 값·자리표시자 불일치는 여전히 막습니다. pt-BR 같은 지역 코드도 됩니다. - **브라질 포르투갈어(pt-BR)**가 미완성 언어로 등록되었습니다: 660개 중 34개가 번역되어 있고(eohashzinXD의 풀 리퀘스트에서 가져왔습니다) 나머지는 영어로 채워집니다.
app/src/main/res/values-pt-rBR/strings.xml을 고쳐 완성할 수 있습니다(docs/TRANSLATING.md참고). - Nothing OS에서 내장 규칙과 생성된 번역이 불러와지지 않던 문제, Samsung·AOSP/Nothing·옛 시그니처의 헤드업 제거를 고쳤습니다.
검증과 설치
- 기본 Android 테스트 203개, 번역 도구 테스트, 여섯 언어 660개 문자열 카탈로그, 릴리스 린트, APK 조립이 로컬에서 통과합니다. 동작은 헤드리스 테스트와 렌더링으로 확인했고 실제 기기에서는 확인하지 못했습니다. 특히 잠금 해제 알림의 방법 판별, 핫스팟 데이터 카운터, 새 스와이프 느낌은 폰마다 다를 수 있습니다.
- 정식 릴리즈는 저장소 워크플로가 기존 프로젝트 릴리스 키로 빌드하고 서명합니다. 0.1.14 위에 그대로 설치하세요. 기존 설정과 기본값은 유지되고, 새 옵션은 직접 켜기 전까지 꺼져 있습니다.
- 모듈 업데이트 후 시스템 UI를 재시작하거나 재부팅하세요.
Dynamic Island 0.1.14
Dynamic Island 0.1.14 · iMotion
Stable release · Changes since 0.1.13, including the 0.1.14 development builds · English / 한국어
iMotion: a new optional presentation (#11)
- Choose Behavior → Animations → iMotion. The existing modern animation remains the default, and legacy animation remains available. Changing the selection applies live.
- Open one activity from its actual capsule or bubble position. The previous card folds while the next unfolds, with coordinated foreground blur and crossfades. Width, height and position use separate springs, and quick reversals continue from the current motion.
- Swipe sideways on the compact row or expanded card to browse every activity, including lists with more than four items. Expanded pages follow the finger; release distance and velocity decide whether to switch or return. The header row follows the same progress, with no fabricated bubble when only one other activity remains.
- Swipe upward to temporarily hide the entire iMotion island. Pull down near the camera hole to restore it. Sources remain intact, and source updates or automatic popups do not undo this choice.
- New and departing pills grow or shrink with a fade. Their bodies subtly follow a drag and spring back on release. Compact width follows its content and the user's limits; artwork, text and buttons keep their proportions.
- Existing card designs and controls are retained, including custom notification buttons and sliders. Selected activities remain stable during unrelated updates; native child controls retain ownership of their own drags.
Motion, material and visibility
- iMotion's compact glow follows moving surfaces instead of appearing after the transition. Music-card album colour develops with the opening surface. Existing music-session fade behaviour is preserved.
- Automatic contrast outlines remain continuous across compact/native-card handoffs. Background sampling stays registered during motion and temporary hiding, avoiding a stale outline appearing after the animation. Explicit Always/Never outline choices remain respected.
- Frosted iMotion geometry continuously changes from a circular/capsule perimeter to the expanded panel. Lighting, clipping and outlines share the same shape, fixing the brief squircle at the end of folding.
- When the quick panel opens, both iMotion pills gather toward the camera hole and fade together. Intersecting internal outlines are hidden instead of leaving a secondary dot at its previous location.
- Sleep/AOD transitions begin before the lock-screen handoff: the island folds away, stops background work once hidden, and returns through the normal unlocked reveal. Rapid sleep cancellation and devices without a secure lock are handled.
- Fixed shared vector-icon opacity affecting another occurrence, which could make an icon appear later than its text.
Settings search and feature suggestions
- Settings search ranks translated names and descriptions, related expressions, Korean initials and bounded typo matches. Results open and locate the existing setting.
- A new card below search introduces one feature at a time: iMotion, hide/restore gestures, expanding-beam flashlight, settings search or experimental frosted material.
- Suggestions are random without replacement, do not immediately repeat across cycles, and stay stable across ordinary redraws or navigation. Next suggestion advances manually; Explore opens the setting without enabling it.
- Closing the card hides recommendations for that exact version. About → What's new restores them, and a later release has its own history.
- All new settings and recommendations are translated into English, Korean, Japanese, Simplified Chinese, Russian and Turkish.
Optional expanding-beam flashlight (#4)
- Choose System events → Flashlight controls → Expanding beam. Classic controls remain the default.
- Tap the flashlight graphic for power; drag the curved control for supported hardware brightness levels. Soft scattering, subtle colour separation and a stronger bloom near maximum travel stay inside the card. The emitting aperture stays narrow as the far end opens.
- The thumb follows a resisted vertical drag and returns to centre. Horizontal brightness control remains independent.
- Power transitions step through supported brightness levels over approximately 240 ms without overwriting the chosen brightness. Turning a level-4 light off and on restores level 4; direct slider changes keep the existing save behaviour.
- After switching off with the card button, expanded controls remain for five seconds for quick reactivation. Reversals, external changes and camera unavailability cancel obsolete writes. Single-level torches retain binary power with a visual fade.
Frosted material and stability
- Classic remains the default material. Frosted is an opt-in experiment with captured-backdrop blur, curved panel lighting and album colours; capture compatibility and appearance can vary by device. Shade-card clipping and material transitions have also been revised.
- Reuse compatible notification cards instead of repeatedly restoring and reinstalling their native layouts. Avoid nested replacement while Android reapplies notification content. Settings/configuration changes still rebuild when needed.
- Keep a notification popup focused on its own source during unrelated activity updates. Closing an older popup no longer dismisses a newer replacement.
- Stop unnecessary compact-pill work while the quick panel hides it. Limit retained native iMotion card surfaces during rapid switching and release completed rendering resources.
- WhatsApp/WhatsApp Business timers now wait for explicit notification connection evidence rather than ringing/dialling timestamps. Other phone-call timers retain their behaviour. This and the long-session slowdown work remain candidate fixes awaiting confirmation from affected devices.
Validation and installation
- 155 default Android tests, two translation-tool tests, all six 587/587-string catalogs, release lint and APK assembly pass locally. iMotion gesture/layout changes incorporate maintainer feedback from test builds; automated/native renderer checks do not establish identical behaviour on every OEM device.
- The official release is built and signed by the repository workflow with the existing project release key. Existing official installations can update normally. A separately signed local test APK must be uninstalled before installing the official build; preserve any settings you need first.
- Restart SystemUI or reboot after installing the module update. Existing animation/material defaults are preserved; select iMotion or Frosted explicitly to try them.
한국어
0.1.13 이후 개발 빌드와 현재 iMotion 개선을 모은 정식 릴리즈입니다.
새로운 선택형 애니메이션, iMotion (#11)
- 동작 → 애니메이션 → iMotion에서 선택합니다. 기본값은 기존 애니메이션이며 이전 방식도 유지합니다. 설정 변경은 즉시 적용합니다.
- 누른 알약·버블의 실제 위치에서 활동 하나를 펼칩니다. 기존 카드가 접히는 동시에 다음 카드가 펼쳐지고, 내부 요소는 블러와 교차 페이드로 전환합니다. 너비·높이·위치에 개별 탄성을 적용하고 빠르게 반대로 조작해도 현재 움직임을 이어갑니다.
- 축소 알약과 펼쳐진 카드에서 좌우로 밀어 4개를 넘는 활동도 모두 전환합니다. 펼친 페이지는 손가락을 따라 움직이고 이동 거리·속도로 전환 또는 복귀를 결정합니다. 상단 알약도 같은 진행률로 전환하며, 다른 활동이 하나만 남았을 때 불필요한 버블을 만들지 않습니다.
- 위로 밀어 전체 숨김, 펀치홀 주변을 아래로 당겨 다시 표시합니다. 활동 정보는 유지하고 알림 갱신·자동 팝업이 숨김을 임의로 해제하지 않습니다.
- 새 알약과 종료된 알약은 크기·투명도가 함께 전환됩니다. 몸체도 드래그를 조금 따라간 뒤 복귀합니다. 축소 너비는 내용과 사용자 설정에 맞추고 이미지·글자·버튼의 비율은 유지합니다.
- 기존 카드 내부 디자인과 조작부를 유지합니다. 앱 고유 알림의 버튼·슬라이더가 제스처와 공존하며, 관련 없는 갱신으로 선택한 활동이 바뀌지 않도록 처리합니다.
움직임·재질·표시 개선
- 글로우가 전환 이후 뒤늦게 나타나지 않고 움직이는 알약을 따라갑니다. 음악 카드의 앨범 색도 펼침 과정부터 반영하며 기존 음악 세션 종료 페이드는 유지합니다.
- 자동 윤곽선을 축소·확장 표면 사이에서 연속적으로 표시합니다. 움직임·수동 숨김 중에도 배경 밝기 감지를 유지해 애니메이션 이후 오래된 윤곽선이 나타나던 문제를 수정했습니다. 항상 표시·숨김 선택도 존중합니다.
- 프로스티드 iMotion의 원·캡슐 모양이 확장 패널의 굴곡으로 연속 변화합니다. 조명·잘림·윤곽선을 같은 모양으로 맞춰 접힘 마지막에 잠깐 스퀘어클이 되던 현상을 수정했습니다.
- 퀵패널을 열면 두 알약이 펀치홀 쪽으로 함께 모이며 사라집니다. 서브 알약이 제자리에서 점으로 줄어들던 동작과 겹친 내부 테두리를 개선했습니다.
- 화면 꺼짐·AOD 진입 전에 알약이 접히며 사라지고, 완전히 숨겨지면 배경 작업을 멈춥니다. 잠금 해제 후 복귀, 빠른 꺼짐 취소와 보안 잠금이 없는 기기도 고려했습니다.
- 공유 벡터 아이콘의 투명도가 다른 표시까지 바꿔 아이콘이 글자보다 늦게 나타나던 문제를 수정했습니다.
설정 검색과 신기능 추천
- 번역된 이름·설명, 관련 표현, 한글 초성과 제한된 오타 보정을 이용해 설정을 검색합니다. 결과를 누르면 기존 설정으로 이동해 해당 항목을 표시합니다.
- 검색 아래에서 iMotion / 밀어서 숨기고 당겨서 다시 보기 / 넓어지는 손전등 / 설정 검색 / 실험적 프로스티드 재질 중 한 가지씩 추천합니다.
- 후보를 모두 보기 전에는 중복하지 않고, 다음 순환에서도 직전 항목을 바로 반복하지 않습니다. 화면 갱신·설정 복귀 시 현재 추천을 유지합니다. ‘다음 추천’으로 바꾸고 ‘살펴보기’로 설정에 이동하며 자동으로 기능을 켜지 않습니다.
- 닫으면 현재 버전의 추천을 숨깁니다. 정보 → 새로운 기능에서 다시 표시할 수 있고 다음 버전은 별도 기록을 사용합니다.
- 새 설정과 추천 문구를 한국어·영어·일본어·중국어 간체·러시아어·터키어에 반영했습니다.
선택형 넓어지는 손전등 (#4)
- 시스템 이벤트 → 손전등 조작 방식 → 넓어지는 빛에서 선택합니다. 기본값은 기존 슬라이더입니다.
- 손전등 그림을 눌러 켜고 끄며 곡선 막대로 실제 지원 밝기를 조절합니다. 부드러운 산란·옅은 색 분리·최대 부근의 넓어짐을 카드 안에 표현합니다. 나오는 부분은 좁게 유지하고 먼 끝부분을 넓힙니다.
- 막대는 상하 드래그를 저항감 있게 따라간 뒤 중앙으로 복귀합니다. 상하 움직임은 밝기를 변경하지 않습니다.
- 전원 전환은 약 240ms 동안 실제 밝기 단계를 부드럽게 바꾸며 선택 밝기를 덮어쓰지 않습니다. 4단계에서 껐다 다시 켜면 4단계로 복원하고, 슬라이더로 직접 고른 값은 기존처럼 저장합니다.
- 카드 버튼으로 끈 뒤 조작부를 5초간 유지합니다. 반대 조작·외부 변경·카메라 사용 불가 시 이전 예약을 취소하며, 밝기 단계가 하나인 기기는 전원 조작과 화면 페이드를 사용합니다.
프로스티드 재질과 안정성
- 기본 재질은 클래식입니다. 프로스티드는 배경 캡처 블러·패널 굴곡 조명·앨범 색을 사용하는 선택형 실험 기능이며 기기별 캡처 호환성과 표현 차이가 있을 수 있습니다. 알림창 카드 잘림과 재질 전환도 개선했습니다.
- 재사용 가능한 알림 카드는 원본 레이아웃을 반복 복원·재설치하지 않고 내용만 갱신합니다. Android의 알림 재적용 도중 중복 교체를 피하며 설정·구성 변경 시 필요한 재구성은 유지합니다.
- 자동 팝업을 해당 알림에 고정하고, 이전 팝업의 종료 처리가 새 팝업까지 닫지 않도록 수정했습니다.
- 퀵패널에 가려진 축소 알약의 불필요한 작업을 줄이고 빠른 iMotion 전환 중 유지하는 네이티브 카드 표면 수를 제한하며 종료된 자원을 정리합니다.
- WhatsApp·WhatsApp Business의 통화 시간은 벨소리·발신 대기 시각 대신 명시적인 연결 근거를 기다립니다. 일반 전화 타이머 동작은 유지합니다. 이 수정과 장시간 사용 후 느려짐에 대한 수정은 제보 기기의 추가 확인이 필요한 후보 수정입니다.
검증과 설치
- 로컬 기본 Android 테스트 155개, 번역 도구 테스트 2개, 지원 언어 6개 각 587/587개 문자열, 릴리즈 린트와 APK 빌드를 통과했습니다. iMotion 조정에는 테스트 빌드의 사용자 피드백을 반영했으며 모든 제조사 기기의 동일 동작을 확인한 것은 아닙니다.
- 공식 APK는 저장소 배포 워크플로에서 기존 프로젝트 키로 서명합니다. 기존 공식판은 업데이트할 수 있습니다. 별도 서명한 로컬 테스트 APK를 설치했다면 필요한 설정을 보존하고 삭제한 뒤 공식판을 설치하세요.
- 설치 후 SystemUI 재시작 또는 재부팅이 필요합니다. 기존 애니메이션·재질 기본값은 유지하며 iMotion·프로스티드는 직접 선택해 사용합니다.
Dynamic Island 0.1.13
Dynamic Island 0.1.13
Stable release · Changes since 0.1.12, including 0.1.13-dev1, dev2 and the subsequent tested fixes · English / 한국어
This release adds music-reactive glow, clearer settings, optional charging and headset cards, a voice-recording waveform, and more consistent card layouts. It also fixes the live-notification long-press crash reported in #16.
Music and glow
- The main pill and additional bubble share the active music session's album colours and sound response, including when the music card itself is hidden. Glow is on by default for music sessions only; saved choices are preserved.
- Brightness and dynamic strength have separate 0–100% controls, defaulting to 45% and 50%. Use theme colours, an individual preset/HSV/HEX colour, or album matching.
- Pausing makes the glow faint and settles its motion. Ending a music session fades its last colours out over 1.2 seconds. A new session can smoothly interrupt the fade.
- Improve media foreground detection so opening the player does not briefly show a duplicate island (#18). Voice-recording sessions remain excluded from music selection.
Cards and recording
- Circular battery gauges: Keep the percentage in one place, show charging metrics and optional statistics separately, and remove duplicate progress information. Device cards separate the device name, connection status and battery gauge.
- More useful compact content: Battery percentage, charging power, device identity and toggle state use their own spaces. Layouts respect the camera cutout and available width.
- Consistent card corners: Expanded cards use the original shared 28dp radius. Appearance → Card corners optionally enables a 0–48dp radius with a live preview; switching it off restores 28dp. Compact pills keep their original shape.
- Timers preserve their full time readout, size to the text and move controls below it when needed. Individual action buttons retain their original icons and colours.
- Experimental voice waveform (#12): Enable Advanced & troubleshooting → Concurrent microphone waveform (experimental) for Samsung Voice Recorder. It shows actual input levels in compact and expanded views without adding the recorder app to LSPosed scope. It is off by default; device audio policies can reject concurrent input or affect recording, so turn it off if needed. Low-performance mode disables it. No audio is stored or transmitted.
- The recording waveform keeps roughly three seconds of history and moves on display frames between microphone reads. Its timing uses one clock domain, so deep sleep no longer breaks interpolation. Pause/stop, hidden views, stale input and blocked input stop continuous work.
- Preserve screen-recording time across notification updates and rolling timestamps, anchoring it to the recording session (#17).
View 36 current card examples · Illustrative content; optional features are included. Device fonts, native backdrop blur and app-provided layouts can differ.
Settings and device options
- Reorganised settings pages, clearer notification modes, searchable app selection with Save/Cancel, separate rule tools and Galaxy-style switches. Position, size and camera calibration reset independently; navigation preserves scroll position.
- Optional live charging card and statistics: Current, estimated power, temperature and charge level, plus measured screen-on/off time and estimated net charge changes. Both are off by default. Collection follows the switches; screen-off polling pauses. Power and charge splits are estimates, and unknown readings stay unknown.
- Optional wired/USB headset alerts, off by default, announce real connection changes without announcing an already-connected device when enabled.
- Samsung battery charging effect: Hidden by default, with an opt-in switch under Notifications → System events (#15). Ordinary battery information, privacy indicators, charging sounds and warnings remain available. The corrected effect suppression was confirmed on the maintainer's device.
- Portrait full-screen visibility, off by default, can keep active content visible when an app hides the status bar; lock-screen/AOD and landscape rules still apply (#14).
- Low-performance mode, off by default, uses simpler rendering, stops audio analysis and limits continuous motion to 30fps while touch/transitions can use up to 60fps. Individual preferences are retained.
- Outline: Automatic, Always and None; automatic sampling stops for hidden windows and rejects stale results. Camera text clearance: Additional 0–16dp, default 0dp.
- Experimental notification recovery, off by default, selects the alternate One UI 8 notification handling only when enabled. App exclusions and notification/verification-code settings continue to apply.
System UI fixes and validation
- Live-notification long-press crash (#16): Samsung's action-button hit test dereferenced an expanded child removed by our replacement card. During that synchronous check, it now searches the displayed card; the reference is restored afterward. The normal notification menu, snooze and bubble checks are preserved. This was identified from the supplied One UI 8.5 logs, checked against SystemUI code and reproduced in a focused test; confirmation on the reporting phone is still welcome.
- System typography (#20): Follow Samsung's system family and FlipFont choices, including cached typeface updates, and remeasure visible content after font changes.
- 102 default Android tests, translation-tool tests and the APK build pass. Visual-only captures remain opt-in. The current preview covers all nine card body implementations through 36 examples.
- 515/515 strings in each supported language: English, Korean, Japanese, Simplified Chinese, Russian and Turkish. All six READMEs describe the new release; English remains the translation source.
- Headless validation does not replace testing microphone policy, sensor readings or GPU effects on each phone. One UI 7 and Nothing OS support remains unconfirmed on a real device.
Installation
The official APK uses the project's existing release signing key and can update previous official releases. A separately signed local test APK must be uninstalled before installing the official build; save any settings you need first. Restart SystemUI or reboot after installation. Use Advanced & troubleshooting → Diagnostics when reporting a problem.
한국어
정식 0.1.12 이후 변경사항을 모은 0.1.13 정식판입니다. 0.1.13-dev1·dev2와 이후 테스트한 수정사항을 포함합니다.
음악과 글로우
- 메인 알약과 추가 버블이 같은 음악 세션의 앨범 색과 소리 반응을 공유합니다. 음악 카드 자체가 숨겨져 있어도 적용하며 기본 켜짐·음악 세션 전용입니다. 기존에 저장한 선택은 유지합니다.
- 밝기와 다이내믹 효과 강도를 **0–100%**로 각각 조절합니다. 기본값은 **45%·50%**입니다. 테마색, 개별 프리셋·HSV·HEX 색상과 앨범 연동을 지원합니다.
- 일시정지하면 빛이 약해지고 움직임도 잦아듭니다. 세션이 끝나면 마지막 앨범 색을 유지하며 1.2초 동안 사라지고, 새 세션이 생기면 부드럽게 이어집니다.
- 플레이어를 열 때 아일랜드가 잠깐 중복 표시되는 문제를 개선했습니다(#18). 음성 녹음 세션은 음악에서 계속 제외합니다.
카드와 녹음
- 원형 배터리 게이지: 퍼센트를 중복하지 않고 충전 정보와 통계를 구분합니다. 기기 카드도 기기 이름·연결 상태·배터리 게이지를 나눠 표시합니다.
- 축소 정보 개선: 배터리 퍼센트·충전 전력·기기 이름·설정 상태를 각각의 공간에 표시하고, 카메라 구멍과 화면 너비를 고려합니다.
- 카드 곡률: 펼친 카드는 기존 공통 28dp를 사용합니다. 모양 → 카드 모서리에서 직접 조절을 켜면 0–48dp로 미리 보며 변경할 수 있고, 끄면 28dp로 돌아갑니다. 축소 알약 모양은 유지합니다.
- 타이머는 시간 전체를 표시하고 글자 크기와 여유 공간에 맞춰 버튼을 아래로 배치합니다. 기존 개별 버튼의 아이콘과 원래 색상을 유지합니다.
- 실험적 음성 녹음 파형(#12): **고급 및 문제 해결 → 동시 마이크 파형 (실험적)**에서 켭니다. 삼성 음성 녹음의 실제 입력 음량을 축소·확장 화면에 표시하며 녹음기를 LSPosed 스코프에 추가하지 않아도 됩니다. 기본 꺼짐입니다. 기기의 오디오 정책에 따라 동시 입력이 차단되거나 녹음에 영향이 있을 수 있으므로 문제가 생기면 끄세요. 저사양 모드에서는 사용하지 않으며 오디오를 저장하거나 전송하지 않습니다.
- 녹음 파형은 약 3초의 이력을 유지하며 입력 사이에도 화면 프레임에 맞춰 움직입니다. 입력과 표시의 시간 기준을 통일해 깊은 절전 후 보간이 끊기는 문제도 수정했습니다. 일시정지·종료, 숨김, 입력 중단·차단 시 연속 작업을 멈춥니다.
- 화면 녹화 시간을 세션 시작에 고정해 알림 갱신과 시스템 타임스탬프 변경으로 초기화되는 문제를 수정했습니다(#17).
현재 카드 36가지 예시 보기 · 내용은 예시이며 선택 기능도 포함합니다. 실제 기기의 폰트·배경 블러·앱 자체 레이아웃은 다를 수 있습니다.
설정과 기기 옵션
- 설정 페이지와 알림 표시 방식을 정리하고, 저장·취소가 있는 앱 검색과 규칙 도구, 갤럭시 스타일 스위치를 적용했습니다. 위치·크기·카메라 보정은 따로 초기화하고 스크롤 위치를 보존합니다.
- 선택형 충전 상세 카드·충전 통계: 전류·추정 전력·온도·잔량과 화면 켜짐/꺼짐 시간·추정 순충전 변화를 표시합니다. 둘 다 기본 꺼짐이며, 옵션에 맞춰 수집하고 화면이 꺼지면 폴링을 멈춥니다. 전력·상태별 충전량은 추정치이며 읽지 못한 값은 알 수 없음으로 둡니다.
- 유선·USB 이어폰 알림: 기본 꺼짐이며 실제 연결 변화를 알려줍니다. 옵션을 켰을 때 이미 연결된 기기를 새 연결로 알리지 않습니다.
- 삼성 배터리 아이콘 충전 효과: 기본 숨김이며 알림 → 시스템 이벤트에서 다시 켤 수 있습니다(#15). 일반 배터리 정보·개인정보 표시·충전 소리·경고는 유지합니다. 수정한 효과 차단은 관리자의 실제 기기에서 확인했습니다.
- 세로 전체 화면 표시: 기본 꺼짐이며 앱이 상태바를 숨겨도 사용 중인 콘텐츠를 표시할 수 있습니다. 잠금 화면·AOD·가로 화면 규칙은 유지합니다(#14).
- 저사양 모드: 기본 꺼짐입니다. 렌더링을 간소화하고 오디오 분석을 멈추며, 연속 모션은 30fps, 터치·전환은 최대 60fps로 제한합니다. 개별 설정은 보존합니다.
- 테두리: 자동·항상·없음. 숨겨진 창에서는 배경 샘플링을 멈추고 오래된 결과를 무시합니다. 카메라 옆 추가 여백: 0–16dp, 기본 0dp입니다.
- 실험적 알림 복구: 기본 꺼짐이며 켰을 때만 대체 One UI 8 알림 처리 방식을 사용합니다. 앱 제외·알림 표시·인증번호 설정은 계속 적용합니다.
시스템 UI 수정과 검증
- 라이브 알림 길게 누르기 크래시(#16): 삼성 버튼 판별 코드가 교체 카드에서 비워 둔 펼침 뷰를 읽던 문제였습니다. 해당 판별 중에만 표시 중인 카드를 참조하고 이후 되돌립니다. 일반 메뉴와 다시 알림·버블 판정도 유지합니다. 제공된 One UI 8.5 로그와 SystemUI 코드를 분석하고 재현 테스...
Dynamic Island 0.1.12
Dynamic Island 0.1.12 · Fluid transitions, six languages and notification controls
English · 한국어
This stable release brings together the 0.1.12 development builds: smoother island transitions, six-language support, more notification controls and fixes for media cards and icons.
Motion and appearance
- Continuous expansion and collapse. Compact and expanded content crossfade together, avoiding an empty black shape between the two layouts. Reversing a transition continues from the current state; reopening a closing card reuses it instead of creating a duplicate.
- Material-style foreground blur. Text, icons and controls soften as they leave and come into focus as they appear. The returning compact UI resolves more slowly, so it stays soft through the later part of the fold. This uses Android GPU blur; the black body and outline stay separate from the effect.
- A solid black compact body. The returning pill stays opaque, and the outline no longer fills its interior with a pale grey patch during a fade.
- Smoother notification-shade return. The pill keeps its small spring bounce. A fast pull-down no longer abruptly covers the exit animation, and touch/coverage regions follow the visible shape.
- Custom colours. A new appearance page offers six presets, a preview, HSV/hex editing and a reset. Custom colours are off by default. Media artwork, destructive actions and app-defined action colours retain their own priorities.
- Larger event icons. Event-card pictograms default to 40dp; the small-icon option restores 22dp. Hidden icons leave no empty column. Battery/charging icons use a level-based vector design and are hidden by default; other animated status pictograms remain available.
Notifications and cards
- Optional foreground-app notifications and automatic opening of newly arriving activity/progress/recording cards. Both are off by default. Auto-open skips the existing backlog and waits while another card or reply is open.
- An experimental notification recovery switch groups broader progress, promoted-notification, Now Bar, alternate chip and recorder detection. It is off by default and intended for cases where normal detection fails.
- New messages can replace an open card while active replies and the pulled notification shade remain protected. Group summaries are considered without duplicating an eligible child notification.
- Stock heads-up removal is restricted to the matching notification actually taken over by the island. Original shade rows are restored correctly when cards or shade state change.
- Up to four progress-card apps are supported, including otherwise unrepresented ProgressStyle installer progress. Time digits keep a fixed width and fit their available space.
- Charging cards show “Charging” once, with the percentage and charging type below it. The Music player in the shade switch lets you retain the stock player in the shade and on the lock screen.
Music, recording and icon fixes
- Voice Recorder no longer appears as a duplicate music player while recording or paused (#1). Its recording controls stay available; saved-file playback can still use the music player.
- Custom media actions keep their size and aspect ratio, including favorite buttons in the island and shade player (#2).
- Detailed app/navigation logos retain their internal artwork, addressing the white-disc icons reported for NAVER Maps (#8).
- Album-coloured music waveforms use a continuous gradient and smoothly change palette when artwork changes. Grayscale covers remain neutral, and paused players finish their colour transition.
Languages and credits
- Settings, module-owned island text and built-in stage labels are available in English, Korean, Japanese, Simplified Chinese, Russian and Turkish. Text supplied by another app remains as that app provided it.
- English is the translation source. All six languages share Android string resources, with a translation guide, new-language templates and automated completeness/format checks. Built-in notification-content detection still uses the existing English/Korean rules.
- Added @UnkilBonki (Telegram) to the in-app credits for bug fixes and assistance. Diagnostics now give more detail about notification, progress, chip and recorder detection.
Installation and verification
- The downloadable APK is signed with the project's normal release key and updates previous official releases. If you installed a separately signed local test APK, uninstall that test APK before installing this release; app settings may need to be configured again. Restart SystemUI or reboot afterwards.
- Local validation: 355 Android unit/render tests, all six translation catalogs and two translation-tool tests pass. The release workflow repeats the Android tests before signing. Device feedback confirmed the recording duplication fix and the revised motion; testing does not cover every device or locale.
- Known open bugs: live-notification long-press crashes on some builds (#16), screen-recording time resets (#17), and Spotify's brief first-launch notification (#18). These are not marked fixed by this release.
한국어
0.1.12 데브 빌드의 변경을 모은 정식 버전입니다. 아일랜드 전환을 부드럽게 다듬고, 6개 언어와 알림 옵션을 추가하며, 미디어 카드와 아이콘 문제를 수정했습니다.
애니메이션과 모양
- 펼침·접힘을 연속적으로 전환합니다. 작은 UI와 펼쳐진 UI가 함께 교차 전환되어 중간에 검은 몸체만 비어 보이는 구간을 줄입니다. 도중에 방향을 바꾸면 현재 상태에서 이어지고, 접는 카드를 다시 펼칠 때도 같은 카드를 사용합니다.
- 내부 요소에 머티리얼 스타일 블러를 적용합니다. 글자·아이콘·버튼이 사라질 때 흐려지고 나타날 때 또렷해집니다. 작은 UI의 블러는 더 늦게 걷혀 접힘 후반까지 부드럽게 보입니다. 안드로이드 GPU 블러를 사용하며 검은 본체와 테두리는 따로 유지합니다.
- 축소 본체는 불투명한 검은색을 유지합니다. 테두리가 내부까지 흰색으로 채워져 회색 면처럼 보이던 문제도 수정했습니다.
- 알림창에서 부드럽게 돌아옵니다. 작은 스프링 반동을 유지하며, 알림창을 빠르게 내려도 사라지는 도중 갑자기 가려지지 않습니다. 터치·가림 영역도 보이는 모양을 따릅니다.
- 색상 설정을 추가했습니다. 프리셋 6개, 미리보기, HSV·HEX 조정과 초기화를 제공합니다. 기본 꺼짐이며 음악 이미지·위험 동작·앱이 지정한 버튼 색상은 우선합니다.
- 이벤트 아이콘이 커집니다. 기본 40dp이며 작은 아이콘 옵션으로 22dp를 사용할 수 있습니다. 숨긴 아이콘은 빈 공간을 남기지 않습니다. 배터리·충전 아이콘은 충전량을 반영하는 벡터 디자인을 사용하고 기본으로 숨깁니다. 다른 상태 아이콘의 애니메이션은 유지합니다.
알림과 카드
- 사용 중인 앱의 알림 표시, 새 활동·진행 상황·녹화 카드 자동 펼침 옵션을 추가했습니다. 둘 다 기본 꺼짐입니다. 자동 펼침은 기존 알림을 한꺼번에 열지 않고 다른 카드·답장 입력을 방해하지 않습니다.
- 정상 감지가 잘되지 않을 때 사용할 실험적 알림 복구 옵션을 추가했습니다. 진행 알림·승격 알림·Now Bar·대체 칩·녹화 감지를 묶었으며 기본 꺼짐입니다.
- 카드가 열려 있어도 새 메시지를 표시하며, 답장 입력과 펼쳐진 알림창은 보호합니다. 그룹 요약은 표시할 자식 알림과 중복되지 않게 처리합니다.
- 기본 팝업 제거는 아일랜드가 실제로 대신 표시한 동일 알림에만 적용합니다. 카드·알림창 상태가 바뀌면 원래 알림 행도 복원합니다.
- 최대 4개 앱의 진행 카드를 표시하고, 다른 곳에서 표시되지 않는 ProgressStyle 설치 진행도 처리합니다. 시간 숫자는 고정 폭으로 배치하고 공간에 맞춥니다.
- 충전 카드의 “충전 중” 중복 문구를 없앴습니다. 알림창의 음악 플레이어 옵션을 끄면 알림창과 잠금화면에서 기본 음악 플레이어를 사용할 수 있습니다.
음악·녹음·아이콘 수정
- 음성 녹음 중 음악 플레이어가 중복 표시되던 문제를 수정했습니다(#1). 일시정지 중에도 구분하며 녹음 조작과 저장 파일 재생은 유지합니다.
- 즐겨찾기 등 미디어 커스텀 버튼의 크기와 가로세로 비율을 수정했습니다(#2).
- 지도·앱 로고 내부의 무늬와 명암을 유지해 네이버 지도 아이콘이 흰 원처럼 보이던 문제를 수정했습니다(#8).
- 음악 파형에 앨범 색상의 그라데이션을 적용했습니다. 앨범이 바뀌면 색이 부드럽게 전환되고 흑백 앨범은 중립색을 유지합니다. 일시정지 상태에서도 진행 중인 색 전환을 마칩니다.
언어와 크레딧
- 설정·모듈 문구·내장 단계 이름을 영어·한국어·일본어·중국어 간체·러시아어·터키어로 제공합니다. 다른 앱이 보낸 원문은 그대로 표시합니다.
- 영어를 원본으로 하여 공통 문자열 구조로 정리했습니다. 번역 가이드, 새 언어 템플릿과 누락·서식 검사도 추가했습니다. 내장 알림 내용 감지는 기존 영어·한국어 규칙을 사용합니다.
- **@UnkilBonki (Telegram)**를 오류 수정 및 도움 크레딧에 추가했습니다. 알림·진행 카드·칩·녹화 진단 정보도 보강했습니다.
설치와 검증
- APK는 기존 배포 키로 서명하므로 이전 공식 릴리스에서 업데이트할 수 있습니다. 별도 키로 서명한 로컬 테스트 APK를 설치했다면 해당 APK를 삭제한 뒤 설치해야 하며, 앱 설정을 다시 해야 할 수 있습니다. 설치 후 SystemUI를 재시작하거나 재부팅하세요.
- 로컬 안드로이드 단위·렌더 테스트 355개, 6개 언어 문자열 검사와 번역 도구 테스트 2개가 통과했습니다. 배포 워크플로에서도 안드로이드 테스트 후 서명합니다. 녹음 중복과 애니메이션은 기기 피드백을 반영했으며, 모든 기기·언어를 실기기로 검증한 것은 아닙니다.
- 라이브 알림 길게 누르기 충돌(#16), 화면 녹화 시간 초기화(#17), Spotify 첫 실행 시 짧은 알림(#18)은 아직 열린 버그입니다.
Dynamic Island 0.1.11
Dynamic Island 0.1.11 · Smoother animations, Google sports and the flashlight
English · 한국어
Smoother opening, closing and shade animations, readable Google sports cards, one look for all live cards, and a flashlight card that works on more phones. Everything here was tried on real phones in the test builds 0.1.11-dev2 to dev14.
What's new
- The island goes and comes back smoothly with the notification shade. As soon as you pull the shade down, a small dot next to the pill merges into it, the content shrinks and fades, the black body shrinks from the pill into a dot and the dot fades away. When the shade has nearly closed it all happens the other way round. It takes the same few frames whatever the speed of the shade, so there is no vanishing with a tick any more.
- Closing the cards is clean. While several cards close one after the other there is one pill instead of two, the card turns from grey glass to black gradually instead of flashing grey, the blur no longer drops out for a frame (also when another card slips into the hole), a card entering between others no longer flashes white, and the pill takes over from a folding card only after it has grown back to the card's size, so there is no pill inside a pill.
- The blur no longer sticks out of the card corners. It is rebuilt once the card's corner radius has settled, so it follows the card's shape.
- All live cards look alike. Progress-style live notifications (ride, delivery, ...) now use the same card as the other live cards: app name and time on top, the icon at the right, the bar under the text with its segments and marker. The old layout is kept only for message popups.
- Google sports cards are readable. The text of cards that show an app's own layout is judged by contrast against the dark card: colours that already stand out are kept, only hard-to-read ones are lightened (hue and transparency unchanged). The layout is also loaded with a dark theme, like System UI's shade does. The same rule is used for the shade cards.
- Google sports matches show as separate cards in the shade. System UI folded them into a grey stack when the Google app also posted a group summary (a "Sports from Google" heading). A group summary that is marked as a live notification is now left out of the shade list, so the matches come out as separate cards. The notification itself is not cancelled. (The idea and the fix come from the author of the original module.)
- The flashlight card works on more phones. Every camera with a flash is watched (a camera that cannot be read is skipped), and the card follows whichever one is switched on. A phone whose flashlight has a single brightness level gets the card as well, with On and a Turn off button instead of the slider (from a reporter's own fix). Phones whose System UI posts no live notification for the flashlight get it too, since the torch is read from the camera itself.
- No double flashlight. System UI's own flashlight notification is recognised on other builds of System UI too (by its tag or title), so it does not show next to the card, also when All notifications in the island is on.
- New switch: Flashlight card (on by default). Turn it off to get the plain "flashlight on" popup instead.
Install and notes
- Install over 0.1.10 or any 0.1.11 test build; it is signed with the same key. Restart System UI afterwards.
- If something looks wrong, send a screen recording together with the report of Tools → Diagnostics.
한국어
알림창을 열고 닫을 때와 카드가 열리고 닫힐 때의 애니메이션이 더 부드러워지고, 구글 스포츠 카드의 글자가 읽히며, 모든 라이브 카드가 같은 모양이 되고, 손전등 카드가 더 많은 폰에서 나옵니다. 여기 있는 것은 모두 테스트 빌드 0.1.11-dev2~dev14로 실제 폰에서 써 본 것입니다.
새로운 점
- 알림창을 열고 닫을 때 아일랜드가 부드럽게 사라지고 돌아옵니다. 알림창을 당기는 순간, 알약 옆의 작은 점이 알약에 합쳐지고, 내용이 작아지며 흐려지고, 검은 몸체가 알약에서 점으로 줄어든 뒤 점이 흐려집니다. 알림창이 거의 닫히면 그 반대로 진행됩니다. 알림창의 속도와 상관없이 같은 몇 프레임이 걸려서, 더 이상 틱 하고 사라지지 않습니다.
- 카드가 닫힐 때 깔끔합니다. 여러 카드가 차례로 닫히는 동안 알약이 두 개로 보이지 않고, 카드가 회색으로 튀지 않고 회색 유리에서 검정으로 조금씩 바뀌며, 블러가 한 프레임 사라지지 않고(다른 카드가 홀에 들어갈 때도), 카드 사이로 들어오는 카드가 하얗게 번쩍이지 않으며, 알약이 카드 크기만큼 자란 뒤에만 접히는 카드에서 넘겨받아서 알약 안에 알약이 보이지 않습니다.
- 블러가 카드 모서리 밖으로 튀어나오지 않습니다. 카드의 모서리 반경이 안정되면 블러를 한 번 다시 만들어서 카드 모양을 따라갑니다.
- 모든 라이브 카드가 같은 모양입니다. 진행형(ProgressStyle) 라이브 알림(택시, 배달 등)도 다른 라이브 카드와 같은 카드를 씁니다: 위에 앱 이름과 시간, 오른쪽에 아이콘, 텍스트 아래에 구간과 마커가 있는 진행바. 예전 모양은 메시지 팝업에만 남았습니다.
- 구글 스포츠 카드의 글자가 읽힙니다. 앱이 자기 화면을 그리는 카드의 글자색을 어두운 카드와의 대비로 판단해서, 이미 잘 보이는 색은 그대로 두고 읽기 어려운 색만 색조와 투명도를 유지한 채 밝게 합니다. 시스템 UI의 알림창처럼 다크 테마로 레이아웃을 불러오기도 합니다. 알림창 카드에도 같은 기준을 씁니다.
- 구글 스포츠 경기가 알림창에서 따로 카드로 나옵니다. 구글 앱이 그룹 요약("Sports from Google" 제목)을 함께 올리면 시스템 UI가 경기를 회색 더미로 접어 버렸습니다. 라이브 알림으로 표시된 그룹 요약은 이제 알림창 목록에서 빼서, 경기가 각각 따로 카드로 나옵니다. 알림 자체를 취소하지는 않습니다. (아이디어와 수정은 원작 모듈 제작자가 알려 주었습니다.)
- 손전등 카드가 더 많은 폰에서 나옵니다. 플래시가 있는 카메라를 전부 보고(읽을 수 없는 카메라는 건너뜁니다), 켜진 손전등이 있는 카메라를 따라갑니다. 손전등의 밝기 단계가 하나뿐인 폰도 슬라이더 대신 켜짐과 끄기 버튼이 있는 카드가 나옵니다(제보하신 분이 직접 고친 내용입니다). 시스템 UI가 손전등에 대한 라이브 알림을 올리지 않는 폰도 카메라에서 직접 읽으므로 카드가 나옵니다.
- 손전등이 두 번 나오지 않습니다. 시스템 UI의 손전등 알림을 다른 빌드에서도(태그나 제목으로) 알아보고 카드 옆에 같이 나오지 않게 했습니다. 모든 알림을 아일랜드로가 켜져 있어도 마찬가지입니다.
- 새 스위치: 손전등 카드(기본 켜짐). 끄면 카드 대신 짧은 "손전등 켜짐" 팝업이 나옵니다.
설치와 참고
- 0.1.10이나 0.1.11 테스트 빌드 위에 그대로 설치하세요. 같은 키로 서명되어 있습니다. 설치 후 시스템 UI를 재시작하세요.
- 이상한 점이 있으면 화면 녹화와 도구 → 진단 리포트를 함께 보내 주세요.
Dynamic Island 0.1.10
Dynamic Island 0.1.10 · Notifications, replies and Nothing OS
English · 한국어
Notification popups got much better (they no longer block your touches, can be answered from the island and are replaced by newer ones), the switches in the settings now really switch things off, and the first support for Nothing OS is here.
What's new
- Notifications on the island.
- A popup no longer closes when you touch elsewhere (typing keeps working), a swipe up closes it at once, and it leaves without being kept as a small pill. A newer notification replaces the one that is open.
- Reply from the island. The Reply button opens a text field with a send button above the keyboard; the card stays open while you type. Apps that offer the reply only for watches (the Samsung messages app) work too.
- All notifications in the island (new switch, experimental): every new notification gets a card, also quiet ones. It may not work on every phone or for every app.
- On One UI 9 the stock banner is also taken away when notifications come in a row, and the island removes the stock heads-up entry it took over.
- Switches are enforced. What a switch turns off (charging and low battery, sound mode, Bluetooth, setting changes, camera and microphone, downloads) is dropped just before the island is drawn, and the island follows a switch at once. Downloads & transfers now also covers downloads that apps post as One UI live notifications. If System UI cannot read the settings file it asks the app (Diagnostics:
settings source). - Flashlight card, redesigned. One bar with the icon at its start and the percentage at its end, a Flashlight label and a round power button on top.
- Screen recording card without the chip. On phones where System UI does not report the recording as a chip, the recorder's own notification becomes the card, with its timer and a Stop button.
- Status bar icons slide aside when the island is moved over them, instead of disappearing; icons no longer stay half transparent after a notification.
- Live notification cards stay readable. Cards that show an app's own layout (for example Google sports) stay dark like the others, and the app's dark text is lightened.
- New option: coloured icons in the small island. Keep the real colours of an app icon or a team logo when the island is small (off by default: grey).
- Opening and closing animation. When the cards close their content fades first, the empty shape then folds into the pill in one motion and no dark smear stays behind. The small circle next to the pill merges into the pill when the cards open and splits out of it after they close, instead of vanishing or popping up.
- Nothing OS (first support, lowest priority, not verified on a device). The stock chips for calls, screen recording, sharing and casting no longer sit next to the island, and Android 16 live notifications become island cards.
- One UI 8.0. The stock music capsule in the status bar is kept away on this build too.
- Smaller changes.
- The screen-recording notification is hidden from the shade while its card is on the island (the Hide original progress notifications switch), and a recording card made from a notification keeps its timer running.
- Android 16 live notifications on Nothing OS also show their timer or short text, progress and buttons, and their shade row is hidden like the progress ones.
- A newer notification no longer falls back to the stock banner while a popup is open; it takes the popup's place.
- The Experimental warning is shown under All notifications in the island.
- Diagnostics: the report now tells how the settings arrived (
settings source), whether the stock chips of an AOSP-style System UI were taken over (stock chips), and why a notification popup was or was not shown (notification card:,heads-up pin decision asked,reply bar not shown). - Several fixes for the first draft of these features: the reply field is placed above the keyboard so that it is seen, the island no longer takes touches of the whole screen while a popup is open, and a stuck half-transparent state of status bar icons is cleared.
Install and notes
- Install over 0.1.9; it is signed with the same key. Restart System UI afterwards.
- Verified only in a headless test and render environment, not on a real device. If something does not work, open Tools → Diagnostics, copy the report and send it with an issue.
한국어
알림 팝업이 훨씬 좋아졌고(터치를 막지 않고, 아일랜드에서 바로 답장할 수 있고, 새 알림이 오면 바뀝니다), 설정의 스위치가 실제로 적용되며, Nothing OS를 처음 지원합니다.
새로운 점
- 아일랜드의 알림.
- 팝업은 다른 곳을 터치해도 닫히지 않고(타자 입력이 그대로 됩니다), 위로 쓸면 바로 닫히며, 작은 알약으로 남지 않고 사라집니다. 새 알림이 오면 열려 있던 팝업이 새 알림으로 바뀝니다.
- 아일랜드에서 답장. 답장 버튼을 누르면 키보드 위에 입력창과 전송 버튼이 열리고, 입력하는 동안 카드가 닫히지 않습니다. 시계용으로만 답장을 주는 앱(삼성 메시지)도 됩니다.
- 모든 알림을 아일랜드로(새 스위치, 실험 기능): 조용한 알림까지 새 알림마다 카드를 띄웁니다. 기기나 앱에 따라 잘 작동하지 않을 수 있습니다.
- One UI 9에서 알림이 연달아 올 때도 기본 배너를 치우고, 아일랜드가 가져간 알림의 기본 배너 항목은 제거합니다.
- 스위치가 확실히 적용됩니다. 스위치로 끈 것(충전·배터리 부족, 소리 모드, 블루투스, 설정 변경, 카메라·마이크, 다운로드)은 아일랜드를 그리기 직전에 걸러지고, 스위치를 바꾸면 곧바로 반영됩니다. 다운로드 및 전송은 앱이 One UI 라이브 알림으로 올리는 다운로드도 다룹니다. 시스템 UI가 설정 파일을 읽지 못하면 앱에 직접 묻습니다(진단의
settings source). - 손전등 카드 새 디자인. 막대 하나에 시작 쪽 아이콘, 끝 쪽 퍼센트, 위에는 손전등 라벨과 둥근 전원 버튼이 있습니다.
- 칩이 없어도 화면 녹화 카드. 시스템 UI가 녹화를 칩으로 알려 주지 않는 기기에서는 녹화기의 알림이 타이머와 중지 버튼이 있는 카드가 됩니다.
- 상태바 아이콘이 비켜 줍니다. 아일랜드를 아이콘 위로 옮기면 아이콘이 사라지지 않고 옆으로 밀립니다. 알림 뒤에 아이콘이 반투명하게 남던 문제도 고쳤습니다.
- 라이브 알림 카드의 글자가 읽힙니다. 앱이 자기 화면을 그리는 카드(구글 스포츠 등)도 다른 카드처럼 어둡게 유지하고, 앱의 어두운 글자는 밝게 바꿉니다.
- 새 옵션: 작은 아일랜드에서 아이콘 색 유지. 아일랜드가 작아졌을 때 앱 아이콘이나 팀 로고의 원래 색을 보여 줍니다(기본은 꺼짐: 회색).
- 열리고 닫히는 애니메이션. 카드가 닫힐 때 내용이 먼저 사라진 뒤 빈 모양이 한 동작으로 알약에 접혀 들어가고, 어두운 얼룩이 남지 않습니다. 알약 옆의 작은 원은 카드가 열릴 때 알약으로 합쳐지고 닫힌 뒤에는 알약에서 갈라져 나오며, 갑자기 사라지거나 나타나지 않습니다.
- Nothing OS(첫 지원, 가장 낮은 우선순위, 실기기 검증 전). 통화·화면 녹화·공유·캐스트용 기본 칩이 아일랜드 옆에 남지 않고, Android 16 라이브 알림은 아일랜드 카드가 됩니다.
- One UI 8.0. 이 빌드에서도 상태바의 기본 음악 캡슐을 치웁니다.
- 그 밖의 변경.
- 화면 녹화 알림은 카드가 아일랜드에 있는 동안 알림창에서 숨겨지고(진행 알림 원본 숨기기 스위치), 알림으로 만든 녹화 카드는 타이머가 계속 갑니다.
- Nothing OS의 Android 16 라이브 알림도 타이머나 짧은 글, 진행률, 버튼을 보여 주고, 알림창 줄은 진행 알림처럼 숨겨집니다.
- 팝업이 열려 있는 동안 새 알림이 오면 기본 배너로 넘어가지 않고 팝업 자리를 대신합니다.
- 모든 알림을 아일랜드로 아래에 실험 기능 경고가 표시됩니다.
- 진단: 설정이 어떻게 전달됐는지(
settings source), AOSP 계열 시스템 UI의 기본 칩을 가져왔는지(stock chips), 알림 팝업이 왜 떴거나 안 떴는지(notification card:,heads-up pin decision asked,reply bar not shown)를 리포트에서 볼 수 있습니다. - 새 기능의 초안에서 고친 점: 답장 입력창을 키보드 위에 두어 보이게 했고, 팝업이 열려 있는 동안 아일랜드가 화면 전체의 터치를 받지 않으며, 상태바 아이콘이 반투명으로 굳던 상태를 풀었습니다.
설치와 참고
- 0.1.9 위에 그대로 설치하세요. 같은 키로 서명되어 있습니다. 설치 후 시스템 UI를 재시작하세요.
- 헤드리스 테스트·렌더 환경에서만 검증했고 실제 기기에서는 검증하지 못했습니다. 동작하지 않으면 도구 → 진단의 리포트를 복사해 이슈와 함께 보내 주세요.
Dynamic Island 0.1.9
Dynamic Island 0.1.9 · The size of the island
English · 한국어
The island's size can now be set, with the same live preview as its position.
What's new
- Island size. The settings page is now Island position and size. A new Island size group sets the pill's height (-20 % to +40 %; its icons grow with it), the narrowest it ever gets (so even a tiny item shows a wide pill) and the widest it ever gets (so a long text stops there). A switch, Keep the widest width, stops the island from shrinking again after it has grown, until it hides.
- Live, on the real status bar. The island on the real status bar follows the sliders as you drag them. While you set the widest width the sample item holds a long text, so you can see the pill grow to that width; for the narrowest it holds a short one.
- The two widths can not cross. The narrowest stops at the widest, and the widest stops at the narrowest. The narrowest now goes up to 420 dp.
- Fixed: the narrowest width and the bigger icons of a higher pill were not applied to the pill on screen; now they are.
- Reset the position also puts the size back.
Install and notes
- Install over 0.1.8; it is signed with the same key. Restart System UI afterwards.
- Verified only in a headless test and render environment, not on a real device. If something does not work, open Tools → Diagnostics, copy the report and send it with an issue.
한국어
아일랜드의 크기를 정할 수 있게 됐고, 위치와 같은 실시간 미리보기를 씁니다.
새로운 점
- 아일랜드 크기. 설정 페이지 이름이 아일랜드 위치와 크기로 바뀌었습니다. 새 아일랜드 크기 그룹에서 알약의 높이(-20%~+40%, 아이콘도 같이 커집니다), 가장 좁아지는 최소 너비(아주 작은 항목도 넓은 알약으로 보입니다), 가장 넓어지는 최대 너비(긴 글이 거기서 멈춥니다)를 정합니다. 가장 넓어진 너비 유지 스위치를 켜면 한 번 넓어진 아일랜드가 숨을 때까지 다시 줄어들지 않습니다.
- 실제 상태바에서 실시간으로. 슬라이더를 끄는 대로 실제 상태바의 아일랜드가 따라옵니다. 최대 너비를 정하는 동안에는 샘플 항목에 긴 글이 들어 있어 알약이 그 너비까지 자라나는 모습을 볼 수 있고, 최소 너비를 정할 때는 짧은 글이 들어 있습니다.
- 두 너비는 서로를 넘지 못합니다. 최소 너비는 최대 너비에서, 최대 너비는 최소 너비에서 멈춥니다. 최소 너비는 이제 420dp까지 정할 수 있습니다.
- 고침: 최소 너비와, 높아진 알약의 더 큰 아이콘이 화면의 알약에 적용되지 않던 것을 고쳤습니다.
- 위치 초기화는 이제 크기도 되돌립니다.
설치와 참고
- 0.1.8 위에 그대로 설치하세요. 같은 키로 서명되어 있습니다. 설치 후 시스템 UI를 재시작하세요.
- 헤드리스 테스트·렌더 환경에서만 검증했고 실제 기기에서는 검증하지 못했습니다. 동작하지 않으면 도구 → 진단의 리포트를 복사해 이슈와 함께 보내 주세요.