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
* Add export of index database
* Add import of index database
* Shutdown service before export and restart it afterwards.
* Do not import database if it doesn't exist on sdcard
* Do not attempt to delete the database export directory on export if it does not exist.
* Return to MainActivity after successful export
* Import/Export using an AsyncTask
* Fix compatibility with Android 5.x
* Add push APK to device after build script
* Fix typo in SyncthingService comment
* Refactor SettingsActivity - updatePersistentNotification
Call updatePersistentNotification after the settings screen was left and not when the user toggles the alwaysRunInBackgroundAsAService checkbox.
* Automatically start app if push-to-device is enabled
* Remove PREF_NOTIFICATION_TYPE
* Only push APK to device if build succeeded
* Fix notifications and foreground service start/stop
* Use startForegroundService on Android 8+
* Fix startActivity called from non-Activity context (fixes#80)
* Fix comment