* Add prefs: verbose_log, expert_mode
* Update prefs in Constants
* Add service.AppPrefs
* Update fragments to read verbose log pref
* Update classes with context or inject to read verbose log pref
* Inherit ENABLE_VERBOSE_LOG from RestApi to Completion
* Restart whole app if verbose log pref was changed
* A line too much
* Revert expert mode pref (DELTA REVERT)
* Move notificationHandler shutdown from RestApi to SyncthingService
* http/PostRequest: Add shutdown uri
* Add RestApi#shutdown to post a shutdown request (fixes#320)
* SyncthingService#shutdown: Send a shutdown POST request first in case the kill via shell fails (fixes#320)
* Add pref: Suggested new folder root (fixes#309)
* Fix NPE in offline config reader (fixes#316)
after folder has been created while Syncthing was not running
* Fix language pref and root pref
* Fix action bar not showing on sub-prefs screen (fixes#317)
on Android < 7
* Add DATA, MEDIA to FileUtils#getExternalFilesDirUri (fixes#309)
* SettingsActivity: Remove pref "SuggestNewFolderRoot" on API < 21
* Update Constants
PREF_SUGGEST_NEW_FOLDER_ROOT_DATA, PREF_SUGGEST_NEW_FOLDER_ROOT_MEDIA
* Update FolderActivity#onPathViewClick (fixes#309)
to respect PREF_SUGGEST_NEW_FOLDER_ROOT_DATA
* Imported de translation
* Add drawable ic_refresh_black_24
* Add device: Add refresh button to dialog
* Add device dialog: Implement refresh button (fixes#310)
Always show "No devices discovered label" and refresh button if no device ID had been entered yet.
* Update model/Options for SyncthingNative 1.0.1
* Add ConfigRouter#getOptions
* Add ConfigXml#getOptions
* Update README.md
* Add string: local_discovery_disabled
* Add device dialog: Show notice if local discovery is disabled
and explain how to enable it.
* Add device dialog: Show helpful text if no devices were discovered locally
* Updated de translation
* Fix crash notification reason is off-screen (fixes#294)
* Indicate a broken config on the welcome wizard (fixes#293)
* SyncthingService must stop if the config got corrupted (fixes#292)
* Show crash notification extraInfo below notification title (fixes#294)
* Fix NPE when config elements gui, options are missing (fixes#291)
* Updated de translation
* Update en translation
* Updated translations
* Remove debug log
* Util#runShellCommand: Add BufferedReader
* Util: Correct class TAG
* SyncthingRunnable: Use Util.runShellCommand for "chmod 500"
* Util: Add notes
* LogActivity: Replace ProcessBuilder with Util.runShellCommandGetOutput
* SyncthingRunnable: Improve "error" message
* LogActivity: Show Android log by default
* SyncthingRunnable: Don't log if the chmod fail is expected on Android 5+
* LogActivity: Remove SyncthingNativeCode per line repetition if we are showing its own log
* WIP
* Revert "WIP"
This reverts commit 98b34c47c6b844bd7c5a332360cd5965708e69d7.
* WIP
* Revert "WIP"
This reverts commit 3b9fc96d90708e4d4c0eef08f8372c5c4a2f2314.
* Add de/serializer for MinDiskFree
* Move MinDiskFree out of Folder
* Move MinDiskFree out of Folder (2)
* Revert "Move MinDiskFree out of Folder (2)"
This reverts commit 65f87db9a59c67d5a59eb713904976c78a5dcb9a.
* Revert "Move MinDiskFree out of Folder"
This reverts commit b71350bd105731d2763d95db7f3f1d1524328cfa.
* Revert "Add de/serializer for MinDiskFree"
This reverts commit 582742662942ece78658ebc3f7fa5c3ec91a5262.
* RestApi: Add MinDiskFreeSerializer, MinDiskFreeDeserializer
* Revert "RestApi: Add MinDiskFreeSerializer, MinDiskFreeDeserializer"
This reverts commit 3922f2451c48850c92e9403607bfb4edab8c591d.
* Test
* Revert "Test"
This reverts commit 355009565aaaf50efcf06c72bdff5b3466547a63.
* FolderActivity/DeviceActivity: Fix restApi unavailable in onCreate()
* Model/Folder#MinDiskFree: Initialize members (fixes#277)
* ConfigXml#getFolders: Add MinDiskFree (fixes#277)
* ConfigXml: Write back minDiskFree (fixes#277)
* Ignore notices about updating gradle dependencies
* ConfigXml: Make number parsing more safe
* FolderActivity#initFolder: Add new Folder.MinDiskFree
* Handle minDiskFree.value as String instead of float
* Revert "Handle minDiskFree.value as String instead of float"
This reverts commit 0552cfcbe139e99e575237a9b47ee4e888721c6f.
* WIP
* Revert "WIP"
This reverts commit 0a3df9144a86a396318c57a089d41da449d284dc.
* RestApi: Avoid creating duplicate Gson() instances
* Model/Folder: Use Integer instead of Float
See gson glitch:
https://github.com/google/gson/pull/1290https://github.com/google/gson/issues/968
* Try MinDiskFree.value as Long instead of Integer
* Revert "Try MinDiskFree.value as Long instead of Integer"
This reverts commit d3588629818b3f75d30a2486a7c4583b0d4c99c7.
* Revert "Model/Folder: Use Integer instead of Float"
This reverts commit ca3931bd0d06cf500cff2443e4205f7c3211e777.
* Update model/Options: MinHomeDiskFree (fixes#277)
* Save welcome wizard button state (fixes#281)
* FirstStartActivity xml: Disallow focus for non-button elements
* Fix ViewPager taking focus on mouse click glitch on TV
* Provide key navigation if ViewPager accidentially took focus (fixes#281)
* Device overview: Show status "Syncing" in case of data throughput (fixes#240)
If (incoming_bits_per_second + outgoing_bits_per_second) top the threshold, we'll assume syncing state for the device reporting that data throughput.
* Imported de translation
* SettingsActivity: Fix var name
* Add verbose logging
* SettingsActivity: Use a handler to call sub pref screen (fixes#247)
* Add verbose log
* Fix toolbar ignoring input after going back from subpref screen
when directly opened in subpref screen before (fixes#247)
* Revert "Add verbose log"
This reverts commit 33207d0721dd38ce5efa04dddb891557ade6f5c3.
* SettingsActivity: Re-register actionbar after a subpref screen dismissal (fixes#247)
* WIP
* AndroidManifest: Add WebViewActivity
* Open WebViewActivity from prefs, move to "Debug" menu
* Add WebViewActivity below SettingsActivity
* Add strings for ssl security notice
* Handle web page links and ssl warnings correctly
* Mention issue tracker URL in pref summary
* Don't use ACTION_VIEW for deeplinks on syncthing's WebUI
* Rename string: report_issue_summary to open_issue_tracker_summary
* Imported translations
* Add "open in browser" drawable
* Add webview_options menu
* Add strings: web page loading, open in browser
* Add option to open webpage in browser on non-TV devices (fixes#227)
* Imported de translation
* Remove welcome slide dots from screen reading
according to advice from the prelaunch report.
* Try setImportantForAccessibility on TextViews
* Update APK version to 1.0.0.7
* Try setContentDescription
* Update APK version to 1.0.0.8
* Update APK version to 1.0.0.9
* Add meaningful content description
in case a screen reader unintentionally reads out loud
* Update APK version to 1.0.0.10
* Fix type conversion
* Update APK version to 1.0.0.11
* Add views/CustomViewPager
* Use CustomViewPager in FirstStartActivity
* FirstStartActivity: Use CustomViewPager
* Add main menu string for screen readers
* Reformat code
* Try toolbar.setNavigationContentDescription
* Update APK version to 1.0.0.12
* Import de translation
* Add Util#isTcpPortListening (fixes#193)
* Move model/Config.Gui to model/Gui
* Constants: Add default tcp ports
* Add string: webui_tcp_port_unavailable
* Add ConfigXml#getWebGuiBindPort
* Check if webUI tcp port is available before launching native (fixes#193)
Output failure notification if the port is allocated by someone else.
* Settings UI - Valid tcp ports are from 1024 to 65535 (fixes#211)
* Add tcp6 listen port detection, check on connState == LISTEN
* Update translations de
#200 - Cannot change folder type or pull order in wrapper UI
#202 - User selections are lost if screen rotation changes during folder edit
#203 - Edit folder dialog - AlertDialogs leak on screen rotation
* SyncthingActivity: Reformat code
* Add status light to toolbar
* MainActivity: Add status light indicating if syncthing is running (fixes#187)
* New colors for status light
* Tri-state status light
* Add RestApi#isUsageReportingAccepted (fixes#184)
* Add verbose log when usage report question dialog triggers (fixes#184)
* Remove asynchronous requests to determine if user opted-in to usage reporting (fixes#184)
* Check if the config is loaded before evaluating current ur user wish
* Properly dismiss mUsageReportingDialog on orientation change (fixes#184)
- Consolidate createRestartDialog into showRestartDialog
- Remove unused var mBatteryOptimizationsDialog
* Add new label syncthing_database_size on Settings/About
* Add Util#runShellCommandGetOutput
* Make INDEX_DB_FOLDER constant public
* Add Database Size status label to Settings/About (fixes#155)
* Imported translation de-DE
* Fix lint: Application Context within SettingsFragment
* Update tasker actions and broadcast intent extras (fixes#161)
according to https://github.com/Catfriend1/syncthing-android/wiki/Remote-Control-by-Broadcast-Intents
* Update AndroidManifest.xml intent filters
-
com.github.catfriend1.syncthingandroid.action.START
-
com.github.catfriend1.syncthingandroid.action.STOP
* Fix missing "public" declaration
* Add PREF_BROADCAST_SERVICE_CONTROL
* Add null check for mRunConditionMonitor
in SyncthingService#ACTION_REFRESH_NETWORK_INFO
* Disable RunConditionMonitor completely
when PREF_BROADCAST_SERVICE_CONTROL is enabled.
* Status tab: Display hint if service control by broadcast is enabled in prefs
* Update strings
* Imported translations
- de
- sv
Fix Syncthing version not showing in Drawer or incorrectly shown after app first start or update.
Show syncthing native version regardless if syncthing is running or not.
Related issues:
#158 - FolderActivity not correctly disposed after dialog close
#161 - mRunconditionmonitor not running after config import/export
#163 - "Share to syncthing-folder" doesn't work when syncthing is not running
* import/export Config: Only shutdown native if it is running (fixes#161)
* Remove FolderPickerActivity#kitkat_external_storage_warning
* Remove SyncthingActivity#registerOnServiceConnectedListener
* Make "share to folder" available when syncthing is online or offline (fixes#163)
Improve service connection
* Add script to forward web UI port of an AVD
Update README.md
* SettingsActivity: Improve service connection
* Correct self-class reference in FolderActivity (fixes#158)
* Correct self-class reference in DeviceActivity (fixes#158)
* Correct self-class reference in ShareActivity (fixes#158)
* Remove unused string 1/2
* Remove unused string 2/2
* Add Utils/Luhn.java for check rune calculation
* Update model/Device.java defaults
according to Device defaults in ConfigXml#getDevices
* Remove errorListener from ConfigRouter#addDevice
* Remove errorListener from RestApi#addDevice
Remove no longer used RestApi#normalizeDeviceId
* Add checkDeviceID to model/Device.java
and verify device ID's entered by the user before writing them to the config.
* Fix lint by using Locale.ROOT for internal strings
* model/Completion: Switch off verbose log
* Preserve syncthing running/not running after a database or delta index reset (fixes#154)
Remove callback listener triggered by SyncthingService#shutdown.onKilledListener()
* service/EventProcessor: Switch off verbose log
Changelog:
- "Use default folder path given in config.xml" (#101)
- "IllegalStateException: Fragment already added" (#108)
- "Enhancement request for per-folder(device) sync conditions" (#110)
- "NPE crash after key and config regeneration" (#141)
- "Adjust the folder icon to show if it's send/receive or both" (#143)
- "CPU percentage is not shown on the status tab" (#144)
- "Always make individual sync conditions UI available" (#145)
- "IntroducedBy deviceID lost on config change through wrapper UI" (#146)
- "Wrapper doesn't use the same syntax as syncthing core's web UI for device addresses" (#147)
- "Syncthing wrapper "emergency" shutdown on native binary crash doesn't work" (#148)
Commits:
* WIP
* WIP
* Get folder list and paused setting when syncthing is not running
Preparation to solve #110
* Fix NPE in DeviceListFragment#DEVICES_COMPARATOR
* Remove blank line
* Add ConfigXml#getDevices and comparator
Make ConfigXml#saveChanges public
* SyncthingService evaluates per folder/device
sync conditions when syncthing is not running via ConfigXml
* Fix typos and add stubs
* Fix build errors
* DEBUG - Always run syncthing binary
* Fix NPE at RunConditionMonitor pointer
* Add setFolderPause, setDevicePause
to ConfigXml
* Improve logging
* Remove test mode
* Better log levels
* Make ConfigXml#updateIfNeeded private
* Remove SyncthingService#mStartupTask
AsyncTask no longer needed
* Update model/Options (fixes#101)
* Fix NPE after config regeneration (fixes#140)
* Refactor key and config generation
Refactor ConfigXml public functions to allow checking if a valid config exists and trigger key and config (re)genration if something is corrupted.
* Fix crash on export/import (fixes#142)
* ApiRequest - Disable verbose log in release builds
* ConfigXml#updateIfNeeded - Disable "startBrowser"
because it applies to desktop environments and cannot start a mobile browser app
* MainActivity - Always show all tabs
* Show folder/device tab contents from config.xml
if syncthing is not running
* Update ConfigXml#getDevices return model
- compression
- introducer
* Device tab - Hide in/out rate if syncthing is not running
or if the device is paused
* Update device item layout
* MainActivity/Devices - Prevent showing outdated status
after syncthing core transitioned from "active" to "disabled"
* MainActivity/Folders - Prevent showing outdated status
after syncthing core transitioned from "active" to "disabled"
* Add ConfigRouter class
Provides a transparent access to the config if ...
a) Syncthing is running and REST API is available.
b) Syncthing is NOT running and config.xml is accessed.
* Add pref - Cache local device ID
* Allow excluding self in ConfigRouter#getDevices
* Allow excluding self in ConfigRouter#getDevices (2)
* Update Folder model default values
* Update Folder model defaults (2)
- copiers
- hashers
* WIP - ConfigXml - FolderActivity
Remove unused pref inject code
Cache local device ID in pref
Reduce verbose logging in release builds
Extend ConfigXml#getFolders
Extend ConfigXml#getDevices
Fix ConfigXml#setDevicePause
ToDo ConfigXml#getFolderIgnoreList needs to be implemented
* Implemented ConfigXml#getFolderIgnoreList
* Extend ConfigXml#getDevices
- device.addresses
* WIP - DeviceActivity
Make it available when syncthing is not running
* Fix unsuccessful API bumps while syncthing is starting
* Fix space
* Adjust the folder icon to show if it's send/receive or both (fixes#143)
* Fix lint - item_device_list
* Preserve active tab when syncthing core transitions between running and not running
* Add xmlns:android to item_folder_list
* Remove unused reference from item_folder_list
* Add device icon to device tab
* Fix CPU percentage not showing (fixes#144)
* SyncthingService - Polish iterator code
* Fix MainActivity#updateViewPager (fixes#108)
* Add ConfigXml#updateFolder, updateDevice (1)
* Add ConfigRouter#updateFolder, updateDevice
* Add missing "final" to ConfigXml#updateDevice
* WIP - FolderActivity - Update updateFolder via ConfigRouter
ToDo: Implement ConfigRouter here.
* ConfigRouter - Fix missing return
* DeviceActivity - Update device via ConfigRouter
* Always make individual sync conditions UI available (fixes#145)
regardless if syncthing core is running or not.
Remove SyncthingService dependency from SyncConditionsActivity
* Fix incorrect folder type icon shown
when syncthing core is not running
* Add "introducedBy" to folder and device model (fixes#146)
* Add Folder#getDevices to model
* ConfigXml#updateFolder - Writeback devices sharing the folder
Support preserving the "introducedBy" model field of Folder.java (fixes#146)
* Add ConfigXml#updateFolder - Versioning
* Remove SyncthingService dependency from FolderPickerActivity
because it is no longer required.
* Update ToDo remarks
* Add ConfigXml#updateDevice - Addresses
* Fix DeviceActivity#persistableAddresses to be more graceful (fixes#147)
and accept the same address syntax as syncthing core web UI does.
* Add ConfigXml#removeFolder, removeDevice
* Add ConfigXml#addDevice, addFolder
- Add ConfigXml#isDeviceIdValid
- Do not allow adding empty folder labels or empty device names.
- Update model Folder.java so ConfigXml can handle the ignorePerms XML attribute
* Fix Syncthing wrapper "emergency" shutdown on native binary crash (fixes#148)
* Update translation de
* Add ConfigXml#postFolderIgnoreList
* Update APK version to 0.14.54.3 / 4182
* Revert DEBUG - Always run syncthing binary
* Update whatsnew
* Add script to update submodule
* Update publish-release.sh
* Add helper script to build syncthing submodule only
* Enable HTTPS for REST/WebUI only if OS supports it (fixes#137)
* Update ApiRequest to handle both http or https
* Add Constants#osSupportsTLS12
* Update APK version to 0.14.54.2 / 4181
* Update README.md
* Update whatsnew
* Update app desc en-GB
* Add git_fetch_branch.sh
* Abort on lint error
* Run lint when building the app
* Update app full description
* Imported translation values-sv
* Initialize DiskEventData for tests
* Add FileUtils#getMimeTypeFromFileExtension
* Open file when user clicks on it in RecentChangesActivity
* Add RestApi#getFolderByID
* Add Constants#ENABLE_TEST_DATA
* Add strings
* Move open folder to FileUtils#openFolder
* Add FileUtils#openFolder, FileUtils#openFile
* Fix UI glitch
Make clear to the user that the folder label is not part of the physical full file path and name.
* Open file/folder on item click
Add test data
* Imported translations
* Fix lint
* Update APK version to 0.14.51.13 / 4176
* Update README.md, whatsnew
* Turn off test data mode
* Remove unused import
* Fix issue 110 (3) - remove checkmark
in per object sync conditions dialog
* Fix UI glitches, feedback issue #110 (1)
* Stop onscreen keyboard popping up
when FolderActivity starts
* RunConditionMonitor - Add more logging
* Always save UI state back to prefs
in SyncConditionsActivity until we abandon global run conditions.
* SyncConditionsActivity - Rename "folder" to "object" as it can mean a folder or device.
* Implement per-device sync conditions
* Default custom wifi whitelist to "all enabled"
* Update APK version to 0.14.51.7 / 4170
* Add checkbox "use Wi-Fi whitelist" in global run conditions
* Rename variable
* Tell user if location is disabled but "run on selected" WiFi is enabled.
* Update status tab while user looks at the UI and syncthing is disabled
* UI: Offer a solution