diff --git a/app/src/main/java/com/nutomic/syncthingandroid/activities/DeviceActivity.java b/app/src/main/java/com/nutomic/syncthingandroid/activities/DeviceActivity.java
index 57299a4b..7fd25c16 100644
--- a/app/src/main/java/com/nutomic/syncthingandroid/activities/DeviceActivity.java
+++ b/app/src/main/java/com/nutomic/syncthingandroid/activities/DeviceActivity.java
@@ -276,6 +276,10 @@ public class DeviceActivity extends SyncthingActivity {
getWindow().setSoftInputMode(SOFT_INPUT_STATE_ALWAYS_HIDDEN);
mNameView.requestFocus();
}
+
+ // Show expert options conditionally.
+ Boolean prefExpertMode = mPreferences.getBoolean(Constants.PREF_EXPERT_MODE, false);
+ mCompressionContainer.setVisibility(prefExpertMode ? View.VISIBLE : View.GONE);
}
private void restoreDialogStates(Bundle savedInstanceState) {
diff --git a/app/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java b/app/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java
index df09b778..804c8914 100644
--- a/app/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java
+++ b/app/src/main/java/com/nutomic/syncthingandroid/activities/FolderActivity.java
@@ -107,11 +107,13 @@ public class FolderActivity extends SyncthingActivity {
private SwitchCompat mCustomSyncConditionsSwitch;
private TextView mCustomSyncConditionsDescription;
private TextView mCustomSyncConditionsDialog;
+ private ViewGroup mPullOrderContainer;
private TextView mPullOrderTypeView;
private TextView mPullOrderDescriptionView;
private TextView mVersioningDescriptionView;
private TextView mVersioningTypeView;
private SwitchCompat mVariableSizeBlocks;
+ private ViewGroup mIgnoreDeleteContainer;
private SwitchCompat mIgnoreDelete;
private TextView mEditIgnoreListTitle;
private EditText mEditIgnoreListContent;
@@ -208,11 +210,13 @@ public class FolderActivity extends SyncthingActivity {
mCustomSyncConditionsSwitch = findViewById(R.id.customSyncConditionsSwitch);
mCustomSyncConditionsDescription = findViewById(R.id.customSyncConditionsDescription);
mCustomSyncConditionsDialog = findViewById(R.id.customSyncConditionsDialog);
+ mPullOrderContainer = findViewById(R.id.pullOrderContainer);
mPullOrderTypeView = findViewById(R.id.pullOrderType);
mPullOrderDescriptionView = findViewById(R.id.pullOrderDescription);
mVersioningDescriptionView = findViewById(R.id.versioningDescription);
mVersioningTypeView = findViewById(R.id.versioningType);
mVariableSizeBlocks = findViewById(R.id.variableSizeBlocks);
+ mIgnoreDeleteContainer = findViewById(R.id.ignoreDeleteContainer);
mIgnoreDelete = findViewById(R.id.ignoreDelete);
mDevicesContainer = findViewById(R.id.devicesContainer);
mEditIgnoreListTitle = findViewById(R.id.edit_ignore_list_title);
@@ -222,7 +226,7 @@ public class FolderActivity extends SyncthingActivity {
mCustomSyncConditionsDialog.setOnClickListener(view -> onCustomSyncConditionsDialogClick());
findViewById(R.id.folderTypeContainer).setOnClickListener(v -> showFolderTypeDialog());
- findViewById(R.id.pullOrderContainer).setOnClickListener(v -> showPullOrderDialog());
+ mPullOrderContainer.setOnClickListener(v -> showPullOrderDialog());
findViewById(R.id.versioningContainer).setOnClickListener(v -> showVersioningDialog());
if (savedInstanceState != null) {
@@ -282,6 +286,11 @@ public class FolderActivity extends SyncthingActivity {
checkWriteAndUpdateUI();
updateViewsAndSetListeners();
+ // Show expert options conditionally.
+ Boolean prefExpertMode = mPreferences.getBoolean(Constants.PREF_EXPERT_MODE, false);
+ mPullOrderContainer.setVisibility(prefExpertMode ? View.VISIBLE : View.GONE);
+ mIgnoreDeleteContainer.setVisibility(prefExpertMode ? View.VISIBLE : View.GONE);
+
// Open keyboard on label view in edit mode.
mLabelView.requestFocus();
}
diff --git a/app/src/main/java/com/nutomic/syncthingandroid/service/Constants.java b/app/src/main/java/com/nutomic/syncthingandroid/service/Constants.java
index 61c28c61..cad177b4 100644
--- a/app/src/main/java/com/nutomic/syncthingandroid/service/Constants.java
+++ b/app/src/main/java/com/nutomic/syncthingandroid/service/Constants.java
@@ -33,6 +33,8 @@ public class Constants {
public static final String PREF_SUGGEST_NEW_FOLDER_ROOT_DATA = "external_android_data";
public static final String PREF_SUGGEST_NEW_FOLDER_ROOT_MEDIA = "external_android_media";
+ public static final String PREF_EXPERT_MODE = "expert_mode";
+
// Preferences - Troubleshooting
public static final String PREF_VERBOSE_LOG = "verbose_log";
public static final String PREF_ENVIRONMENT_VARIABLES = "environment_variables";
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 2527896f..547bdf6c 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -465,6 +465,10 @@ Bitte melden Sie auftretende Probleme via GitHub.
- [Ext_Speicher]/Android/media
+ Expertenmodus
+
+ Durch Aktivieren dieser Option werden erweiterte Konfigurationsoptionen angezeigt. Du solltest Dir zuerst die Syncthing-Dokumentation ansehen, um sicherzustellen, dass Du weißt, wie sie richtig verwendet werden. Falsche Einstellungen können zu hohem Batterieverbrauch, Erschöpfung der Systemressourcen oder unvollständiger Synchronisation führen.
+
Sprache
Anwendungssprache ändern
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2aa1bf9f..c893d167 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -468,6 +468,10 @@ Please report any problems you encounter via Github.
- [external_storage]/Android/media
+ Expert mode
+
+ Enabling this option will show advanced configuration options. You should have a look at the Syncthing Docs first to make sure you know how to use them correctly. Incorrect settings may cause battery drain, system resource exhaust or incomplete synchronization.
+
Language
Change the app language
diff --git a/app/src/main/res/xml/app_settings.xml b/app/src/main/res/xml/app_settings.xml
index 09a99faf..d363eaf4 100644
--- a/app/src/main/res/xml/app_settings.xml
+++ b/app/src/main/res/xml/app_settings.xml
@@ -100,6 +100,13 @@
android:summary="@null"
android:defaultValue="external_android_data" />
+
+
+