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.
This commit is contained in:
parent
92418e909f
commit
398e881428
|
@ -47,6 +47,7 @@ import org.yuzu.yuzu_emu.model.EmulationViewModel
|
||||||
import org.yuzu.yuzu_emu.model.Game
|
import org.yuzu.yuzu_emu.model.Game
|
||||||
import org.yuzu.yuzu_emu.utils.ForegroundService
|
import org.yuzu.yuzu_emu.utils.ForegroundService
|
||||||
import org.yuzu.yuzu_emu.utils.InputHandler
|
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.MemoryUtil
|
||||||
import org.yuzu.yuzu_emu.utils.NfcReader
|
import org.yuzu.yuzu_emu.utils.NfcReader
|
||||||
import org.yuzu.yuzu_emu.utils.ThemeHelper
|
import org.yuzu.yuzu_emu.utils.ThemeHelper
|
||||||
|
@ -80,6 +81,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
Log.gameLaunched = true
|
||||||
ThemeHelper.setTheme(this)
|
ThemeHelper.setTheme(this)
|
||||||
|
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
|
@ -42,6 +42,7 @@ import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
||||||
import org.yuzu.yuzu_emu.utils.FileUtil
|
import org.yuzu.yuzu_emu.utils.FileUtil
|
||||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||||
|
import org.yuzu.yuzu_emu.utils.Log
|
||||||
|
|
||||||
class HomeSettingsFragment : Fragment() {
|
class HomeSettingsFragment : Fragment() {
|
||||||
private var _binding: FragmentHomeSettingsBinding? = null
|
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() {
|
private fun shareLog() {
|
||||||
val file = DocumentFile.fromSingleUri(
|
val currentLog = DocumentFile.fromSingleUri(
|
||||||
mainActivity,
|
mainActivity,
|
||||||
DocumentsContract.buildDocumentUri(
|
DocumentsContract.buildDocumentUri(
|
||||||
DocumentProvider.AUTHORITY,
|
DocumentProvider.AUTHORITY,
|
||||||
"${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
|
"${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
|
||||||
)
|
)
|
||||||
)!!
|
)!!
|
||||||
if (file.exists()) {
|
val oldLog = DocumentFile.fromSingleUri(
|
||||||
val intent = Intent(Intent.ACTION_SEND)
|
mainActivity,
|
||||||
.setDataAndType(file.uri, FileUtil.TEXT_PLAIN)
|
DocumentsContract.buildDocumentUri(
|
||||||
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
DocumentProvider.AUTHORITY,
|
||||||
.putExtra(Intent.EXTRA_STREAM, file.uri)
|
"${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)))
|
startActivity(Intent.createChooser(intent, getText(R.string.share_log)))
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
package org.yuzu.yuzu_emu.utils
|
package org.yuzu.yuzu_emu.utils
|
||||||
|
|
||||||
object Log {
|
object Log {
|
||||||
|
// Tracks whether we should share the old log or the current log
|
||||||
|
var gameLaunched = false
|
||||||
|
|
||||||
external fun debug(message: String)
|
external fun debug(message: String)
|
||||||
|
|
||||||
external fun warning(message: String)
|
external fun warning(message: String)
|
||||||
|
|
|
@ -248,6 +248,11 @@ void EmulationSession::ConfigureFilesystemProvider(const std::string& filepath)
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmulationSession::InitializeSystem() {
|
void EmulationSession::InitializeSystem() {
|
||||||
|
// Initialize logging system
|
||||||
|
Common::Log::Initialize();
|
||||||
|
Common::Log::SetColorConsoleBackendEnabled(true);
|
||||||
|
Common::Log::Start();
|
||||||
|
|
||||||
// Initialize filesystem.
|
// Initialize filesystem.
|
||||||
m_system.SetFilesystem(m_vfs);
|
m_system.SetFilesystem(m_vfs);
|
||||||
m_system.GetUserChannel().clear();
|
m_system.GetUserChannel().clear();
|
||||||
|
@ -462,10 +467,6 @@ void EmulationSession::OnEmulationStopped(Core::SystemResultStatus result) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Core::SystemResultStatus RunEmulation(const std::string& filepath) {
|
static Core::SystemResultStatus RunEmulation(const std::string& filepath) {
|
||||||
Common::Log::Initialize();
|
|
||||||
Common::Log::SetColorConsoleBackendEnabled(true);
|
|
||||||
Common::Log::Start();
|
|
||||||
|
|
||||||
MicroProfileOnThreadCreate("EmuThread");
|
MicroProfileOnThreadCreate("EmuThread");
|
||||||
SCOPE_EXIT({ MicroProfileShutdown(); });
|
SCOPE_EXIT({ MicroProfileShutdown(); });
|
||||||
|
|
||||||
|
|
Reference in New Issue