early-access version 3872
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| yuzu emulator early access | ||||
| ============= | ||||
|  | ||||
| This is the source code for early-access 3870. | ||||
| This is the source code for early-access 3872. | ||||
|  | ||||
| ## Legal Notice | ||||
|  | ||||
|   | ||||
| @@ -4,7 +4,8 @@ | ||||
| package org.yuzu.yuzu_emu.adapters | ||||
|  | ||||
| import android.content.Intent | ||||
| import android.graphics.drawable.BitmapDrawable | ||||
| import android.graphics.Bitmap | ||||
| import android.graphics.drawable.LayerDrawable | ||||
| import android.net.Uri | ||||
| import android.text.TextUtils | ||||
| import android.view.LayoutInflater | ||||
| @@ -15,7 +16,10 @@ import android.widget.Toast | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| import androidx.core.content.pm.ShortcutInfoCompat | ||||
| import androidx.core.content.pm.ShortcutManagerCompat | ||||
| import androidx.core.content.res.ResourcesCompat | ||||
| import androidx.core.graphics.drawable.IconCompat | ||||
| import androidx.core.graphics.drawable.toBitmap | ||||
| import androidx.core.graphics.drawable.toDrawable | ||||
| import androidx.documentfile.provider.DocumentFile | ||||
| import androidx.lifecycle.ViewModelProvider | ||||
| import androidx.navigation.findNavController | ||||
| @@ -87,11 +91,24 @@ class GameAdapter(private val activity: AppCompatActivity) : | ||||
|             action = Intent.ACTION_VIEW | ||||
|             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.createWithBitmap( | ||||
|                     (holder.binding.imageGameScreen.drawable as BitmapDrawable).bitmap | ||||
|                 IconCompat.createWithAdaptiveBitmap( | ||||
|                     layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888) | ||||
|                 ) | ||||
|             ) | ||||
|             .setIntent(openIntent) | ||||
|   | ||||
| @@ -6,9 +6,11 @@ package org.yuzu.yuzu_emu.utils | ||||
| import android.graphics.Bitmap | ||||
| import android.graphics.BitmapFactory | ||||
| import android.widget.ImageView | ||||
| import androidx.core.graphics.drawable.toBitmap | ||||
| import androidx.core.graphics.drawable.toDrawable | ||||
| import coil.ImageLoader | ||||
| import coil.decode.DataSource | ||||
| import coil.executeBlocking | ||||
| import coil.fetch.DrawableResult | ||||
| import coil.fetch.FetchResult | ||||
| import coil.fetch.Fetcher | ||||
| @@ -74,4 +76,13 @@ object GameIconUtils { | ||||
|             .build() | ||||
|         imageLoader.enqueue(request) | ||||
|     } | ||||
|  | ||||
|     fun getGameIcon(game: Game): Bitmap { | ||||
|         val request = ImageRequest.Builder(YuzuApplication.appContext) | ||||
|             .data(game) | ||||
|             .error(R.drawable.default_icon) | ||||
|             .build() | ||||
|         return imageLoader.executeBlocking(request) | ||||
|             .drawable!!.toBitmap(config = Bitmap.Config.ARGB_8888) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -262,9 +262,6 @@ public: | ||||
|     Core::SystemResultStatus InitializeEmulation(const std::string& filepath) { | ||||
|         std::scoped_lock lock(m_mutex); | ||||
|  | ||||
|         // Loads the configuration. | ||||
|         Config{}; | ||||
|  | ||||
|         // Create the render window. | ||||
|         m_window = std::make_unique<EmuWindow_Android>(&m_input_subsystem, m_native_window, | ||||
|                                                        m_vulkan_library); | ||||
| @@ -330,12 +327,13 @@ public: | ||||
|             m_system.ShutdownMainProcess(); | ||||
|             m_detached_tasks.WaitForAllTasks(); | ||||
|             m_load_result = Core::SystemResultStatus::ErrorNotInitialized; | ||||
|             m_window.reset(); | ||||
|             OnEmulationStopped(Core::SystemResultStatus::Success); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // Tear down the render window. | ||||
|         m_window.reset(); | ||||
|  | ||||
|         OnEmulationStopped(m_load_result); | ||||
|     } | ||||
|  | ||||
|     void PauseEmulation() { | ||||
|   | ||||
							
								
								
									
										11
									
								
								src/android/app/src/main/res/drawable/shortcut.xml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								src/android/app/src/main/res/drawable/shortcut.xml
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
|  | ||||
|     <item> | ||||
|         <color android:color="@android:color/white" /> | ||||
|     </item> | ||||
|     <item android:id="@+id/shortcut_foreground"> | ||||
|         <bitmap android:src="@drawable/default_icon" /> | ||||
|     </item> | ||||
|  | ||||
| </layer-list> | ||||
| @@ -27,7 +27,7 @@ | ||||
|             app:nullable="true" /> | ||||
|         <argument | ||||
|             android:name="menuTag" | ||||
|             app:argType="string" /> | ||||
|             app:argType="org.yuzu.yuzu_emu.features.settings.model.Settings$MenuTag" /> | ||||
|     </activity> | ||||
|  | ||||
|     <action | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|     <dimen name="spacing_refresh_end">72dp</dimen> | ||||
|     <dimen name="menu_width">256dp</dimen> | ||||
|     <dimen name="card_width">165dp</dimen> | ||||
|     <dimen name="icon_inset">24dp</dimen> | ||||
|  | ||||
|     <dimen name="dialog_margin">20dp</dimen> | ||||
|     <dimen name="elevated_app_bar">3dp</dimen> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user