|
|
|
@ -22,12 +22,16 @@ import androidx.core.graphics.drawable.toBitmap
|
|
|
|
|
import androidx.core.graphics.drawable.toDrawable
|
|
|
|
|
import androidx.documentfile.provider.DocumentFile
|
|
|
|
|
import androidx.lifecycle.ViewModelProvider
|
|
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
|
|
import androidx.navigation.findNavController
|
|
|
|
|
import androidx.preference.PreferenceManager
|
|
|
|
|
import androidx.recyclerview.widget.AsyncDifferConfig
|
|
|
|
|
import androidx.recyclerview.widget.DiffUtil
|
|
|
|
|
import androidx.recyclerview.widget.ListAdapter
|
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
|
import kotlinx.coroutines.launch
|
|
|
|
|
import kotlinx.coroutines.withContext
|
|
|
|
|
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
|
|
|
|
import org.yuzu.yuzu_emu.R
|
|
|
|
|
import org.yuzu.yuzu_emu.YuzuApplication
|
|
|
|
@ -92,28 +96,34 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|
|
|
|
data = Uri.parse(holder.game.path)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val layerDrawable = ResourcesCompat.getDrawable(
|
|
|
|
|
YuzuApplication.appContext.resources,
|
|
|
|
|
R.drawable.shortcut,
|
|
|
|
|
null
|
|
|
|
|
) as LayerDrawable
|
|
|
|
|
layerDrawable.setDrawableByLayerId(
|
|
|
|
|
R.id.shortcut_foreground,
|
|
|
|
|
GameIconUtils.getGameIcon(holder.game).toDrawable(YuzuApplication.appContext.resources)
|
|
|
|
|
)
|
|
|
|
|
val inset = YuzuApplication.appContext.resources
|
|
|
|
|
.getDimensionPixelSize(R.dimen.icon_inset)
|
|
|
|
|
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
|
|
|
|
|
val shortcut = ShortcutInfoCompat.Builder(YuzuApplication.appContext, holder.game.path)
|
|
|
|
|
.setShortLabel(holder.game.title)
|
|
|
|
|
.setIcon(
|
|
|
|
|
IconCompat.createWithAdaptiveBitmap(
|
|
|
|
|
layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
|
|
|
|
|
activity.lifecycleScope.launch {
|
|
|
|
|
withContext(Dispatchers.IO) {
|
|
|
|
|
val layerDrawable = ResourcesCompat.getDrawable(
|
|
|
|
|
YuzuApplication.appContext.resources,
|
|
|
|
|
R.drawable.shortcut,
|
|
|
|
|
null
|
|
|
|
|
) as LayerDrawable
|
|
|
|
|
layerDrawable.setDrawableByLayerId(
|
|
|
|
|
R.id.shortcut_foreground,
|
|
|
|
|
GameIconUtils.getGameIcon(activity, holder.game)
|
|
|
|
|
.toDrawable(YuzuApplication.appContext.resources)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
.setIntent(openIntent)
|
|
|
|
|
.build()
|
|
|
|
|
ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
|
|
|
|
|
val inset = YuzuApplication.appContext.resources
|
|
|
|
|
.getDimensionPixelSize(R.dimen.icon_inset)
|
|
|
|
|
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
|
|
|
|
|
val shortcut =
|
|
|
|
|
ShortcutInfoCompat.Builder(YuzuApplication.appContext, holder.game.path)
|
|
|
|
|
.setShortLabel(holder.game.title)
|
|
|
|
|
.setIcon(
|
|
|
|
|
IconCompat.createWithAdaptiveBitmap(
|
|
|
|
|
layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
.setIntent(openIntent)
|
|
|
|
|
.build()
|
|
|
|
|
ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val action = HomeNavigationDirections.actionGlobalEmulationActivity(holder.game)
|
|
|
|
|
view.findNavController().navigate(action)
|
|
|
|
|