From 59c80313722a7b264572a412349366aab95617c0 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Mon, 15 Jun 2020 08:27:48 -0500 Subject: [PATCH] Minor style changes --- .../isoron/androidbase/AndroidBugReporter.kt | 54 +++++++++---------- .../isoron/androidbase/AndroidDirFinder.kt | 11 ++-- .../androidbase/BaseExceptionHandler.kt | 27 ++++------ .../isoron/androidbase/SSLContextProvider.kt | 39 +++++++------- 4 files changed, 58 insertions(+), 73 deletions(-) diff --git a/android/android-base/src/main/java/org/isoron/androidbase/AndroidBugReporter.kt b/android/android-base/src/main/java/org/isoron/androidbase/AndroidBugReporter.kt index e49a6eb55..ea013ceef 100644 --- a/android/android-base/src/main/java/org/isoron/androidbase/AndroidBugReporter.kt +++ b/android/android-base/src/main/java/org/isoron/androidbase/AndroidBugReporter.kt @@ -38,52 +38,46 @@ open class AndroidBugReporter @Inject constructor(@AppContext private val contex */ @Throws(IOException::class) fun getBugReport(): String { - val logcat = logcat - val deviceInfo = getDeviceInfo() var log = "---------- BUG REPORT BEGINS ----------\n" - log += """ - $deviceInfo - $logcat - """.trimIndent() + log += "${getLogcat()}\n" + log += "${getDeviceInfo()}\n" log += "---------- BUG REPORT ENDS ------------\n" return log } - @get:Throws(IOException::class) - val logcat: String - get() { - val maxLineCount = 250 - val builder = StringBuilder() - val command = arrayOf("logcat", "-d") - val process = Runtime.getRuntime().exec(command) - val inputReader = InputStreamReader(process.inputStream) - val bufferedReader = BufferedReader(inputReader) - val log = LinkedList() - var line: String - while (bufferedReader.readLine().also { line = it } != null) { - log.addLast(line) - if (log.size > maxLineCount) log.removeFirst() - } - for (l in log) { - builder.appendln(l) - } - return builder.toString() + @Throws(IOException::class) + fun getLogcat(): String { + val maxLineCount = 250 + val builder = StringBuilder() + val process = Runtime.getRuntime().exec(arrayOf("logcat", "-d")) + val inputReader = InputStreamReader(process.inputStream) + val bufferedReader = BufferedReader(inputReader) + val log = LinkedList() + var line: String? + while (true) { + line = bufferedReader.readLine() + if (line == null) break; + log.addLast(line) + if (log.size > maxLineCount) log.removeFirst() + } + for (l in log) { + builder.appendln(l) } + return builder.toString() + } /** * Captures a bug report and saves it to a file in the SD card. * - * - * The contents of the file are generated by the method [ ][.getBugReport]. The file is saved in the apps's external private - * storage. + * The contents of the file are generated by the method [ ][.getBugReport]. The file is saved + * in the apps's external private storage. * * @return the generated file. * @throws IOException when I/O errors occur. */ fun dumpBugReportToFile() { try { - val date = SimpleDateFormat("yyyy-MM-dd HHmmss", Locale.US).format( - Date()) + val date = SimpleDateFormat("yyyy-MM-dd HHmmss", Locale.US).format(Date()) val dir = AndroidDirFinder(context).getFilesDir("Logs") ?: throw IOException("log dir should not be null") val logFile = File(String.format("%s/Log %s.txt", dir.path, date)) diff --git a/android/android-base/src/main/java/org/isoron/androidbase/AndroidDirFinder.kt b/android/android-base/src/main/java/org/isoron/androidbase/AndroidDirFinder.kt index f8c13ebe4..9dbeeeb65 100644 --- a/android/android-base/src/main/java/org/isoron/androidbase/AndroidDirFinder.kt +++ b/android/android-base/src/main/java/org/isoron/androidbase/AndroidDirFinder.kt @@ -25,9 +25,10 @@ import java.io.File import javax.inject.Inject class AndroidDirFinder @Inject constructor(@param:AppContext private val context: Context) { - fun getFilesDir(relativePath: String?): File? = - FileUtils.getDir( - ContextCompat.getExternalFilesDirs(context, null), - relativePath - ) + fun getFilesDir(relativePath: String?): File? { + return FileUtils.getDir( + ContextCompat.getExternalFilesDirs(context, null), + relativePath + ) + } } \ No newline at end of file diff --git a/android/android-base/src/main/java/org/isoron/androidbase/BaseExceptionHandler.kt b/android/android-base/src/main/java/org/isoron/androidbase/BaseExceptionHandler.kt index 8c8342146..c6907f3ec 100644 --- a/android/android-base/src/main/java/org/isoron/androidbase/BaseExceptionHandler.kt +++ b/android/android-base/src/main/java/org/isoron/androidbase/BaseExceptionHandler.kt @@ -22,25 +22,18 @@ import org.isoron.androidbase.activities.BaseActivity class BaseExceptionHandler(private val activity: BaseActivity) : Thread.UncaughtExceptionHandler { - private val originalHandler: Thread.UncaughtExceptionHandler? = Thread.getDefaultUncaughtExceptionHandler() + private val originalHandler: Thread.UncaughtExceptionHandler? = + Thread.getDefaultUncaughtExceptionHandler() override fun uncaughtException(thread: Thread?, ex: Throwable?) { - ex?.let { ex -> - try { - ex.printStackTrace() - AndroidBugReporter(activity).dumpBugReportToFile() - } catch (e: Exception) { - e.printStackTrace() - } - -// if (ex.cause is InconsistentDatabaseException) { -// val app = activity.application as HabitsApplication -// val habits = app.getComponent().getHabitList() -// habits.repair() -// System.exit(0) -// } - - originalHandler?.uncaughtException(thread, ex) + if (ex == null) return + if (thread == null) return + try { + ex.printStackTrace() + AndroidBugReporter(activity).dumpBugReportToFile() + } catch (e: Exception) { + e.printStackTrace() } + originalHandler?.uncaughtException(thread, ex) } } \ No newline at end of file diff --git a/android/android-base/src/main/java/org/isoron/androidbase/SSLContextProvider.kt b/android/android-base/src/main/java/org/isoron/androidbase/SSLContextProvider.kt index 315e08596..797d6c93d 100644 --- a/android/android-base/src/main/java/org/isoron/androidbase/SSLContextProvider.kt +++ b/android/android-base/src/main/java/org/isoron/androidbase/SSLContextProvider.kt @@ -26,26 +26,23 @@ import javax.net.ssl.SSLContext import javax.net.ssl.TrustManagerFactory class SSLContextProvider @Inject constructor(@param:AppContext private val context: Context) { - fun getCACertSSLContext(): SSLContext = - try { - val ca = CertificateFactory.getInstance("X.509") - .let { cf -> - context.assets.open("cacert.pem") - .use { caInput -> - cf.generateCertificate(caInput) - } - } - val ks = KeyStore.getInstance(KeyStore.getDefaultType()) - .apply { - load(null, null) - setCertificateEntry("ca", ca) - } - val tmf = - TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) - .apply { init(ks) } - SSLContext.getInstance("TLS") - .apply { init(null, tmf.trustManagers, null) } - } catch (e: Exception) { - throw RuntimeException(e) + fun getCACertSSLContext(): SSLContext { + try { + val cf = CertificateFactory.getInstance("X.509") + val ca = cf.generateCertificate(context.assets.open("cacert.pem")) + val ks = KeyStore.getInstance(KeyStore.getDefaultType()).apply { + load(null, null) + setCertificateEntry("ca", ca) } + val alg = TrustManagerFactory.getDefaultAlgorithm() + val tmf = TrustManagerFactory.getInstance(alg).apply { + init(ks) + } + return SSLContext.getInstance("TLS").apply { + init(null, tmf.trustManagers, null) + } + } catch (e: Exception) { + throw RuntimeException(e) + } + } } \ No newline at end of file