On a regular system, a reasonable simplifying assumption is that all the
files in the folder will be synced to the system. A user might want to
disable syncing of some subdirectories, for eg, archived files. But in
general, things are simpler to understand and implement if all files sync.

But, an Android gadget probably cannot hold all a user's files. Indeed,
it's likely that old files will be aggressively dropped from the Android
after syncing to elsewhere, in order to keep enough free space on it for
new files. 

There needs to be a way for the user to browse files not on the gadget and
request they be transferred to it. This could be done as a browser in the
web app, or using a subdirectory full of placeholder files (not symlinks;
see [[Android]]) that start transfer of the real file when accessed.

----

Currently, Android uses the "source" repository type in some
configurations. This makes files be removed as soon as they are sent
somewhere else.

A compromise that avoids needing UI might be to change "source" so it
retained files for a while after they were created, even after they were
uploaded elsewhere. For example, it could hold onto them for a day. This
would allow the user time to do things with new files before they are
removed from the android device.

Once way to implement that would be a new preferred content expression like
"age(1 day)". But this would need at least a daily full transfer scan to be
run. 

Another way would be to have a way to make drops of files be deferred
for a period of time. This approach would not need to be specific to the
"source" repository type. And seems easy enough to do, just have a
configuration setting for the time interval, and an ordered drop queue
and a thread that waits as needed before dropping.
