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 @@
+