Only update UI at 1 Hz during nandroid backup/restore

On high-resolution devices such as the Galaxy Note, UI updates
consume more CPU than all other operations.  For example, a nandroid
restore on Note pegs an entire core at 1.4 GHz for the recovery
process while tar is using only 14% of the other core, and iowait
times are low indicating the CPU is not simply waiting for IO.

Nandroid backup/restore should be I/O bound, not CPU bound.

This changes the update interval to 1 Hz during nandroid
backup and restore.

Change-Id: Ic021cd6dc453b92468396cab1a31bd693efb43e0
recovery: Allow key to repeat on hold.

This implements the ability to hold a key and have it repeat.
This makes it possible to hold down the volume key to scroll
down to a file.

Enabling repeatable keys:

ro.cwm.enable_key_repeat=true

To control which keys can repeat, you can set this prop with
a list of key codes, like this:

ro.cwm.repeatable_keys=137,200,151,300

If you don't set ro.cwm.repeatable_keys only UP, DOWN, VOL UP
and VOL DOWN will be repeatable.

Patch-set 1:  First commit
Patch-set 2:  Re-worked a little
Patch-set 3:  Now uses system props.
Patch-set 4:  Fixed USB connection bug
Patch-set 5:  Compressed down a bit
Patch-set 6:  Fixed spacing derp
Patch-set 7:  Fix bug + increase speed
Patch-set 8:  Slow it down a tad
Patch-set 9:  Took care of inline comments
Patch-set 10: Added UP & DOWN to default repeatable keys
Patch-set 11: EV_REP compatibility + logic changes
Patch-set 12: EV_REP takes precedence
Patch-set 13: Fixed spacing derp
Patch-set 14: Fixed time overflow >_>
Patch-set 15: Remove a little whitespace
Patch-set 16: Removed *~
Patch-set 17: Reworked per koush's suggestion

Change-Id: I7c7ef035c89210212bf08f8aa97150222d948d0c
support datamedia on any one volume

Change-Id: I198e789ee01e8a5b10eee33ed59a2d828cfb096a
fix up datamedia volume detection

Change-Id: Ia853e31e31aebce9e70b1e9500930b14a92ee4bf
Fix nandroid restore exclusion for datamedia when there is a /sdcard path.

Change-Id: I966def8862a8c864bfc17834bf5a2363b290bf0c
Fix up tabs

Change-Id: I7e8e35d4ce48ce3eac15a7615d2f6a6b5a569ff4
This is a good commit, but was breaking logging. The proper place to do ui refresh limitation
is in ui_print itself.

Revert "Only update UI at 1 Hz during nandroid backup/restore"

This reverts commit 04076f0722381ca68420c3b9172dac78d3b91017.
Rewrite the code that throttles UI updates to be in ui_print itself.

Change-Id: I4fc59efc42991bdcf4fcd09feacfeb6fd984d58c
Split the tar files into 1GB pieces. Fixes backup and restore onto vfat (2gb max files). May also address busybox large fs issues.

Change-Id: I1f5a5d717ac55ae6cf053ceaa1bf0b4e0061f00a
fix reversed logic on ui throttling

Change-Id: Ibbb353937254bbb764424f2521fd61f12b5ecefb
fix up tar restore

Change-Id: Ia3b89aa8a05a882f8e2bea6e1375df08e17e2b00
fixup backup and restore status

Change-Id: I2065755c26a2b49f09ac8592c61faa9474ce2f57
fix ui_nice_print define for code blocks

Change-Id: Id37af867f0b877d0a6713d03be8ff07bc73547b8
forward port CWM to jellybean

Change-Id: Ibd66afe03c9a2c183e4c7db35fe34adf0f5e24ff
rename variables to a more appropriate name

Change-Id: Ifdd37cf6f7109e55f0ab168bb8386e93a7751d94

Conflicts:

	nandroid.c
fix up yaffs backup/restore

Change-Id: I3e57f4d038d6a5e2657c06c6de26d303a37fd2b3
derped up the updater

Change-Id: Idbfb2399fcf6dbcf29f3049ff155d56f9a9a2a68
fix more cwm forward port breaks

Change-Id: Idf0b4384dbf25da39ff6adb5515824beca8eb8cb
updater: fix mounts.c reference

Change-Id: I1045d8671a0ea6b20f0a1a3c67c384b3dd2dc6c1
fix toggle menu indexes

Change-Id: I2fe229b2b7adca1e039880450fde9afdf84f2fc2