zixpo / candybar

Dashboard for Android Icon Packs. Supported by the community.
Apache License 2.0
288 stars 53 forks source link

Add Support for More Launchers (HiOS, ColorOS, OxygenOS, Before, Nothing) #152

Closed moertel closed 11 months ago

moertel commented 1 year ago

This PR adds a fleet of new launchers for devices like OnePlus, OPPO, Realme and TECNO.

ColorOS / OxygenOS

These initially existed as ColorOS for Realme and OPPO, and OxygenOS for OnePlus. Starting with Android 12, they've begun merging both launchers which leads to a matrix of available combinations. Luckily, the instructions are consistent when triggered via homescreen (as opposed to their vastly differing wording in the "Settings" area).

A visible side-effect is that they no longer report as com.oppo.launcher and net.oneplus.launcher but instead only as com.android.launcher. As this is not unique, at all, it leads to a rather complicated detection mechanism.

I decided to detect com.android.launcher as a "Stock Launcher" (with a green Android icon) but swap these out for ColorOS and OxygenOS when I spot them (based on the device manufacturer). To make sure we don't display unexpected stuff, com.android.launcher will not be listed for any other devices.

The below devices are "Overseas" devices, so I can't speak to what happens with Chinese ROMs (which are said to report another launcher variant HydrogenOS (or H2OS). I don't have access to such devices, so cannot experiment.

šŸ“± OnePlus device test list (click to expand) | Device | Android | Launcher | Detected | Correct? | šŸŽ¬ | Supported | | ------- | ------- | ---------- | --------- | --------- | -- | ---------- | | OnePlus 11 | 14 (Beta) | `com.android.launcher` | ColorOS | āœ… | | yes | | OnePlus Nord 2 | 12 | `com.android.launcher` | ColorOS | āœ… | | yes | | OnePlus Nord CE | 11 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes | | OnePlus Nord 2 | 11 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes | | OnePlus 9 | 11 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes | | OnePlus 7T | 11 | `net.oneplus.launcher` | OxygenOS | āœ… | āœ… | yes | | OnePlus 7T | 10 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes | | OnePlus 7 | 9 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes | | OnePlus 6T | 9 | `net.oneplus.launcher` | OxygenOS | āœ… | | yes |
šŸ“± OPPO device test list (click to expand) | Device | Android | Launcher | Detected | Correct? | šŸŽ¬ | Supported | | ------- | -------- | --------- | --------- | --------- | -- | ---------- | | OPPO Reno8 | 12 | `com.android.launcher` | ColorOS | āœ… | | yes | | OPPO K10 | 11 | `com.oppo.launcher` | ColorOS | āœ… | āœ… | yes | | OPPO A54 | 11 | `com.oppo.launcher` | ColorOS | āœ… | | yes | | OPPO F17 | 11 | `com.oppo.launcher` | ColorOS | āœ… | | yes | | OPPO F17 | 10 | `com.oppo.launcher` | ColorOS | āœ… | | no | | OPPO A15 | 10 | `com.oppo.launcher` | ColorOS | āœ… | | no | | OPPO A12 | 9 | `com.oppo.launcher` | ColorOS | āœ… | | no |
šŸ“± realme device test list (click to expand) | Device | Android | Launcher | Detected | Correct? | šŸŽ¬ | Supported | | ------- | -------- | --------- | --------- | --------- | -- | ---------- | | realme GT2 Pro | 12 | `com.android.launcher` | ColorOS | āœ… | | yes | | realme C21 Y | 11 | `com.android.launcher3` | āš ļø | āš ļø | | no | | realme 8i | 11 | `com.android.launcher` | Realme UI | āœ… | | yes | | realme 7i | 10 | `com.oppo.launcher` | ColorOS | āœ… | | no | | realme 5i | 10 | `com.oppo.launcher` | ColorOS | āœ… | | no | Something about `realme C21 Y` is odd but as the `launcher3` doesn't support icon packs anyway, I'm ok with it not detecting anything here.

HiOS

Stock on TECNO devices, but can be installed to other devices from PlayStore.

šŸ“± Device test list (click to expand) | Launcher | Device | Android Version | Works | Comment | | --------- | ------- | ---------------- | ------ | ---------- | | HiOS | TECNO SPARK 7 | 11 | āœ… | |

Before Launcher

moertel commented 1 year ago

@sarsamurmu after testing thoroughly with all those devices listed above, I'm reasonably sure I've captured all "overseas-market" OnePlus, OPPO and realme devices. One can never be 100% sure, I guess, but I'm happy to revisit it in case I get feedback from users (or other icon devs). This is now ready for review!

sarsamurmu commented 1 year ago

Thanks for your hard work. By the way, where did you get all these devices for testing? Did you use an online service? šŸ¤”

moertel commented 1 year ago

Yep, an online service. I subscribed to lambdatest.com as they offer real devices (not just emulators) and are somewhat affordable. I figured it was worth it to see the different launchers through our users' eyes and it even allows to record screencapture videos, so I can use it for tutorials.

moertel commented 1 year ago

FYI, this change has been live for ~1000 users in my icon packs' beta versions. No errors so far. I'm releasing it to the wild in about 2 days, so I can let you know if anything looks odd or needs improvement.

The devs from Before Launcher just let me know that version 6.1.1 went live, including the Intent needed for de3721e. We tested it and it works.

Donnnno commented 1 year ago

wowww, you're doing so much great work lately for the dashboard. Thanks a lot for that <3

moertel commented 1 year ago

No exceptions, no issues. šŸš€ All good from my side and good to merge, @sarsamurmu! I see especially Nothing Launcher and OxygenOS rushing into the top 10 launchers for my user base, so if that's representative it will be a huge win for many icon pack devs.

I really appreciate the kind words from you all! šŸ„¹