Added Logcat main menu item
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user