* EmulationActivity and EmulationFragment clear only their own hooks
* EmulationLifecycleUtil: Rename `remove()` to `removeHook()`
* EmulationLifecycleUtil: Removed unused function `clear()`
* Corrected somewhat incorrect usage of the word "hook"
* Define `onShutdown` and `onPause` hook functions in constructors
* Formatting nitpicks
* Updated license header
* Re-added log messages for attempting to add duplicate hooks
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* Enable the SecondScreenPresentation class
* Update everything to enable second screen on android under GL and Vulkan. Still some issues!
* Some attempts to enable surface changes
* OpenGL is working on surface change, vulkan still no
* release surfaces (also fixed vulkan?)
* added and enabled layout setting
* resolve merge conflict
* rearrange switch cases to satisfy linux compiler
* openGL is working!
* several vk changes to try to fix crashes
* maybe vulkan is working?
* removing unnecessary code attempts
* Simplified secondscreen for better performance
* vk_platform.cpp: Fixed build failure caused by bad rebase
* vk_present_window.h: Removed stray newline
* Applied clang-format
* bug fix for odin 2
* Applied clang-format
* Updated license headers
* Moved SecondScreen class to org.citra.citra_emu.display
* Various formatting and readability improvements
* Added brackets where previously absent for readability
* Additional readability improvement
* RendererVulkan::NotifySurfaceChanged: Simplified condition checking
* change all references to "secondary screen" to "secondary display" to limit confusion with top screen / bottom screen
* rename main_window to main_present_window and second_window to secondary_present_window
* Reverted accidentally downgraded compatibility list submodule
* Removed unnecessary log message
* Applied clang-format
* Added a description to the Secondary Display Screen Layout setting
* Added `_ptr` suffix to `secondary_present_window`
This distinguishes it as a pointer, as `main_present_window` isn't a pointer, so there could be confusion on whether to use `.` or `->`
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* Added simple button sliding mode
* Added "keep first" button sliding mode
* directly pressed buttons stay active even when sliding off
* further buttons can be triggered via the simple sliding method
* Added button sliding configuration to overlay settings menu
* Updated licences
* Added button sliding activation to dpads and joysticks
* separated handling of buttons, dpads and joysticks needed since they can be activated by moving now
* Adjusted strings
* Changed ButtonSlidingMode values to mirror prior string name changes
* Reverted incorrectly applied language translation
* Nitpicky formatting adjustments
* Shortened string IDs
* hasActiveJoy --> hasActiveJoystick
* showButtonSlidingModeMenu --> showButtonSlidingMenu
* Updated outdated comment relating to `isMotionFirstButton`
Co-authored-by: toksn <toksn@yahoo.de>
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* android: Implement play time tacking
Co-Authored-By: Reg Tiangha <rtiangha@users.noreply.github.com>
* Moved playtime manager from `citra_qt` to `common`
* Reimplemented Android play time to use existing logic from desktop
* Updated license headers
* When getting current game ID fails, silently error rather than crashing
* playTimeManagerStart: Check that `play_time_manager` is initialized before using it
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
Co-authored-by: Reg Tiangha <rtiangha@users.noreply.github.com>
* cmake: Bump min version to 3.25 and update android to 3.30.3
* app/build.gradle.kts: Set minimum CMake version rather than exact version
---------
Co-authored-by: OpenSauce <opensauce04@gmail.com>
* android: Enhance shortcut customization with a custom dialog
Adds ability to customize game shortcuts with:
- Custom name input
- Editable icon via image picker
- Ability to stretch to fit or zoom to fit the shortcut icon
* Code cleanup
* SearchFragment.kt: Updated license header
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
* Add upright boolean for portrait mode
* Add the `upright_screen` boolean to the UI as a switch & in-game
* ScreenAdjustmentUtil.kt: Updated license header
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
* Refactor SetupFragment to support multiple buttons in one page
* Add new `PageButton` data class
* Programmatic button creation && button disabling in setUpAdapter
* Refactor SetupWarningDialogFragment to support multiple titles, descriptions, and help links
* Rework CitraDirectoryHelper to support button step state
* Update warning message for user folder selection step
* Updated license headers
* Code cleanup
* "skip setting the user folder" --> "skip setting up the user folder"
* Fixed typos in string names
* Break `select_emulator_data_folder_description` string over two lines
* `select_emulator_data_folder` --> `select_emulator_data_folders`
* Code cleanup #2
* Removed seemingly accidentally duplicated block of code
* Removed stray newlines
---------
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>