summaryrefslogtreecommitdiff
path: root/doc/design/assistant/android.mdwn
blob: 65360c07665e48a98e83eb492de8acbb6ae48bca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
### goals

1. Get git-annex working at the command line in Android,
   along with all the programs it needs, and the assistant. **done**
2. Deal with crippled filesystem; no symlinks; etc. **done**
3. Get an easy to install Android app built. **done**
4. Get the webapp working. Needs Template Haskell, or 
   switching to <http://www.yesodweb.com/blog/2012/10/yesod-pure>.
5. Possibly, switch from running inside terminal app to real standalone app.
   See <https://github.com/neurocyte/android-haskell-activity>
   and <https://github.com/neurocyte/foreign-jni>.

### Android specific features

The app should be aware of power status, and avoid expensive background
jobs when low on battery or run flat out when plugged in.

The app should be aware of network status, and avoid expensive data
transfers when not on wifi. This may need to be configurable.

## Template Haskell for android?

Best lead I have on getting cross compilation of TH working is that GHCJS
does it, and that it involves compiling each file twice, once natively for
TH and once for cross.

## TODO

* webapp
* autostart any configured assistants. Best on boot, but may need to only
  do it when app is opened for the first time.
* Don't make app initially open terminal, but go to a page that
  allows opening the webapp or terminal.
* I have seen an assistant thread crash with an interrupted system call
  when the device went to sleep while it was running. Auto-detect and deal with
  that somehow.
* Make git stop complaining that "warning: no threads uspport, ignoring --threads"
* git does not support http remotes. To fix, need to port libcurl and
  allow git to link to it.
* getEnvironment is broken on Android <https://github.com/neurocyte/ghc-android/issues/7>
  and a few places use it.
* Enable WebDAV support. Currently needs template haskell (could be avoided
  by changing the DAV library to not use it), and also networking support,
  which seems broken in current ghc-android.
* Get test suite to pass. Current failure is because `git fetch` is somehow
  broken with local repositories.