// Path: app/src/main/java/org/zephyrsoft/trackworktime/util/TinylogAndLogcatLogger.java
// public class TinylogAndLogcatLogger implements ACRALog {
//     @Override
//     public int v(String tag, String msg) {
//         Logger.trace(msg);
//         return Log.v(tag, msg);
//     }
//     @Override
//     public int v(String tag, String msg, Throwable tr) {
//         Logger.trace(tr, msg);
//         return Log.v(tag, msg, tr);
//     }
//     @Override
//     public int d(String tag, String msg) {
//         Logger.debug(msg);
//         return Log.d(tag, msg);
//     }
//     @Override
//     public int d(String tag, String msg, Throwable tr) {
//         Logger.debug(tr, msg);
//         return Log.d(tag, msg, tr);
//     }
//     @Override
//     public int i(String tag, String msg) {
//         Logger.info(msg);
//         return Log.i(tag, msg);
//     }
//     @Override
//     public int i(String tag, String msg, Throwable tr) {
//         Logger.info(tr, msg);
//         return Log.i(tag, msg, tr);
//     }
//     @Override
//     public int w(String tag, String msg) {
//         Logger.warn(msg);
//         return Log.w(tag, msg);
//     }
//     @Override
//     public int w(String tag, String msg, Throwable tr) {
//         Logger.warn(tr, msg);
//         return Log.w(tag, msg, tr);
//     }
//     @Override
//     public int w(String tag, Throwable tr) {
//         Logger.warn(tr);
//         return Log.w(tag, tr);
//     }
//     @Override
//     public int e(String tag, String msg) {
//         Logger.error(msg);
//         return Log.e(tag, msg);
//     }
//     @Override
//     public int e(String tag, String msg, Throwable tr) {
//         Logger.error(tr, msg);
//         return Log.e(tag, msg, tr);
//     }
//     @Override
//     public String getStackTraceString(Throwable tr) {
//         return Log.getStackTraceString(tr);
//     }
// }


import static org.acra.ReportField.ANDROID_VERSION;
import static org.acra.ReportField.APP_VERSION_CODE;
import static org.acra.ReportField.APP_VERSION_NAME;
import static org.acra.ReportField.BRAND;
import static org.acra.ReportField.CRASH_CONFIGURATION;
import static org.acra.ReportField.INSTALLATION_ID;
import static org.acra.ReportField.LOGCAT;
import static org.acra.ReportField.PACKAGE_NAME;
import static org.acra.ReportField.PHONE_MODEL;
import static org.acra.ReportField.PRODUCT;
import static org.acra.ReportField.REPORT_ID;
import static org.acra.ReportField.SHARED_PREFERENCES;
import static org.acra.ReportField.STACK_TRACE;
import static org.acra.ReportField.USER_APP_START_DATE;
import static org.acra.ReportField.USER_CRASH_DATE;
import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
import androidx.work.ExistingPeriodicWorkPolicy;
import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager;
import com.jakewharton.threetenabp.AndroidThreeTen;
import org.acra.ACRA;
import org.acra.config.CoreConfigurationBuilder;
import org.acra.config.DialogConfigurationBuilder;
import org.acra.config.HttpSenderConfigurationBuilder;
import org.acra.data.StringFormat;
import org.acra.sender.HttpSender;
import org.pmw.tinylog.Logger;
import org.zephyrsoft.trackworktime.util.TinylogAndLogcatLogger;
import java.util.concurrent.TimeUnit;

			name = getString(R.string.serviceChannelName);
			description = getString(R.string.serviceChannelDescription);
			importance = NotificationManager.IMPORTANCE_LOW;
			serviceNotificationChannel = new NotificationChannel(name, name, importance);
			serviceNotificationChannel.setDescription(description);
			notificationManager.createNotificationChannel(serviceNotificationChannel);
		}

		CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this)
				.withBuildConfigClass(BuildConfig.class)
				.withReportFormat(StringFormat.JSON)
				.withReportContent(ANDROID_VERSION, APP_VERSION_CODE, APP_VERSION_NAME,
						BRAND, CRASH_CONFIGURATION, INSTALLATION_ID, LOGCAT,
						PACKAGE_NAME, PHONE_MODEL, PRODUCT, REPORT_ID, SHARED_PREFERENCES,
						STACK_TRACE, USER_APP_START_DATE, USER_CRASH_DATE)
				.withEnabled(true);

		builder.getPluginConfigurationBuilder(DialogConfigurationBuilder.class)
				.withResTitle(R.string.acraTitle)
				.withResText(R.string.acraText)
				.withResCommentPrompt(R.string.acraCommentPrompt)
				.withEnabled(true);

		builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class)
				.withHttpMethod(HttpSender.Method.POST)
				.withUri("https://crashreport.zephyrsoft.org/")
				.withEnabled(true);

		ACRA.init(this, builder);
