A module for AOSP, MIUI and HyperOS. Using an algorithm to convert white notification icons into recognizable icons.
- Android 8.1 ~ AOSP main branch
- HyperOS
- MIUI 12.5
- Determine and reduce oversized icons to the maximum allowed icon size
- Map the icon pixel position to a two-dimensional coordinate system and calculate the geometric center
- (For MIUI) Detect transparent borders and trim icons
- (For MIUI and HyperOS) Determine if the icon has a marketing banner and replace it with a perfect icon (Need to install it yourself)
- (For HyperOS) Determine if the icon is a weather icon, and replace it with a 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)
- Calculate the average lumens excluding transparent pixels
- Quantify the most common color of edge pixels
- Calculate the Euclidean distance between the color of the edge pixel and the most common color obtained above in Lab color space to determine whether the icon has a border
- Determine whether the icon background is light or dark
- Use K-means quantizer to extract the primary color of the icon
- Invert the icon foreground according to the background and remove the border
- Determine the actual visible area of the icon and remove the blank area based on the visual center
- Final result output, cache icon, and accent color to WeakHashMap