Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 30, 2025

Implements user-selectable launcher icons using Android's activity-alias mechanism, enabling icon personalization similar to Telegram/WhatsApp mods.

Implementation

Icon Management

  • AppIconManager - Orchestrates PackageManager API to enable/disable activity-alias components
  • 4 icon variants (Default, Music, Vinyl, Headphones) with adaptive icon support across all density buckets
  • Whitelist-based validation prevents invalid component names

Manifest Configuration

<!-- Main activity no longer has LAUNCHER intent -->
<activity android:name=".TransitionActivity" android:exported="false">
  <!-- Deep link intents only -->
</activity>

<!-- Each icon variant gets its own activity-alias -->
<activity-alias
    android:name=".DefaultIcon"
    android:targetActivity=".TransitionActivity"
    android:enabled="true"
    android:icon="@mipmap/appicon">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity-alias>

UI Integration

  • Settings > Appearance section includes icon picker dialog
  • Selection persisted via AppSettingsService.AppIconPreference
  • Error handling ensures preference only saved after successful component state change

Limitations

  • Android-only (Windows lacks equivalent dynamic icon change API)
  • Launcher refresh may take a few seconds after selection
  • Current icons are duplicates; designer needed for distinct variants

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • crl.godaddy.com
    • Triggering command: /usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/EB23B7D1B15B85081672081E55C17E18/missingpackages_workingdir --packages /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force conf�� ources/mipmap-xxxhdpi/appicon_headphones_REDACTED.png credential.helper /snap/bin/git (dns block)
  • ocsp.godaddy.com
    • Triggering command: /usr/bin/dotnet dotnet restore --no-dependencies /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/EB23B7D1B15B85081672081E55C17E18/missingpackages_workingdir --packages /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/Dimmer-MAUI/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force conf�� ources/mipmap-xxxhdpi/appicon_headphones_REDACTED.png credential.helper /snap/bin/git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Change the app's Icon</issue_title>
<issue_description>Thank You Rubis 💎</issue_description>

Comments on the Issue (you are @copilot in this section)

@YBTopaz8 (I messed up the icon) @YBTopaz8 Actually 😂 I wanna try to see if I can make it so users Can set their own icon for the app .

I know some apps do that kike some telegram clients and even some modded WhatsApp apps do so I believe.

I'm unsure on Windows but should be a thing too</comment_new>


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Change the app's icon and allow user customization Add customizable app icon feature for Android Dec 30, 2025
Copilot AI requested a review from YBTopaz8 December 30, 2025 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Change the app's Icon

2 participants