Skip to content

Commit 5c17818

Browse files
Feat(Icons): Add custom default app icon
This commit introduces a new vector drawable `ic_default_app.xml` to be used as a placeholder icon when an application's icon cannot be loaded. The following changes were made: - Added `app/src/main/res/drawable/ic_default_app.xml` which defines a four-quadrant colored square with a central waiting ring. - Modified `HomeFragment.kt` to use `R.drawable.ic_default_app` as a fallback when `PackageManager.NameNotFoundException` or other exceptions occur while trying to load an app icon. - Modified `AppDrawerAdapter.kt` to use `R.drawable.ic_default_app` as a fallback when `PackageManager.NameNotFoundException` or other exceptions occur while trying to load an app icon. Signed-off-by: CreativeCodeCat <[email protected]>
1 parent ca57911 commit 5c17818

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

app/src/main/java/com/github/droidworksstudio/mlauncher/ui/AppDrawerAdapter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,11 +521,11 @@ class AppDrawerAdapter(
521521
} catch (e: PackageManager.NameNotFoundException) {
522522
e.printStackTrace()
523523
// Handle exception gracefully, fall back to the system icon
524-
packageManager.getApplicationIcon(packageName)
524+
AppCompatResources.getDrawable(context, R.drawable.ic_default_app)
525525
} catch (e: Exception) {
526526
e.printStackTrace()
527527
// Handle any other exceptions gracefully, fallback to the system icon
528-
packageManager.getApplicationIcon(packageName)
528+
AppCompatResources.getDrawable(context, R.drawable.ic_default_app)
529529
}
530530

531531
val defaultIcon = packageManager.getApplicationIcon(packageName)

app/src/main/java/com/github/droidworksstudio/mlauncher/ui/HomeFragment.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import android.view.ViewGroup
3131
import android.widget.LinearLayout
3232
import android.widget.Space
3333
import android.widget.TextView
34+
import androidx.appcompat.content.res.AppCompatResources
3435
import androidx.biometric.BiometricPrompt
3536
import androidx.core.app.ActivityCompat
3637
import androidx.core.content.ContextCompat
@@ -1019,11 +1020,11 @@ class HomeFragment : Fragment(), GestureListener, View.OnClickListener, View.OnL
10191020
} catch (e: PackageManager.NameNotFoundException) {
10201021
e.printStackTrace()
10211022
// Handle exception gracefully, fall back to the system icon
1022-
packageManager.getApplicationIcon(packageName)
1023+
AppCompatResources.getDrawable(context, R.drawable.ic_default_app)
10231024
} catch (e: Exception) {
10241025
e.printStackTrace()
10251026
// Handle any other exceptions gracefully, fallback to the system icon
1026-
packageManager.getApplicationIcon(packageName)
1027+
AppCompatResources.getDrawable(context, R.drawable.ic_default_app)
10271028
}
10281029

10291030
val defaultIcon = packageManager.getApplicationIcon(packageName)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="128dp"
3+
android:height="128dp"
4+
android:viewportWidth="128"
5+
android:viewportHeight="128">
6+
<!-- Top-left quadrant -->
7+
<path
8+
android:fillColor="#FF5E97F6"
9+
android:pathData="M16,16h48v48H16z" />
10+
<!-- Top-right quadrant -->
11+
<path
12+
android:fillColor="#FF43D6B0"
13+
android:pathData="M64,16h48v48H64z" />
14+
<!-- Bottom-left quadrant -->
15+
<path
16+
android:fillColor="#FFF9C851"
17+
android:pathData="M16,64h48v48H16z" />
18+
<!-- Bottom-right quadrant -->
19+
<path
20+
android:fillColor="#FFFF6F60"
21+
android:pathData="M64,64h48v48H64z" />
22+
<!-- Central off-white waiting ring -->
23+
<path
24+
android:fillColor="@android:color/transparent"
25+
android:pathData="M64,40
26+
a24,24 0 1,1 -0.01,0"
27+
android:strokeWidth="6"
28+
android:strokeColor="#FFF5F5F5"
29+
android:strokeLineCap="round" />
30+
<!-- Optional: Add a small off-white dot to suggest progress -->
31+
<path
32+
android:fillColor="#FFF5F5F5"
33+
android:pathData="M64,32a4,4 0 1,0 0.01,0" />
34+
</vector>

0 commit comments

Comments
 (0)