aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/workmode/Setup.kt
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-24 11:59:17 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-24 11:59:17 -0800
commita08328403be84d85c006f801169a3feed0d956a4 (patch)
treeceebece6443a3e6662a4937b911c58904bb5b1ff /app/src/main/java/moe/yuuta/workmode/Setup.kt
downloadWorkMode-a08328403be84d85c006f801169a3feed0d956a4.tar
WorkMode-a08328403be84d85c006f801169a3feed0d956a4.tar.gz
WorkMode-a08328403be84d85c006f801169a3feed0d956a4.tar.bz2
WorkMode-a08328403be84d85c006f801169a3feed0d956a4.zip
First Commit
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/Setup.kt')
-rw-r--r--app/src/main/java/moe/yuuta/workmode/Setup.kt64
1 files changed, 64 insertions, 0 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/Setup.kt b/app/src/main/java/moe/yuuta/workmode/Setup.kt
new file mode 100644
index 0000000..fd75ff0
--- /dev/null
+++ b/app/src/main/java/moe/yuuta/workmode/Setup.kt
@@ -0,0 +1,64 @@
+package moe.yuuta.workmode
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import androidx.core.content.FileProvider
+import com.elvishew.xlog.LogConfiguration
+import com.elvishew.xlog.LogUtils
+import com.elvishew.xlog.XLog
+import com.elvishew.xlog.interceptor.BlacklistTagsFilterInterceptor
+import com.elvishew.xlog.printer.AndroidPrinter
+import com.elvishew.xlog.printer.file.FilePrinter
+import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy
+import moe.yuuta.workmode.utils.Utils
+import java.io.File
+import java.text.SimpleDateFormat
+import java.util.*
+
+object Setup {
+ fun getLogsPath(context: Context): File =
+ File(context.applicationContext.dataDir.absolutePath + "/logs")
+
+ fun initLogs(logsPath: String) {
+ val config = LogConfiguration.Builder()
+ .tag("WorkMode")
+ .addInterceptor(BlacklistTagsFilterInterceptor("FCore"))
+ .addObjectFormatter(Bundle::class.java) {
+ return@addObjectFormatter Utils.dumpExtras(it)
+ }
+ .build()
+
+ val androidPrinter = AndroidPrinter()
+ val filePrinter = FilePrinter
+ .Builder(logsPath)
+ .cleanStrategy(FileLastModifiedCleanStrategy(1000 * 60 * 60 * 24 * 5))
+ .build()
+
+ XLog.init(config, androidPrinter, filePrinter)
+ }
+
+ internal fun buildShareLogsIntent(context: Context): Intent {
+ val zipFile = File("${context.externalCacheDir.absolutePath}/logs/logs-" +
+ "${SimpleDateFormat("yyyy-mm-dd-H-m-s", Locale.US).format(Date())}.zip")
+ LogUtils.compress(Setup.getLogsPath(context).absolutePath,
+ zipFile.absolutePath)
+ val fileUri = FileProvider.getUriForFile(
+ context,
+ BuildConfig.APPLICATION_ID + ".fileprovider",
+ zipFile)
+ if (fileUri == null || !zipFile.exists()) {
+ throw NullPointerException()
+ }
+ val intent = Intent()
+ intent.action = Intent.ACTION_SEND
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
+ var type = context.contentResolver.getType(fileUri)
+ if (type == null || type.trim().equals("")) {
+ type = "application/zip"
+ }
+ intent.type = type
+ intent.putExtra(Intent.EXTRA_STREAM, fileUri)
+ return intent
+ }
+} \ No newline at end of file