For android Java API 8 to 18
Create an activity which comprises of
1) an empty textview
2) a toolbar with the following buttons
Bold, Italic, underline, strikethrough, background-colour, foreground-colour, Center Align, Left Align, Right Align
3) an EditView
The user should be able to enter text as normal in the edit view
4) A submit button
The editor should work as a text editor is expected to work:
When the user selects bold, italic, underline, strikethrough or a background or foreground colour, that styling must be applied to new text entered in the box. If the user highlights a selection and selects one of the buttons, that styling must be applied to the selection via Spannable objects.
If the selection is entirely already styled in the selected style (eg: the user highlights an already-bolded section and clicks bold) - then the styling must be removed.
When the user is finished entering text into the editor, he clicks submit.
When submit is clicked, a function must be called that will return the editview's content as an HTML formatted string. That string must be entered into the textview for verification.
The buttons must be two-state buttons. They should have an 'on' state and an 'off' state representing the styling that will be applied to currently entered text. If the cursor is moved in the edit view, the buttons should reflect the styling of the text at the current cursor's position.
User enters "Hello world" in the editview
User highlights "Hello" and clicks "Italic". Hello becomes italicized in the Editview using a spannable.
User highlights "He" and clicks "Italic". "He" is already italic, so the Italic formatting is removed from "He". Now, only 'llo' is italicized. The user then goes to the end of the line to continue typing. The user presses Bold, and starts typing "Good Bye.". The text "GoodBye" appears in bold in the EditView as a spannable object
The user clicks submit
An HTML string appears in the textview, that reads: (HTML tags represented in () in this case):
He(em)llo(/em) world. (strong)Good Bye.(/strong)
-- other notes:
The background and foreground colour buttons must open a dialogview showing a colour picker dialog. The design of this is up to you, but should be user friendly.
"Terms of payment" Upon awarding the job, a milestone will be created for the "entire" amount owed. Freelancer will hold this money, but none of the milestone will be released until the job is 100% complete. Do not ask for any milestone payments until all the work is 100% finalized. Its important to note, that since Freelancer will hold ALL the funds, you have NO risk of not getting paid as long as the job is done properly and in a timely manner.
If this project takes more than 2 days, we need code updates every 2nd day. So on day 2, you send us whatever work you have done, whether complete or not. We just need to see that you have advanced and are dedicated to the work, not just 2 lines of code that signify nothing. In other words we need to make sure that whoever is doing the work, in fact is doing the work.
Bid responses sent to us that are automated - will be ignored, please do not send us automated bids if you want to be taken seriously. If you would like to be considered, please make sure to read the above requirements carefully.
This is a straight forward project for a programmer that "knows" how to code in Android Java.