mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-11-03 21:15:35 +00:00 
			
		
		
		
	Convert CrashReporter to kotlin
This commit is contained in:
		
							parent
							
								
									aee3fad59c
								
							
						
					
					
						commit
						a3383ab477
					
				@ -42,8 +42,7 @@ class InstaGrabberApplication : Application() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private fun setupCrashReporter() {
 | 
					    private fun setupCrashReporter() {
 | 
				
			||||||
        if (BuildConfig.DEBUG) return
 | 
					        if (BuildConfig.DEBUG) return
 | 
				
			||||||
        CrashReporter.get(this).start()
 | 
					        CrashReporter.getInstance(this).start()
 | 
				
			||||||
        // logCollector = new LogCollector(this);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun setupCloseGuard() {
 | 
					    private fun setupCloseGuard() {
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ fun showUpdateDialog(
 | 
				
			|||||||
    mainThread.execute {
 | 
					    mainThread.execute {
 | 
				
			||||||
        MaterialAlertDialogBuilder(context).apply {
 | 
					        MaterialAlertDialogBuilder(context).apply {
 | 
				
			||||||
            setTitle(context.getString(R.string.update_available, version))
 | 
					            setTitle(context.getString(R.string.update_available, version))
 | 
				
			||||||
            setNeutralButton(R.string.skip_update) { dialog: DialogInterface, which: Int ->
 | 
					            setNeutralButton(R.string.skip_update) { dialog: DialogInterface, _: Int ->
 | 
				
			||||||
                Utils.settingsHelper.putString(Constants.SKIPPED_VERSION, version)
 | 
					                Utils.settingsHelper.putString(Constants.SKIPPED_VERSION, version)
 | 
				
			||||||
                dialog.dismiss()
 | 
					                dialog.dismiss()
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,46 +1,40 @@
 | 
				
			|||||||
package awaisomereport;
 | 
					package awaisomereport
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import android.app.Application;
 | 
					import android.app.Application
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					class CrashReporter private constructor(application: Application) : Thread.UncaughtExceptionHandler {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class CrashReporter implements Thread.UncaughtExceptionHandler {
 | 
					    private val crashHandler: CrashHandler?
 | 
				
			||||||
    private static final String TAG = CrashReporter.class.getSimpleName();
 | 
					    private var startAttempted = false
 | 
				
			||||||
 | 
					    private var defaultExceptionHandler: Thread.UncaughtExceptionHandler? = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static CrashReporter reporterInstance;
 | 
					    init {
 | 
				
			||||||
 | 
					        crashHandler = CrashHandler(application)
 | 
				
			||||||
    // private final File crashLogsZip;
 | 
					 | 
				
			||||||
    private final CrashHandler crashHandler;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private boolean startAttempted = false;
 | 
					 | 
				
			||||||
    private Thread.UncaughtExceptionHandler defaultEH;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static CrashReporter get(final Application application) {
 | 
					 | 
				
			||||||
        if (reporterInstance == null) {
 | 
					 | 
				
			||||||
            reporterInstance = new CrashReporter(application);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return reporterInstance;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private CrashReporter(@NonNull final Application application) {
 | 
					    fun start() {
 | 
				
			||||||
        crashHandler = new CrashHandler(application);
 | 
					        if (startAttempted) return
 | 
				
			||||||
        // this.crashLogsZip = new File(application.getExternalCacheDir(), "crash_logs.zip");
 | 
					        defaultExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
 | 
				
			||||||
 | 
					        Thread.setDefaultUncaughtExceptionHandler(this)
 | 
				
			||||||
 | 
					        startAttempted = true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void start() {
 | 
					    override fun uncaughtException(t: Thread, exception: Throwable) {
 | 
				
			||||||
        if (!startAttempted) {
 | 
					 | 
				
			||||||
            defaultEH = Thread.getDefaultUncaughtExceptionHandler();
 | 
					 | 
				
			||||||
            Thread.setDefaultUncaughtExceptionHandler(this);
 | 
					 | 
				
			||||||
            startAttempted = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public void uncaughtException(@NonNull final Thread t, @NonNull final Throwable exception) {
 | 
					 | 
				
			||||||
        if (crashHandler == null) {
 | 
					        if (crashHandler == null) {
 | 
				
			||||||
            defaultEH.uncaughtException(t, exception);
 | 
					            defaultExceptionHandler?.uncaughtException(t, exception)
 | 
				
			||||||
            return;
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        crashHandler.uncaughtException(t, exception, defaultEH);
 | 
					        crashHandler.uncaughtException(t, exception, defaultExceptionHandler ?: return)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					
 | 
				
			||||||
 | 
					    companion object {
 | 
				
			||||||
 | 
					        @Volatile
 | 
				
			||||||
 | 
					        private var INSTANCE: CrashReporter? = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        fun getInstance(application: Application): CrashReporter {
 | 
				
			||||||
 | 
					            return INSTANCE ?: synchronized(this) {
 | 
				
			||||||
 | 
					                CrashReporter(application).also { INSTANCE = it }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user