diff options
| author | Charles Lombardo <clombardo169@gmail.com> | 2023-11-01 01:26:10 -0400 | 
|---|---|---|
| committer | Charles Lombardo <clombardo169@gmail.com> | 2023-11-01 14:41:19 -0400 | 
| commit | 398e8814288cbf71e2620ff22648d3002f7908b6 (patch) | |
| tree | fab934d5340a3ebc6c9e3e0f8f162cbcd462e3df | |
| parent | 92418e909f7bb3d2c199b9392304f4bd1dea65bc (diff) | |
android: Adjust log lifecycle
Now logging will start when the frontend starts like qt does. This also adjusts the share log button to follow where we share the current log if we just returned from a game or return the old log if we haven't started a game yet.
4 files changed, 30 insertions, 10 deletions
| diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index f37875ffe..da98d4ef5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt @@ -47,6 +47,7 @@ import org.yuzu.yuzu_emu.model.EmulationViewModel  import org.yuzu.yuzu_emu.model.Game  import org.yuzu.yuzu_emu.utils.ForegroundService  import org.yuzu.yuzu_emu.utils.InputHandler +import org.yuzu.yuzu_emu.utils.Log  import org.yuzu.yuzu_emu.utils.MemoryUtil  import org.yuzu.yuzu_emu.utils.NfcReader  import org.yuzu.yuzu_emu.utils.ThemeHelper @@ -80,6 +81,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {      }      override fun onCreate(savedInstanceState: Bundle?) { +        Log.gameLaunched = true          ThemeHelper.setTheme(this)          super.onCreate(savedInstanceState) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt index 6e19fc6c0..8ed4b482e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt @@ -42,6 +42,7 @@ import org.yuzu.yuzu_emu.model.HomeViewModel  import org.yuzu.yuzu_emu.ui.main.MainActivity  import org.yuzu.yuzu_emu.utils.FileUtil  import org.yuzu.yuzu_emu.utils.GpuDriverHelper +import org.yuzu.yuzu_emu.utils.Log  class HomeSettingsFragment : Fragment() {      private var _binding: FragmentHomeSettingsBinding? = null @@ -312,19 +313,32 @@ class HomeSettingsFragment : Fragment() {          }      } +    // Share the current log if we just returned from a game but share the old log +    // if we just started the app and the old log exists.      private fun shareLog() { -        val file = DocumentFile.fromSingleUri( +        val currentLog = DocumentFile.fromSingleUri(              mainActivity,              DocumentsContract.buildDocumentUri(                  DocumentProvider.AUTHORITY,                  "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"              )          )!! -        if (file.exists()) { -            val intent = Intent(Intent.ACTION_SEND) -                .setDataAndType(file.uri, FileUtil.TEXT_PLAIN) -                .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) -                .putExtra(Intent.EXTRA_STREAM, file.uri) +        val oldLog = DocumentFile.fromSingleUri( +            mainActivity, +            DocumentsContract.buildDocumentUri( +                DocumentProvider.AUTHORITY, +                "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt.old.txt" +            ) +        )!! + +        val intent = Intent(Intent.ACTION_SEND) +            .setDataAndType(currentLog.uri, FileUtil.TEXT_PLAIN) +            .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) +        if (!Log.gameLaunched && oldLog.exists()) { +            intent.putExtra(Intent.EXTRA_STREAM, oldLog.uri) +            startActivity(Intent.createChooser(intent, getText(R.string.share_log))) +        } else if (currentLog.exists()) { +            intent.putExtra(Intent.EXTRA_STREAM, currentLog.uri)              startActivity(Intent.createChooser(intent, getText(R.string.share_log)))          } else {              Toast.makeText( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt index 1d3c7dce3..fb682c344 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt @@ -4,6 +4,9 @@  package org.yuzu.yuzu_emu.utils  object Log { +    // Tracks whether we should share the old log or the current log +    var gameLaunched = false +      external fun debug(message: String)      external fun warning(message: String) diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 0e458df38..294e41045 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -248,6 +248,11 @@ void EmulationSession::ConfigureFilesystemProvider(const std::string& filepath)  }  void EmulationSession::InitializeSystem() { +    // Initialize logging system +    Common::Log::Initialize(); +    Common::Log::SetColorConsoleBackendEnabled(true); +    Common::Log::Start(); +      // Initialize filesystem.      m_system.SetFilesystem(m_vfs);      m_system.GetUserChannel().clear(); @@ -462,10 +467,6 @@ void EmulationSession::OnEmulationStopped(Core::SystemResultStatus result) {  }  static Core::SystemResultStatus RunEmulation(const std::string& filepath) { -    Common::Log::Initialize(); -    Common::Log::SetColorConsoleBackendEnabled(true); -    Common::Log::Start(); -      MicroProfileOnThreadCreate("EmuThread");      SCOPE_EXIT({ MicroProfileShutdown(); }); | 
