Browse Source
[android, inputOverlay] Add snap to grid option and allow editing the overlay without opening a game (#3234)
[android, inputOverlay] Add snap to grid option and allow editing the overlay without opening a game (#3234)
The new changes are in the input overlay section Known issues: - Auto hide, also hides the overlay in gameless edit mode - Same goes for the controller auto hide option Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3234 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: kleidis <kleidis1@protonmail.com> Co-committed-by: kleidis <kleidis1@protonmail.com>pull/3244/head
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
17 changed files with 332 additions and 24 deletions
-
7src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
-
1src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
-
1src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
-
20src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/LaunchableSetting.kt
-
25src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
-
14src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
-
42src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/LaunchableViewHolder.kt
-
66src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
-
50src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt
-
30src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableButton.kt
-
27src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableDpad.kt
-
42src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.kt
-
4src/android/app/src/main/jni/android_settings.h
-
5src/android/app/src/main/res/menu/menu_overlay_options.xml
-
4src/android/app/src/main/res/navigation/emulation_navigation.xml
-
10src/android/app/src/main/res/values/strings.xml
@ -0,0 +1,20 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
// SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
package org.yuzu.yuzu_emu.features.settings.model.view |
|||
|
|||
import android.content.Intent |
|||
import androidx.annotation.StringRes |
|||
|
|||
/** |
|||
* A settings item that launches an intent when clicked. |
|||
*/ |
|||
class LaunchableSetting( |
|||
@StringRes titleId: Int = 0, |
|||
titleString: String = "", |
|||
@StringRes descriptionId: Int = 0, |
|||
descriptionString: String = "", |
|||
val launchIntent: (android.content.Context) -> Intent |
|||
) : SettingsItem(emptySetting, titleId, titleString, descriptionId, descriptionString) { |
|||
override val type = SettingsItem.TYPE_LAUNCHABLE |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
// SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
package org.yuzu.yuzu_emu.features.settings.ui.viewholder |
|||
|
|||
import android.view.View |
|||
import org.yuzu.yuzu_emu.R |
|||
import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding |
|||
import org.yuzu.yuzu_emu.features.settings.model.view.LaunchableSetting |
|||
import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
|||
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter |
|||
import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible |
|||
|
|||
class LaunchableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : |
|||
SettingViewHolder(binding.root, adapter) { |
|||
private lateinit var setting: LaunchableSetting |
|||
|
|||
override fun bind(item: SettingsItem) { |
|||
setting = item as LaunchableSetting |
|||
|
|||
binding.textSettingName.text = setting.title |
|||
binding.textSettingDescription.setVisible(setting.description.isNotEmpty()) |
|||
binding.textSettingDescription.text = setting.description |
|||
|
|||
binding.textSettingValue.setVisible(true) |
|||
binding.textSettingValue.text = "" |
|||
binding.textSettingValue.setCompoundDrawablesRelativeWithIntrinsicBounds( |
|||
0, 0, R.drawable.ic_arrow_forward, 0 |
|||
) |
|||
|
|||
binding.buttonClear.setVisible(false) |
|||
} |
|||
|
|||
override fun onClick(clicked: View) { |
|||
adapter.onLaunchableClick(setting) |
|||
} |
|||
|
|||
override fun onLongClick(clicked: View): Boolean { |
|||
// no-op |
|||
return true |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue