diff options
author | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-02-24 11:59:17 -0800 |
---|---|---|
committer | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-02-24 11:59:17 -0800 |
commit | a08328403be84d85c006f801169a3feed0d956a4 (patch) | |
tree | ceebece6443a3e6662a4937b911c58904bb5b1ff /app/src/main/java/moe/yuuta/workmode/Setup.kt | |
download | WorkMode-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.kt | 64 |
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 |