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