Added Logcat main menu item

This commit is contained in:
Juha Heinanen
2024-10-30 12:37:09 +02:00
parent 7486c117fd
commit 20533a90fc
4 changed files with 45 additions and 1 deletions
@@ -90,6 +90,7 @@ class MainActivity : AppCompatActivity() {
private lateinit var configRequest: ActivityResultLauncher<Intent> private lateinit var configRequest: ActivityResultLauncher<Intent>
private lateinit var backupRequest: ActivityResultLauncher<Intent> private lateinit var backupRequest: ActivityResultLauncher<Intent>
private lateinit var restoreRequest: ActivityResultLauncher<Intent> private lateinit var restoreRequest: ActivityResultLauncher<Intent>
private lateinit var logcatRequest: ActivityResultLauncher<Intent>
private lateinit var contactsRequest: ActivityResultLauncher<Intent> private lateinit var contactsRequest: ActivityResultLauncher<Intent>
private lateinit var callsRequest: ActivityResultLauncher<Intent> private lateinit var callsRequest: ActivityResultLauncher<Intent>
private lateinit var comDevChangedListener: AudioManager.OnCommunicationDeviceChangedListener private lateinit var comDevChangedListener: AudioManager.OnCommunicationDeviceChangedListener
@@ -615,6 +616,24 @@ class MainActivity : AppCompatActivity() {
} }
} }
logcatRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == Activity.RESULT_OK)
it.data?.data?.also { uri ->
try {
val out = contentResolver.openOutputStream(uri)
val process = Runtime.getRuntime().exec("logcat -d --pid=${Process.myPid()}")
val bufferedReader = process.inputStream.bufferedReader()
bufferedReader.forEachLine { line ->
out!!.write(line.toByteArray())
out.write('\n'.code.toByte().toInt())
}
out!!.close()
} catch (e: Exception) {
Log.e(TAG, "Failed to write logcat to file")
}
}
}
swipeRefresh.setOnTouchListener(object : OnSwipeTouchListener(this@MainActivity) { swipeRefresh.setOnTouchListener(object : OnSwipeTouchListener(this@MainActivity) {
override fun onSwipeLeft() { override fun onSwipeLeft() {
@@ -1320,6 +1339,12 @@ class MainActivity : AppCompatActivity() {
exitProcess(0) exitProcess(0)
} }
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
if (Build.VERSION.SDK_INT >= 29)
menu.findItem(R.id.logcat).setVisible(true)
return super.onPrepareOptionsMenu(menu)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.main_menu, menu) menuInflater.inflate(R.menu.main_menu, menu)
@@ -1464,6 +1489,11 @@ class MainActivity : AppCompatActivity() {
} }
} }
R.id.logcat -> {
if (Build.VERSION.SDK_INT >= 29)
pickupFileFromDownloads("logcat")
}
R.id.about -> { R.id.about -> {
startActivity(Intent(this, AboutActivity::class.java)) startActivity(Intent(this, AboutActivity::class.java))
} }
@@ -1494,6 +1524,15 @@ class MainActivity : AppCompatActivity() {
putExtra(DocumentsContract.EXTRA_INITIAL_URI, MediaStore.Downloads.EXTERNAL_CONTENT_URI) putExtra(DocumentsContract.EXTRA_INITIAL_URI, MediaStore.Downloads.EXTERNAL_CONTENT_URI)
}) })
} }
"logcat" -> {
logcatRequest.launch(Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "text/plain"
putExtra(Intent.EXTRA_TITLE, "baresip_logcat_" +
SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.getDefault()).format(Date()))
putExtra(DocumentsContract.EXTRA_INITIAL_URI, MediaStore.Downloads.EXTERNAL_CONTENT_URI)
})
}
} }
} }
@@ -62,7 +62,7 @@ open class OnSwipeTouchListener(ctx: Context) : View.OnTouchListener {
} }
} catch (e: Exception) { } catch (e: Exception) {
Log.e(TAG, "onFling exception $e") Log.e(TAG, "onFling exception $e")
e.printStackTrace() // e.printStackTrace()
} }
return result return result
} }
+4
View File
@@ -15,6 +15,10 @@
<item android:id="@+id/restore" <item android:id="@+id/restore"
android:title="@string/restore" /> android:title="@string/restore" />
<item android:id="@+id/logcat"
android:visible="false"
android:title="@string/logcat" />
<item android:id="@+id/restart" <item android:id="@+id/restart"
android:title="@string/restart" /> android:title="@string/restart" />
+1
View File
@@ -455,6 +455,7 @@
<!-- Main Activity --> <!-- Main Activity -->
<string name="backup">Backup</string> <string name="backup">Backup</string>
<string name="restore">Restore</string> <string name="restore">Restore</string>
<string name="logcat" translatable="false">Logcat</string>
<string name="about">About</string> <string name="about">About</string>
<string name="restart">Restart</string> <string name="restart">Restart</string>
<string name="quit">Quit</string> <string name="quit">Quit</string>