Skip to content

Commit 557a0d7

Browse files
committed
Refactor editor structure
1 parent b426344 commit 557a0d7

21 files changed

+1107
-731
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
{
2+
"spans": [
3+
{
4+
"insert": "RichEditor",
5+
"attributes": {
6+
"bold": true,
7+
"header": 1
8+
}
9+
},
10+
{
11+
"insert": "\nAndroid ",
12+
"attributes": {}
13+
},
14+
{
15+
"insert": "WYSIWYG ",
16+
"attributes": {
17+
"bold": true,
18+
"italic": true
19+
}
20+
},
21+
{
22+
"insert": "Rich editor for ",
23+
"attributes": {}
24+
},
25+
{
26+
"insert": "Jetpack compose.\n\n",
27+
"attributes": {
28+
"bold": true,
29+
"underline": true
30+
}
31+
},
32+
{
33+
"insert": "Features",
34+
"attributes": {
35+
"bold": true,
36+
"header": 3
37+
}
38+
},
39+
{
40+
"insert": "\nThe editor offers the following ",
41+
"attributes": {}
42+
},
43+
{
44+
"insert": "options:\n",
45+
"attributes": {
46+
"bold": true,
47+
"italic": true,
48+
"underline": true
49+
}
50+
},
51+
{
52+
"insert": "\n",
53+
"attributes": {}
54+
},
55+
{
56+
"insert": "Bold\n",
57+
"attributes": {
58+
"bold": true
59+
}
60+
},
61+
{
62+
"insert": "Italic\n",
63+
"attributes": {
64+
"italic": true
65+
}
66+
},
67+
{
68+
"insert": "Underline\n",
69+
"attributes": {
70+
"underline": true
71+
}
72+
},
73+
{
74+
"insert": "Different ",
75+
"attributes": {}
76+
},
77+
{
78+
"insert": "Headings\n\n",
79+
"attributes": {
80+
"bold": true,
81+
"italic": true,
82+
"underline": true
83+
}
84+
},
85+
{
86+
"insert": "Bullet List:\n",
87+
"attributes": {
88+
"bold": true
89+
}
90+
},
91+
{
92+
"insert": "Item 1\n",
93+
"attributes": {
94+
"list": "bullet"
95+
}
96+
},
97+
{
98+
"insert": "Item 2\n",
99+
"attributes": {
100+
"list": "bullet"
101+
}
102+
},
103+
{
104+
"insert": "Item 3\n",
105+
"attributes": {
106+
"list": "bullet"
107+
}
108+
},
109+
{
110+
"insert": "Item 4\n",
111+
"attributes": {
112+
"list": "bullet"
113+
}
114+
},
115+
{
116+
"insert": "Item 5\n",
117+
"attributes": {
118+
"list": "bullet"
119+
}
120+
},
121+
{
122+
"insert": "Item 6\n",
123+
"attributes": {
124+
"list": "bullet"
125+
}
126+
},
127+
{
128+
"insert": "\n",
129+
"attributes": {}
130+
},
131+
{
132+
"insert": "Credits",
133+
"attributes": {
134+
"bold": true,
135+
"header": 3
136+
}
137+
},
138+
{
139+
"insert": "\n\n",
140+
"attributes": {}
141+
},
142+
{
143+
"insert": "RichEditor ",
144+
"attributes": {
145+
"bold": true
146+
}
147+
},
148+
{
149+
"insert": "for compose is developed and maintained by the ",
150+
"attributes": {}
151+
},
152+
{
153+
"insert": "canopas team.\n\n",
154+
"attributes": {
155+
"bold": true,
156+
"italic": true,
157+
"underline": true
158+
}
159+
},
160+
{
161+
"insert": "Thank You! 😊\n\n",
162+
"attributes": {}
163+
}
164+
]
165+
}

app/src/main/assets/sample-data.json

-110
This file was deleted.

app/src/main/java/com/example/texteditor/MainActivity.kt

+17-11
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ import androidx.compose.ui.res.painterResource
3939
import androidx.compose.ui.tooling.preview.Preview
4040
import androidx.compose.ui.unit.dp
4141
import androidx.compose.ui.window.PopupProperties
42-
import com.canopas.editor.ui.data.RichEditorState
42+
import com.canopas.editor.ui.data.QuillEditorState
4343
import com.canopas.editor.ui.ui.RichEditor
4444
import com.canopas.editor.ui.utils.TextSpanStyle
45-
import com.example.texteditor.parser.JsonEditorParser
45+
import com.example.texteditor.parser.QuillJsonEditorParser
4646
import com.example.texteditor.ui.theme.TextEditorTheme
4747

4848
class MainActivity : ComponentActivity() {
@@ -66,21 +66,21 @@ fun Sample() {
6666
TextEditorTheme {
6767
val context = LocalContext.current
6868

69-
val state = remember {
69+
val quillState = remember {
7070
val input =
71-
context.assets.open("sample-data.json").bufferedReader().use { it.readText() }
72-
RichEditorState.Builder()
71+
context.assets.open("android-quill-sample.json").bufferedReader().use { it.readText() }
72+
QuillEditorState.Builder()
7373
.setInput(input)
74-
.adapter(JsonEditorParser())
74+
.adapter(QuillJsonEditorParser())
7575
.build()
7676
}
7777

7878
Column {
7979

80-
StyleContainer(state)
80+
StyleContainer(quillState)
8181

8282
RichEditor(
83-
state = state,
83+
state = quillState,
8484
modifier = Modifier
8585
.fillMaxWidth()
8686
.weight(1f)
@@ -94,7 +94,7 @@ fun Sample() {
9494

9595
@Composable
9696
fun StyleContainer(
97-
state: RichEditorState,
97+
state: QuillEditorState,
9898
) {
9999
Row(
100100
Modifier
@@ -123,6 +123,12 @@ fun StyleContainer(
123123
value = state,
124124
)
125125

126+
StyleButton(
127+
icon = R.drawable.baseline_format_list_bulleted_24,
128+
style = TextSpanStyle.BulletStyle,
129+
value = state,
130+
)
131+
126132
IconButton(
127133
modifier = Modifier
128134
.padding(2.dp)
@@ -144,7 +150,7 @@ fun StyleContainer(
144150

145151
@Composable
146152
fun TitleStyleButton(
147-
value: RichEditorState
153+
value: QuillEditorState
148154
) {
149155
var expanded by remember { mutableStateOf(false) }
150156

@@ -220,7 +226,7 @@ fun DropDownItem(
220226
fun StyleButton(
221227
@DrawableRes icon: Int,
222228
style: TextSpanStyle,
223-
value: RichEditorState,
229+
value: QuillEditorState,
224230
) {
225231
IconButton(
226232
modifier = Modifier

app/src/main/java/com/example/texteditor/parser/JsonEditorParser.kt

-23
This file was deleted.

0 commit comments

Comments
 (0)