Skip to content

Commit b4ecf1b

Browse files
Get Icon for .lnk Files Too
1 parent c8fc3eb commit b4ecf1b

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

app/src/main/java/com/micewine/emu/adapters/AdapterFiles.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import com.micewine.emu.activities.MainActivity.Companion.selectedFile
1919
import com.micewine.emu.activities.MainActivity.Companion.usrDir
2020
import com.micewine.emu.core.WineWrapper.extractIcon
2121
import com.micewine.emu.fragments.FloatingFileManagerFragment.Companion.refreshFiles
22+
import com.micewine.emu.utils.DriveUtils
23+
import mslinks.ShellLink
2224
import java.io.File
2325
import kotlin.math.round
2426

@@ -77,6 +79,25 @@ class AdapterFiles(private val fileList: List<FileList>, private val context: Co
7779
} else {
7880
holder.icon.setImageResource(R.drawable.ic_log)
7981
}
82+
} else if (fileExtension == "lnk") {
83+
val shell = ShellLink(sList.file)
84+
val drive = DriveUtils.parseWindowsPath(shell.resolveTarget())
85+
86+
if (drive != null) {
87+
val filePath = File(drive.getUnixPath())
88+
89+
val output = "$usrDir/icons/${filePath.nameWithoutExtension}-icon.ico"
90+
91+
extractIcon(filePath, output)
92+
93+
if (File(output).exists()) {
94+
holder.icon.setImageBitmap(BitmapFactory.decodeFile(output))
95+
} else {
96+
holder.icon.setImageResource(R.drawable.ic_log)
97+
}
98+
} else {
99+
holder.icon.setImageResource(R.drawable.ic_log)
100+
}
80101
} else if (fileExtension == "rat") {
81102
holder.icon.setImageResource(R.drawable.icon_grayscale)
82103
} else {

0 commit comments

Comments
 (0)