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" /> + + +