summaryrefslogtreecommitdiff
path: root/src/android
AgeCommit message (Collapse)Author
2025-02-28feat: Make firmware mandatory for title launchingZephyron
This commit implements a requirement for firmware to be installed before titles can be launched, similar to how keys are required. Changes include: - Add IsFirmwareAvailable method to KeyManager to check for essential keys - Add CheckFirmwarePresence method to verify actual firmware files (NCAs) - Add firmware checks in game loading process for both desktop and Android - Add error messages when firmware is missing - Add strings for firmware-related error messages The implementation checks for both essential keys and the presence of system applets like Mii Edit and Home Menu to ensure proper firmware is installed. Games will not launch if firmware is missing, and users will be shown an appropriate error message.
2025-02-22android: Update build dependencies and configurationsZephyron
Updates various build dependencies and configurations for the Android build: * Upgrade Android Gradle Plugin to 8.8.1 * Update Kotlin to 2.1.20-RC * Upgrade NDK to 28.0.13004108 * Update target/compile SDK to Android 35 * Upgrade Java/Kotlin target to JVM 21 * Enable additional release optimizations (shrinkResources, proguard-android-optimize) * Update CMake to 3.31.5 * Update various AndroidX and support library dependencies * Change CMake boolean flags from 0/1 to OFF/ON * Update ktlint to 0.51.1 and related plugins This commit modernizes the Android build system and enables additional optimizations for release builds.
2025-02-22feat: Add AnTuTu to license verification for Android appZephyron
2025-02-21Add license verification for Android appZephyron
Implements a LicenseVerifier class to ensure app integrity and license compliance: - Verifies the app's package name matches the official release - Validates app signature against official release signature - Allows debug and EA (Early Access) builds - Shows violation dialog and exits if verification fails - Enforces GPLv3 license compliance for modified versions This helps prevent unauthorized modified versions from being distributed without source code, as required by the GPLv3 license.
2025-02-09android: Disable RAM Overlay By DefaultZephyron
- TODO
2025-02-09android: Update build toolchain to NDK 28 and Java 21Zephyron
Update Android build configuration to use the latest NDK version 28.0.13004108 and Java JDK 21. This includes: - Updating ndkVersion from 26.3.11579264 to 28.0.13004108 - Upgrading Java compatibility from Java 17 to Java 21 - Setting Kotlin JVM target from 17 to 21 These changes modernize the Android build toolchain and ensure compatibility with the latest development tools.
2025-02-09network: Fix 0.0 FPS bug on Android (Part 2)Zephyron
- Add network interface enumeration support for Android - Implement fallback loopback interface when no interfaces are detected - Add ability to force offline mode on critical network errors - Improve socket initialization with better error handling - Add socket state tracking (domain, type, protocol) - Make translation functions static and mark as maybe_unused - Add detailed logging for network initialization failures Part 2 of the Android FPS bug fix focuses on network resilience, particularly handling cases where network initialization fails. Instead of hanging the emulator, it now gracefully falls back to offline mode and provides better diagnostic information.
2025-02-08android: optimize build settings and remove x86_64 supportZephyron
- Enable resource shrinking for release builds - Disable JNI debugging in release builds - Switch to optimized proguard configuration file - Remove x86_64 ABI support - Fix syntax error in dependencies block - Update build optimization flags: * Enable shrinkResources * Use proguard-android-optimize.txt * Disable JNI debugging for release builds These changes improve the release build optimization and reduce APK size by removing x86_64 support and enabling additional resource optimization features. The build configuration is also cleaned up by fixing a syntax error and using more aggressive optimization settings.
2025-02-03android: Reorganize and categorize gradle dependenciesZephyron
Improve organization of app dependencies in build.gradle.kts by grouping them into logical categories: - AndroidX Core & UI components - AndroidX Navigation - AndroidX Lifecycle - AndroidX Other components - Kotlin dependencies - Third party libraries This change makes the dependencies section more maintainable and easier to understand by providing clear visual separation between different types of dependencies. No actual dependency versions were changed. Also fixes minor formatting in runGitCommand function.
2025-02-01feat: Add RAM usage overlay and improve thermal displayZephyron
- Add new RAM usage overlay showing current/max memory usage with color gradient - Simplify thermal overlay to show temperature in C/F with color indication - Add SHOW_RAM_OVERLAY boolean setting (disabled by default in UI) - Set default values for thermal overlay and black backgrounds to true - Update copyright headers to include Citron Emulator Project The RAM overlay displays native heap usage with color gradient from green (low usage) to red (high usage). The thermal display was simplified to show just temperatures while maintaining the color indication based on system thermal status.
2025-02-01Android: Update build configuration for Android 15Zephyron
Update build configuration to support Android 15 (API 35) devices and optimize build settings for better compatibility.
2025-01-30android: Fix non-scrollable legal disclaimer on setupvampiric_x
2025-01-28ui: Update repository URLs to git.citron-emu.orgZephyron
Updates all GitHub repository URLs to point to the new self-hosted Git instance at git.citron-emu.org. This includes: - Links in the About dialog UI and translations - Android app string resources - Documentation/wiki links - Source code comments The website URL (citron-emu.org) and support links remain unchanged.
2025-01-27android: Update Gradle and Java version requirementsZephyron
Updates Android build configuration to use newer versions: - Upgrade Java/JVM target from 17 to 21 - Update Android Gradle Plugin from 8.1.2 to 8.8.0 These changes modernize the Android build system to use the latest LTS version of Java and the most recent stable Android Gradle Plugin. This enables access to newer language features and build optimizations while maintaining compatibility with modern Android development tools.
2025-01-17android: Fix battery temperature reading in EmulationFragmentZephyron
Replaces the battery temperature reading implementation with a more compatible approach using ACTION_BATTERY_CHANGED broadcast intent. This change provides better backwards compatibility and adds proper error handling for the temperature reading functionality.
2025-01-17shader_recompiler: Add stubs for CSM/FCSM flow test conditionsZephyron
Add stub implementations for previously unhandled flow test conditions in the shader recompiler's IR emitter. These conditions were previously throwing "Not Implemented" exceptions when encountered. The following flow test cases are now stubbed: - FCSM_TR (Fragment Shader Coarse/Fine Mode Test and Reject) - CSM_TA (Coarse/Fine Mode Test Accept) - CSM_TR (Coarse/Fine Mode Test and Reject) - CSM_MX (Coarse/Fine Mode Maximum) - FCSM_TA (Fragment Shader Coarse/Fine Mode Test Accept) - FCSM_MX (Fragment Shader Coarse/Fine Mode Maximum) Currently these stubs: 1. Return false (ir.Imm1(false)) as a placeholder value 2. Log a warning message indicating the stub 3. Allow shaders using these conditions to compile rather than fail This is a step toward proper implementation of coarse/fine mode shader operations. The stubs prevent crashes while making it clear which code paths need full implementation. Technical notes: - Removed the previous FCSM_TR implementation that used flag operations - Added consistent warning messages for tracking stub usage - Kept within the existing GetFlowTest switch statement structure
2025-01-17Downgrade Android SDK and build toolsZephyron
- Reduce compileSdkVersion and targetSdk from 35 to 34 - Change NDK version to 26.1.10909125 - Downgrade Android Gradle Plugin from 8.8.0 to 8.1.2 - Add androidx.constraintlayout dependency These changes improve compatibility with current Android development environment and add necessary layout support.
2025-01-16android: Add USE_AUTO_STUB settingZephyron
Implements the USE_AUTO_STUB setting in the Android frontend: - Added USE_AUTO_STUB to BooleanSetting enum - Added UI switch setting with description in SettingsItem - Added setting to system settings section in SettingsFragmentPresenter - Added string resources for setting title and description The setting allows users to toggle automatic stubbing of missing services and functions, which may improve compatibility at the cost of stability.
2025-01-15feat: Improve thermal display and build systemZephyron
- Replace emoji thermal indicators with modern progress bar UI - Switch temperature source to battery sensor for better accuracy - Adjust temperature thresholds (30°C-45°C range) - Add automatic Vulkan Validation Layer download for Android - Downgrade Java/Kotlin target to 17 for wider compatibility The thermal display now shows a visual progress bar with percentage instead of emojis, making it easier to gauge system temperature at a glance. Temperature reading now comes from the battery sensor which is more reliable across devices. Build system improvements include automated VVL binary downloads and installation for Android builds when CITRON_DOWNLOAD_ANDROID_VVL is enabled. Java target downgraded to 17 to ensure compatibility with current Android toolchain.
2025-01-14Revert incorrect copyright attribution for non-contributed filesZephyron
- In commit b3facaa6bb30cdc39f2b7d632fef1e3bfeee7785, the copyright header was updated to include "Citron Homebrew Project" across multiple files, regardless of whether any contributions were made. - This commit removes the incorrect attribution and reverts the copyright header to its previous state. - Copyright attribution should only be added when meaningful contributions have been made to the file. - This commit ensures proper compliance with copyright standards and maintains correct attribution to the respective contributors. - Special thanks to Tachi for pointing out the need for these corrections and ensuring that proper attribution practices are followed.
2025-01-13Android: Update dependencies and improve UI feedbackZephyron
- Update Kotlin and various AndroidX dependencies to stable versions - Add temperature monitoring with color-coded display in emulation - Add FPS color indication (red to green based on performance) - Add legal disclaimer page to initial setup - Remove x86_64 ABI filter to focus on arm64-v8a - Adjust thermal and FPS update intervals for consistency - Clean up redundant dependency declarations The temperature display now shows both Celsius and Fahrenheit with color coding based on safe operating ranges [WIP]. FPS counter provides visual feedback through colors, making performance issues more immediately apparent to users.
2025-01-13Android: Update build system and dependenciesZephyron
- Update Gradle from 8.1 to 8.10.2 - Update Android Gradle Plugin from 8.1.2 to 8.8.0 - Update Kotlin from 1.9.20 to 2.1.20-Beta1 - Update various AndroidX dependencies to latest versions - Update NDK from 26.1 to 27.2 (with RC1/RC2 options commented) - Update Java target from 17 to 21 - Update Android target SDK from 34 to 35 - Enable additional optimizations in release builds: - Enable shrinkResources - Use proguard-android-optimize.txt - Disable JNI debugging - Replace vector drawables with PNG for ic_citron - Comment out unused ComputeInline constant in dma_pusher.cpp - Update Gradle wrapper and configuration files This updates the Android build system and dependencies to their latest versions while enabling additional optimizations for release builds. The ic_citron icon was converted from vector to PNG format for better compatibility.
2024-12-31chore: update project references and add Citron copyrightZephyron
- Replaced all references to the old project name with Citron. - Added Citron copyright information alongside existing notices in all files.
2024-12-31chore: update project branding to CitronZephyron
2024-12-31chore: update project branding to citronZephyron
2024-03-01Revert arbaic translationPengfei Zhu
2024-03-01Remove trailing whitespacesPengfei Zhu
2024-03-01Update translations (2024-03-01)The yuzu Community
2024-02-23Merge pull request #13073 from FearlessTobi/fsp-srv-ipcliamwhite
fsp: Migrate remaining interfaces to cmif serialization
2024-02-21Merge pull request #13105 from t895/connection-fixliamwhite
android: Misc controller fixes
2024-02-21android: Connect controllers with supported stylest895
If you tried to connect a controller that was previously configured with an unsupported style for your game, when you try to connect that controller, it will immediately disconnect. This ensures that the controller that is being connected will be changed to the first supported style index before being connected.
2024-02-21android: Add additional check for hasMappingt895
Controls can have no mapping if they are either "[empty]" or and empty string. This was causing an issue if you reset mapping on all controllers and then tried to play a game. The check to determine whether auto mapping was required would fail and leave you will no mapped controllers. This feels a bit like user error but it smooths things out if you forget so I see it as necessary.
2024-02-21android: Enable all controller styles on emulation shutdownt895
2024-02-20android: Fix extra stick setting default valuest895
The default value was accidentally hardcoded for all extra stick settings
2024-02-20android: Expose device name settingt895
2024-02-20android: Add StringInputSetting settings itemt895
2024-02-19Merge pull request #13086 from t895/clear-button-fixliamwhite
android: Fix broken clear button check
2024-02-19android: Have input overlay follow player 1 style index (#13085)Charles Lombardo
2024-02-19android: Fix broken clear button checkt895
2024-02-19android: Fix overlay visibility reset (#13083)Charles Lombardo
2024-02-19android: Show done button when configuring input overlay (#13082)Charles Lombardo
2024-02-19Address review commentsFearlessTobi
2024-02-19scope_exit: Make constexprFearlessTobi
Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
2024-02-18Merge pull request #13064 from t895/auto-map-failliamwhite
android: Only do first startup automapping if nothing has been mapped
2024-02-18Merge pull request #13065 from t895/cancel-button-failliamwhite
android: Show cancel button for the content install notice
2024-02-18android: Map touches to touchscreent895
I neglected to map touches to the touchscreen when refactoring in the input mapping PR. This fixes that regression.
2024-02-18android: Show cancel button for the content install noticet895
2024-02-18android: Only do first startup automapping if nothing has been mappedt895
2024-02-17android: Create lifecycle utility to simplify common StateFlow operationst895
2024-02-17android: Use extension functions for view visibility and text marqueet895