diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt index eb023627e..cb30a2918 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/CoreApp.kt @@ -74,16 +74,15 @@ abstract class CoreApp : Application() { override fun onCreate() { super.onCreate() instance = this - fileLogger = FileLogger() coreComponent = DaggerCoreComponent.builder() .context(this) .build() AndroidThreeTen.init(this) - fileLogger.writeLogFile(this) coreComponent.inject(this) kiwixDatabase.forceMigration() downloadMonitor.init() nightModeConfig.init() + fileLogger.writeLogFile(this) configureStrictMode() } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.java index 4f4253f62..02e8e6e97 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/error/ErrorActivity.java @@ -23,6 +23,7 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.util.Log; import android.widget.Button; import android.widget.CheckBox; import androidx.core.content.ContextCompat; @@ -46,6 +47,7 @@ import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDis import org.kiwix.kiwixmobile.zim_manager.MountInfo; import org.kiwix.kiwixmobile.zim_manager.MountPointProducer; +import static androidx.core.content.FileProvider.getUriForFile; import static org.kiwix.kiwixmobile.core.utils.LanguageUtils.getCurrentLocale; public class ErrorActivity extends BaseActivity { @@ -94,7 +96,6 @@ public class ErrorActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_kiwix_error); - fileLogger = new FileLogger(); Intent callingIntent = getIntent(); Bundle extras = callingIntent.getExtras(); @@ -114,10 +115,12 @@ public class ErrorActivity extends BaseActivity { String body = getBody(); + if (allowLogsCheckbox.isChecked()) { File file = fileLogger.writeLogFile(this); - Uri path = FileProvider.getUriForFile(this, - getApplicationContext().getPackageName() + ".fileProvider", file); + Log.d("SEARCHING.....", "onCreate: Searching @ "+ getPackageName()+ " .fileProvider"+ file); + Uri path = getUriForFile(this, + getPackageName() + ".fileProvider", file); emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); emailIntent.putExtra(Intent.EXTRA_STREAM, path); } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileLogger.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileLogger.kt index 6a21c2f66..eae54c1c1 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileLogger.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileLogger.kt @@ -38,26 +38,34 @@ class FileLogger @Inject constructor() { Environment.MEDIA_MOUNTED == Environment.getExternalStorageState() fun writeLogFile(context: Context): File { - val logFile = File(context.filesDir, fileName) - Log.d("KIWIX", "Writing all logs into [" + logFile.path + "]") - if (logFile.exists() && logFile.isFile) { + // this creates a new folder in private storage with name: logs + val logDir = File(context.filesDir, "logs") + val logFile = File(logDir, fileName) + + Log.d("KIWIX", "Writing all logs into [" + logDir.path + "]") + + if (!logDir.exists()) { + logDir.mkdir() + } + if (logDir.exists() && logFile.isFile) { Log.d(TAG, "writeLogFile: Deleting preExistingFile") logFile.delete() } // clear the previous logcat and then write the new one to the file try { - logFile.createNewFile() + logDir.createNewFile() Runtime.getRuntime().exec("logcat -c") Runtime.getRuntime().exec("logcat -f $logFile -s kiwix") Log.d(TAG, "writeLogFile: Log report written Successfully!") + Log.d(TAG, "writeLogFile: Authored report to $logFile") } catch (e: IOException) { - Log.e("KIWIX", "Error while writing logcat.txt", e) + Log.e("KIWIX", "Error while writing $fileName! ", e) } return logFile } companion object { - private const val TAG: String = "FileLogger" + private const val TAG = "FileLogger" private val fileName = "logs" + currentTimeMillis() + ".txt" } } diff --git a/core/src/main/res/xml/provider_paths.xml b/core/src/main/res/xml/provider_paths.xml index 402a2010f..4795b19b2 100644 --- a/core/src/main/res/xml/provider_paths.xml +++ b/core/src/main/res/xml/provider_paths.xml @@ -6,4 +6,7 @@ +