diff --git a/app/src/main/java/net/nitroshare/android/ui/settings/SettingsActivity.java b/app/src/main/java/net/nitroshare/android/ui/settings/SettingsActivity.java index 00aed41..0d87826 100644 --- a/app/src/main/java/net/nitroshare/android/ui/settings/SettingsActivity.java +++ b/app/src/main/java/net/nitroshare/android/ui/settings/SettingsActivity.java @@ -125,6 +125,7 @@ public void onCreate(Bundle savedInstanceState) { general.addPreference(createDirectoryPreference(R.string.activity_settings_pref_transfer_directory, Settings.Key.TRANSFER_DIRECTORY)); general.addPreference(createCheckBoxPreference(R.string.activity_settings_pref_behavior_receive, R.string.activity_settings_pref_behavior_receive_summary, Settings.Key.BEHAVIOR_RECEIVE)); general.addPreference(createCheckBoxPreference(R.string.activity_settings_pref_behavior_overwrite, R.string.activity_settings_pref_behavior_overwrite_summary, Settings.Key.BEHAVIOR_OVERWRITE)); + general.addPreference(createCheckBoxPreference(R.string.activity_settings_pref_behavior_autostart, R.string.activity_settings_pref_behavior_autostart_summary, Settings.Key.BEHAVIOR_AUTOSTART)); appearance.addPreference(createCheckBoxPreference(R.string.activity_settings_darkTheme, R.string.activity_settings_darkTheme_summary, Settings.Key.UI_DARK)); notifications.addPreference(createCheckBoxPreference(R.string.activity_settings_pref_notification_sound, R.string.activity_settings_pref_notification_sound_summary, Settings.Key.TRANSFER_NOTIFICATION)); diff --git a/app/src/main/java/net/nitroshare/android/util/Settings.java b/app/src/main/java/net/nitroshare/android/util/Settings.java index 31d8d7f..d964a30 100644 --- a/app/src/main/java/net/nitroshare/android/util/Settings.java +++ b/app/src/main/java/net/nitroshare/android/util/Settings.java @@ -21,6 +21,7 @@ public class Settings { public enum Key { BEHAVIOR_RECEIVE, // Listen for incoming transfers BEHAVIOR_OVERWRITE, // Overwrite files with identical names + BEHAVIOR_AUTOSTART, // Run at device startup DEVICE_NAME, // Device name broadcast via mDNS DEVICE_UUID, // Unique identifier for the device INTRO_SHOWN, // Intro has been shown to user? @@ -51,6 +52,8 @@ public Object getDefault(Key key) { return true; case BEHAVIOR_OVERWRITE: return false; + case BEHAVIOR_AUTOSTART: + return true; case DEVICE_NAME: return Build.MODEL; case DEVICE_UUID: diff --git a/app/src/main/java/net/nitroshare/android/util/StartReceiver.java b/app/src/main/java/net/nitroshare/android/util/StartReceiver.java index 8ddb11b..2fe059c 100644 --- a/app/src/main/java/net/nitroshare/android/util/StartReceiver.java +++ b/app/src/main/java/net/nitroshare/android/util/StartReceiver.java @@ -13,8 +13,23 @@ public class StartReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - if (new Settings(context).getBoolean(Settings.Key.BEHAVIOR_RECEIVE)) { + if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) + && startServiceOnBoot(context) + && receiveTransferAllowed(context)) { TransferService.startStopService(context, true); } } + + private static boolean getBooleanFromSettings(Context context, Settings.Key key) { + Settings s = new Settings(context); + return s.getBoolean(key); + } + + private static boolean receiveTransferAllowed(Context context) { + return getBooleanFromSettings(context, Settings.Key.BEHAVIOR_RECEIVE); + } + + private static boolean startServiceOnBoot(Context context) { + return getBooleanFromSettings(context, Settings.Key.BEHAVIOR_AUTOSTART); + } } diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index f018e2c..2e05e2d 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -77,4 +77,6 @@ %1$s / %2$s Stopp Erneut versuchen + Automatisch starten + Nach dem Systemstart starten diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bff4acd..0770026 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -56,6 +56,8 @@ Accept incoming transfers from other devices Overwrite Replace existing files with the same name + Auto start + Auto start when device starts Notifications Notification Sound Play sound when a transfer completes