// Path: app/src/main/java/org/zephyrsoft/trackworktime/util/TinylogAndLogcatLogger.java
// public class TinylogAndLogcatLogger implements ACRALog {
//     @Override
//     public int v(String tag, String msg) {
//         Logger.trace(msg);
//         return Log.v(tag, msg);
//     }
//     @Override
//     public int v(String tag, String msg, Throwable tr) {
//         Logger.trace(tr, msg);
//         return Log.v(tag, msg, tr);
//     }
//     @Override
//     public int d(String tag, String msg) {
//         Logger.debug(msg);
//         return Log.d(tag, msg);
//     }
//     @Override
//     public int d(String tag, String msg, Throwable tr) {
//         Logger.debug(tr, msg);
//         return Log.d(tag, msg, tr);
//     }
//     @Override
//     public int i(String tag, String msg) {
//         Logger.info(msg);
//         return Log.i(tag, msg);
//     }
//     @Override
//     public int i(String tag, String msg, Throwable tr) {
//         Logger.info(tr, msg);
//         return Log.i(tag, msg, tr);
//     }
//     @Override
//     public int w(String tag, String msg) {
//         Logger.warn(msg);
//         return Log.w(tag, msg);
//     }
//     @Override
//     public int w(String tag, String msg, Throwable tr) {
//         Logger.warn(tr, msg);
//         return Log.w(tag, msg, tr);
//     }
//     @Override
//     public int w(String tag, Throwable tr) {
//         Logger.warn(tr);
//         return Log.w(tag, tr);
//     }
//     @Override
//     public int e(String tag, String msg) {
//         Logger.error(msg);
//         return Log.e(tag, msg);
//     }
//     @Override
//     public int e(String tag, String msg, Throwable tr) {
//         Logger.error(tr, msg);
//         return Log.e(tag, msg, tr);
//     }
//     @Override
//     public String getStackTraceString(Throwable tr) {
//         return Log.getStackTraceString(tr);
//     }
// }


// Path: app/src/main/java/org/zephyrsoft/trackworktime/WorkTimeTrackerApplication.java
import static org.acra.ReportField.ANDROID_VERSION;
import static org.acra.ReportField.APP_VERSION_CODE;
import static org.acra.ReportField.APP_VERSION_NAME;
import static org.acra.ReportField.BRAND;
import static org.acra.ReportField.CRASH_CONFIGURATION;
import static org.acra.ReportField.INSTALLATION_ID;
import static org.acra.ReportField.LOGCAT;
import static org.acra.ReportField.PACKAGE_NAME;
import static org.acra.ReportField.PHONE_MODEL;
import static org.acra.ReportField.PRODUCT;
import static org.acra.ReportField.REPORT_ID;
import static org.acra.ReportField.SHARED_PREFERENCES;
import static org.acra.ReportField.STACK_TRACE;
import static org.acra.ReportField.USER_APP_START_DATE;
import static org.acra.ReportField.USER_CRASH_DATE;
import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
import androidx.work.ExistingPeriodicWorkPolicy;
import androidx.work.PeriodicWorkRequest;
import androidx.work.WorkManager;
import com.jakewharton.threetenabp.AndroidThreeTen;
import org.acra.ACRA;
import org.acra.config.CoreConfigurationBuilder;
import org.acra.config.DialogConfigurationBuilder;
import org.acra.config.HttpSenderConfigurationBuilder;
import org.acra.data.StringFormat;
import org.acra.sender.HttpSender;
import org.pmw.tinylog.Logger;
import org.zephyrsoft.trackworktime.util.TinylogAndLogcatLogger;
import java.util.concurrent.TimeUnit;


			name = getString(R.string.serviceChannelName);
			description = getString(R.string.serviceChannelDescription);
			importance = NotificationManager.IMPORTANCE_LOW;
			serviceNotificationChannel = new NotificationChannel(name, name, importance);
			serviceNotificationChannel.setDescription(description);
			notificationManager.createNotificationChannel(serviceNotificationChannel);
		}

		CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this)
				.withBuildConfigClass(BuildConfig.class)
				.withReportFormat(StringFormat.JSON)
				.withReportContent(ANDROID_VERSION, APP_VERSION_CODE, APP_VERSION_NAME,
						BRAND, CRASH_CONFIGURATION, INSTALLATION_ID, LOGCAT,
						PACKAGE_NAME, PHONE_MODEL, PRODUCT, REPORT_ID, SHARED_PREFERENCES,
						STACK_TRACE, USER_APP_START_DATE, USER_CRASH_DATE)
				.withEnabled(true);

		builder.getPluginConfigurationBuilder(DialogConfigurationBuilder.class)
				.withResTitle(R.string.acraTitle)
				.withResText(R.string.acraText)
				.withResCommentPrompt(R.string.acraCommentPrompt)
				.withEnabled(true);

		builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class)
				.withHttpMethod(HttpSender.Method.POST)
				.withUri("https://crashreport.zephyrsoft.org/")
				.withEnabled(true);

		ACRA.init(this, builder);
		ACRA.log = new TinylogAndLogcatLogger();