No results found

Notification Icon Fix / 通知图标修复 - Xposed Module Repository

Notification Icon Fix

中文

A module for AOSP, MIUI and HyperOS. Using an algorithm to convert white notification icons into recognizable icons.

Supported System

  • Android 8.1 ~ AOSP main branch
  • HyperOS
  • MIUI 10 and above

Screenshots

Single Notification Multiple notifications with the same icon are automatically grouped
Multiple notification icons are automatically grouped Multiple notification icons are automatically grouped

Algorithm Details

  1. Determine and reduce oversized icons to the maximum allowed icon size
  2. Map the icon pixel position to a two-dimensional coordinate system and calculate the geometric center
  3. (For MIUI) Detect transparent borders and trim icons
  4. (For MIUI and HyperOS) Determine if the icon has a marketing banner and replace it with a perfect icon (Need to install it yourself)
  5. (For HyperOS) Determine if the icon is a weather icon, and replace it with an MAML icon with real-time temperature (there is a race on HyperOS, which shows that the temperature area is blank, which is a system bug)
  6. Calculate the average lumens, excluding transparent pixels
  7. Quantify the most common color of edge pixels
  8. Calculate the Euclidean distance between the color of the edge pixel and the most common color obtained above in the Lab color space to determine whether the icon has a border
  9. Determine whether the icon background is light or dark
  10. Use K-means quantizer to extract the primary color of the icon
  11. Invert the icon foreground according to the background and remove the border
  12. Determine the actual visible area of ​​the icon and remove the blank area based on the visual center
  13. Final result output, cache icon, and accent color to WeakHashMap

Package

io.github.howard20181.notificationiconfix

Authors

Howard Wu

Releases

1.6.7

Release Type: Stable

6/3/2025, 8:45:59 AM

View all releases

Releases

1.6.7

Release Type: Stable

6/3/2025, 8:45:59 AM

Changelog

  • Fix performance degradation caused by reflection call
    In the previous version, ActivityThread.currentActivityThread().getSystemUiContext() was changed to reflection call, because in Android 16, the return type of getSystemUiContext() was changed from ContextImpl to Context but the method signature was kept the same, which made it impossible to call it in the form of hidden api stub and only reflection was allowed. Since there was no cache for the results, each call to createIcons or updateIcons required a reflection call, which caused a serious degradation in notification display performance.

Show older versions

© 2021 - 2025 New Xposed Module Repository