lp:~syslock/tomdroid/note-editing

Created by Thomas Frenzel on 2011-07-22 and last modified on 2011-10-01

Description:
~~~~~~~
This is a modification to trunk that replaces the static TextView widget for note display with an EditText widget and allows to edit notes in a WYSIWYG manner and store changed note contents to the internal content provider. Currently all changes are lost during synchronization and some notes are not stored correctly.

Requirements:
~~~~~~~~~
- native Android/IME editing capabilities in notes
- no the need to enter a specific editing mode, just place cursor and type
- changes are stored automatically in Tomdroid (not necessarily synced automatically to Web or file system)
    - no need to hit a save button ever
- do not show on-screen keyboard without cursor placement/selection
- maybe hide on-screen keyboard on timeout/dragging events

Functional Analysis of Code in Trunk:
~~~~~~~~~~~~~~~~~~~~~~~
- Web and SDCard sync services store XML source in Note instances
- XML source is cached/stored by Androids content provider using managed queries, but currently cannot be synced back to SDCard or Snowy (see lp:~trappe/tomdroid/two-way-sync)
- note selection from the list triggers creation of a SpannableStringBuilder instance from the notes XML source, that can be used by a TextView (or EditText) to display formatted text, but is not cached/stored at all

TODO:
~~~~
- A first step would be to find a way to update XML content of a note with changes done to its Spannable object through an EditText instance, which can be done in at least two variants:
    - a) design a reverse converter that compiles XML content from a Spannable object
        - might be hard to reproduce 1:1 copy of original XML content with unchanged Spannable, but not sure if this is a problem
        - we already have partially working code utilizing this method
    - b) create hooks on each possible update to the Spannable object that trigger identical updates to the notes existing XML content
        - might be hard to hook and translate every possible Spannable update to a corresponding XML update
        - probably harder to get something working
- bidirectional sync services are needed capable of uploading/writing changed XML content to the Web/file system (see lp:~trappe/tomdroid/two-way-sync)
- formatting tools and editing rules equivalent to those of desktop tomboy have to be implemented, that enable the user to not only change text but also change text formatting properties

Get this branch:
bzr branch lp:~syslock/tomdroid/note-editing
Only Thomas Frenzel can upload to this branch. If you are Thomas Frenzel please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Thomas Frenzel
Project:
Tomdroid
Status:
Experimental

Recent revisions

245. By Thomas Frenzel on 2011-10-01

- merged recent changes from main

244. By Thomas Frenzel on 2011-09-05

merged from main

243. By Thomas Frenzel on 2011-09-02

merged changes from main

242. By Thomas Frenzel on 2011-07-28

- fixed missing list close tags on end of lists with last indentation level of > 1

241. By Thomas Frenzel on 2011-07-28

- replace some illegal XML characters with entities
- fix missing list end tags before non-list content

240. By Thomas Frenzel on 2011-07-27

- added experimental Spannable-to-XML converter which can store some notes correctly and destroys others

239. By Thomas Frenzel on 2011-07-26

- NewNote is a helper class that provides Tomdroid with a new empty note of a given name

238. By Thomas Frenzel on 2011-07-26

- note.xml describes the new Menu of the ViewNote activity

237. By Thomas Frenzel on 2011-07-26

- NoteXMLContentBuilder is a stub for a to be implemented note XML writer

236. By Thomas Frenzel on 2011-07-25

added new note option to main menu, menu to note view with save note option (warning this will currently remove any formatting), added delete note option to main menu

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:~tomdroid-maintainers/tomdroid/main
This branch contains Public information 
Everyone can see this information.