diff --git a/app/src/main/java/org/galexander/sshd/BootReceiver.java b/app/src/main/java/org/galexander/sshd/BootReceiver.java index 84a6831..221cc17 100644 --- a/app/src/main/java/org/galexander/sshd/BootReceiver.java +++ b/app/src/main/java/org/galexander/sshd/BootReceiver.java @@ -3,27 +3,13 @@ package org.galexander.sshd; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.Context; -import android.os.Build; -import android.widget.Toast; - public class BootReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Prefs.init(context); if (Prefs.get_onboot()) { - Intent i = new Intent(context, SimpleSSHDService.class); - if (Build.VERSION.SDK_INT >= - Build.VERSION_CODES.O) { - if (Prefs.get_foreground()) { - context.startForegroundService(i); - } else { - Toast.makeText(context, -"SimpleSSHD cannot start background at boot since Oreo (see Settings).", - Toast.LENGTH_LONG).show(); - } - } else { - context.startService(i); - } + SimpleSSHDService.my_startService(context, + new Intent(context, SimpleSSHDService.class)); } } } diff --git a/app/src/main/java/org/galexander/sshd/SimpleSSHDService.java b/app/src/main/java/org/galexander/sshd/SimpleSSHDService.java index d44a9cd..5de7f2e 100644 --- a/app/src/main/java/org/galexander/sshd/SimpleSSHDService.java +++ b/app/src/main/java/org/galexander/sshd/SimpleSSHDService.java @@ -10,6 +10,7 @@ import android.content.Context; import android.os.Build; import android.os.IBinder; import android.widget.RemoteViews; +import android.widget.Toast; import androidx.core.app.NotificationCompat; import java.io.BufferedReader; import java.io.File; @@ -210,4 +211,20 @@ public class SimpleSSHDService extends Service { static { System.loadLibrary("simplesshd-jni"); } + + public static void my_startService(Context ctx, Intent i) { + Prefs.init(ctx); + if (Build.VERSION.SDK_INT >= + Build.VERSION_CODES.O) { + if (Prefs.get_foreground()) { + ctx.startForegroundService(i); + } else { + Toast.makeText(ctx, +"SimpleSSHD cannot start in background since Oreo (enable Settings -> Foreground Service).", + Toast.LENGTH_LONG).show(); + } + } else { + ctx.startService(i); + } + } } diff --git a/app/src/main/java/org/galexander/sshd/StartReceiver.java b/app/src/main/java/org/galexander/sshd/StartReceiver.java index f486f14..cfa4673 100644 --- a/app/src/main/java/org/galexander/sshd/StartReceiver.java +++ b/app/src/main/java/org/galexander/sshd/StartReceiver.java @@ -6,7 +6,7 @@ import android.content.Context; public class StartReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { - context.startService( + SimpleSSHDService.my_startService(context, new Intent(context, SimpleSSHDService.class)); } } diff --git a/app/src/main/java/org/galexander/sshd/StopReceiver.java b/app/src/main/java/org/galexander/sshd/StopReceiver.java index ea0a6e5..5438340 100644 --- a/app/src/main/java/org/galexander/sshd/StopReceiver.java +++ b/app/src/main/java/org/galexander/sshd/StopReceiver.java @@ -6,7 +6,7 @@ import android.content.Context; public class StopReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { - context.startService( + SimpleSSHDService.my_startService(context, new Intent(context, SimpleSSHDService.class) .putExtra("stop", true)); }