From 2ff3373152a9e14fa97db27eb41c79c23892d6b7 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 29 Jan 2016 21:25:07 +0100 Subject: [PATCH] Added formatting menu --- app/build.gradle | 14 +- app/src/main/AndroidManifest.xml | 3 +- .../java/de/kuschku/libquassel/Client.java | 10 ++ .../libquassel/syncables/types/Identity.java | 2 +- .../quasseldroid_ng/ui/chat/ChatActivity.java | 71 ++++++++-- .../res/drawable-hdpi/ic_format_bold_dark.png | Bin 0 -> 432 bytes .../drawable-hdpi/ic_format_bold_light.png | Bin 0 -> 543 bytes .../res/drawable-hdpi/ic_format_fill_dark.png | Bin 0 -> 435 bytes .../drawable-hdpi/ic_format_fill_light.png | Bin 0 -> 642 bytes .../drawable-hdpi/ic_format_italic_dark.png | Bin 0 -> 319 bytes .../drawable-hdpi/ic_format_italic_light.png | Bin 0 -> 428 bytes .../drawable-hdpi/ic_format_paint_dark.png | Bin 0 -> 301 bytes .../drawable-hdpi/ic_format_paint_light.png | Bin 0 -> 316 bytes .../ic_format_underline_dark.png | Bin 0 -> 424 bytes .../ic_format_underline_light.png | Bin 0 -> 529 bytes .../res/drawable-mdpi/ic_format_bold_dark.png | Bin 0 -> 316 bytes .../drawable-mdpi/ic_format_bold_light.png | Bin 0 -> 375 bytes .../res/drawable-mdpi/ic_format_fill_dark.png | Bin 0 -> 303 bytes .../drawable-mdpi/ic_format_fill_light.png | Bin 0 -> 453 bytes .../drawable-mdpi/ic_format_italic_dark.png | Bin 0 -> 273 bytes .../drawable-mdpi/ic_format_italic_light.png | Bin 0 -> 327 bytes .../drawable-mdpi/ic_format_paint_dark.png | Bin 0 -> 214 bytes .../drawable-mdpi/ic_format_paint_light.png | Bin 0 -> 227 bytes .../ic_format_underline_dark.png | Bin 0 -> 279 bytes .../ic_format_underline_light.png | Bin 0 -> 375 bytes .../drawable-xhdpi/ic_format_bold_dark.png | Bin 0 -> 454 bytes .../drawable-xhdpi/ic_format_bold_light.png | Bin 0 -> 556 bytes .../drawable-xhdpi/ic_format_fill_dark.png | Bin 0 -> 484 bytes .../drawable-xhdpi/ic_format_fill_light.png | Bin 0 -> 803 bytes .../drawable-xhdpi/ic_format_italic_dark.png | Bin 0 -> 341 bytes .../drawable-xhdpi/ic_format_italic_light.png | Bin 0 -> 462 bytes .../drawable-xhdpi/ic_format_paint_dark.png | Bin 0 -> 313 bytes .../drawable-xhdpi/ic_format_paint_light.png | Bin 0 -> 329 bytes .../ic_format_underline_dark.png | Bin 0 -> 441 bytes .../ic_format_underline_light.png | Bin 0 -> 563 bytes .../drawable-xxhdpi/ic_format_bold_dark.png | Bin 0 -> 729 bytes .../drawable-xxhdpi/ic_format_bold_light.png | Bin 0 -> 906 bytes .../drawable-xxhdpi/ic_format_fill_dark.png | Bin 0 -> 667 bytes .../drawable-xxhdpi/ic_format_fill_light.png | Bin 0 -> 1076 bytes .../drawable-xxhdpi/ic_format_italic_dark.png | Bin 0 -> 485 bytes .../ic_format_italic_light.png | Bin 0 -> 664 bytes .../drawable-xxhdpi/ic_format_paint_dark.png | Bin 0 -> 410 bytes .../drawable-xxhdpi/ic_format_paint_light.png | Bin 0 -> 464 bytes .../ic_format_underline_dark.png | Bin 0 -> 633 bytes .../ic_format_underline_light.png | Bin 0 -> 824 bytes .../drawable-xxxhdpi/ic_format_bold_dark.png | Bin 0 -> 926 bytes .../drawable-xxxhdpi/ic_format_bold_light.png | Bin 0 -> 1077 bytes .../drawable-xxxhdpi/ic_format_fill_dark.png | Bin 0 -> 983 bytes .../drawable-xxxhdpi/ic_format_fill_light.png | Bin 0 -> 1362 bytes .../ic_format_italic_dark.png | Bin 0 -> 599 bytes .../ic_format_italic_light.png | Bin 0 -> 867 bytes .../drawable-xxxhdpi/ic_format_paint_dark.png | Bin 0 -> 566 bytes .../ic_format_paint_light.png | Bin 0 -> 582 bytes .../ic_format_underline_dark.png | Bin 0 -> 834 bytes .../ic_format_underline_light.png | Bin 0 -> 1104 bytes app/src/main/res/layout/activity_chat.xml | 1 + app/src/main/res/layout/content_main.xml | 3 +- app/src/main/res/layout/slider_main.xml | 128 +++++++++++++----- app/src/main/res/menu/formatting.xml | 29 ++++ app/src/main/res/values/attrs.xml | 7 + app/src/main/res/values/strings.xml | 96 +++++++++++++ app/src/main/res/values/styles.xml | 12 ++ 62 files changed, 322 insertions(+), 54 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_format_bold_dark.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_bold_light.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_fill_dark.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_fill_light.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_italic_dark.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_italic_light.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_paint_dark.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_paint_light.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_underline_dark.png create mode 100644 app/src/main/res/drawable-hdpi/ic_format_underline_light.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_bold_dark.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_bold_light.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_fill_dark.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_fill_light.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_italic_dark.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_italic_light.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_paint_dark.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_paint_light.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_underline_dark.png create mode 100644 app/src/main/res/drawable-mdpi/ic_format_underline_light.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_bold_dark.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_bold_light.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_fill_dark.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_fill_light.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_italic_dark.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_italic_light.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_paint_dark.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_paint_light.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_underline_dark.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_format_underline_light.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_bold_dark.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_bold_light.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_fill_dark.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_fill_light.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_italic_dark.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_italic_light.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_paint_dark.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_paint_light.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_underline_dark.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_underline_light.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_bold_dark.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_bold_light.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_fill_dark.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_fill_light.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_italic_dark.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_italic_light.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_paint_dark.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_paint_light.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_underline_dark.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_underline_light.png create mode 100644 app/src/main/res/menu/formatting.xml diff --git a/app/build.gradle b/app/build.gradle index 63a2c2fbd..efc22453e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,6 +2,14 @@ apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' apply plugin: 'me.tatarka.retrolambda' +dependencies { + repositories { + flatDir { + dirs 'libs' + } + } +} + if (project.hasProperty("storeFile")) { android { signingConfigs { @@ -104,7 +112,7 @@ dependencies { compile 'joda-time:joda-time:2.9.1' compile 'org.joda:joda-convert:1.8' compile 'com.bignerdranch.android:expandablerecyclerview:2.0.4' - compile 'com.sothree.slidinguppanel:library:3.2.1' + compile(name:'asup-release', ext:'aar') compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' @@ -112,8 +120,8 @@ dependencies { compile 'com.android.support:recyclerview-v7:23.1.1' compile 'com.android.support:cardview-v7:23.1.1' - compile files('libs/aspm-annotations.jar') - apt files('libs/aspm-compiler.jar') + compile(name:'aspm-annotations', ext:'jar') + apt(name:'aspm-compiler', ext:'jar') compile 'com.jakewharton:butterknife:8.0.0-SNAPSHOT' apt 'com.jakewharton:butterknife-compiler:8.0.0-SNAPSHOT' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1b5240e8d..f75ba9a47 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,6 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true"> - <service android:name=".service.QuasselService" /> <activity @@ -19,10 +18,10 @@ android:theme="@style/AppTheme.Light"> <intent-filter> <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> - </application> </manifest> diff --git a/app/src/main/java/de/kuschku/libquassel/Client.java b/app/src/main/java/de/kuschku/libquassel/Client.java index 47831854c..dc24c9aae 100644 --- a/app/src/main/java/de/kuschku/libquassel/Client.java +++ b/app/src/main/java/de/kuschku/libquassel/Client.java @@ -30,6 +30,7 @@ import de.kuschku.libquassel.primitives.types.QVariant; import de.kuschku.libquassel.syncables.types.BufferSyncer; import de.kuschku.libquassel.syncables.types.BufferViewConfig; import de.kuschku.libquassel.syncables.types.BufferViewManager; +import de.kuschku.libquassel.syncables.types.Identity; import de.kuschku.libquassel.syncables.types.IgnoreListManager; import de.kuschku.libquassel.syncables.types.IrcChannel; import de.kuschku.libquassel.syncables.types.IrcUser; @@ -65,6 +66,7 @@ public class Client { private BufferSyncer bufferSyncer; private ClientData clientData; private IgnoreListManager ignoreListManager; + private Map<Integer, Identity> Identities = new HashMap<>(); public Client(@NonNull final BusProvider busProvider) { this(new SimpleBacklogManager(busProvider), busProvider); @@ -286,4 +288,12 @@ public class Client { public void setIgnoreListManager(IgnoreListManager ignoreListManager) { this.ignoreListManager = ignoreListManager; } + + public void addIdentity(int id, Identity identity) { + Identities.put(id, identity); + } + + public Identity getIdentity(int id) { + return Identities.get(id); + } } diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/Identity.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/Identity.java index dc065d339..dd43c8f90 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/Identity.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/Identity.java @@ -259,7 +259,7 @@ public class Identity extends SyncableObject<Identity> { @Override public void init(@NonNull InitDataFunction function, @NonNull BusProvider provider, @NonNull Client client) { - + client.addIdentity(Integer.valueOf(function.objectName), this); } @Override diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java index ebc3a2790..700611bc3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.java @@ -10,23 +10,31 @@ import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; +import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.Snackbar; +import android.support.v4.widget.NestedScrollView; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.AppCompatEditText; import android.support.v7.widget.AppCompatImageButton; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; +import android.text.method.ScrollingMovementMethod; import android.util.Log; import android.view.View; import android.view.ViewGroup; +import android.widget.ScrollView; +import android.widget.Scroller; import com.afollestad.materialdialogs.MaterialDialog; import com.google.common.base.Splitter; import com.mikepenz.fastadapter.FastAdapter; import com.mikepenz.fastadapter.IExpandable; +import com.mikepenz.fastadapter.IItem; +import com.mikepenz.fastadapter.adapters.ItemAdapter; import com.mikepenz.materialdrawer.AccountHeader; import com.mikepenz.materialdrawer.AccountHeaderBuilder; import com.mikepenz.materialdrawer.Drawer; @@ -34,6 +42,7 @@ import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; import com.mikepenz.materialdrawer.model.ProfileDrawerItem; import com.mikepenz.materialdrawer.model.SecondaryDrawerItem; +import com.sothree.slidinguppanel.ScrollableViewHelper; import com.sothree.slidinguppanel.SlidingUpPanelLayout; import java.util.Map; @@ -78,6 +87,8 @@ public class ChatActivity extends AppCompatActivity { @Bind(R.id.sliding_layout) SlidingUpPanelLayout slidingLayout; + @Bind(R.id.chatlineScroller) + ScrollView chatlineScroller; @Bind(R.id.chatline) AppCompatEditText chatline; @Bind(R.id.send) @@ -91,6 +102,9 @@ public class ChatActivity extends AppCompatActivity { @Bind(R.id.messages) RecyclerView messages; + @Bind(R.id.amvMenu) + ActionMenuView formattingMenu; + @PreferenceWrapper(BuildConfig.APPLICATION_ID) public static abstract class Settings { @StringPreference("QUASSEL_LIGHT") @@ -216,12 +230,35 @@ public class ChatActivity extends AppCompatActivity { } }); + getMenuInflater().inflate(R.menu.formatting,formattingMenu.getMenu()); + messages.setItemAnimator(new DefaultItemAnimator()); messages.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true)); messageAdapter = new MessageAdapter(this, context, new AutoScroller(messages)); messages.setAdapter(messageAdapter); - msgHistory.setAdapter(new FastAdapter<>()); + FastAdapter<IItem> fastAdapter = new FastAdapter<>(); + ItemAdapter<IItem> itemAdapter = new ItemAdapter<>(); + itemAdapter.wrap(fastAdapter); + itemAdapter.add( + new PrimaryDrawerItem().withName("Entry #1"), + new PrimaryDrawerItem().withName("Entry #2"), + new PrimaryDrawerItem().withName("Entry #3"), + new PrimaryDrawerItem().withName("Entry #4"), + new PrimaryDrawerItem().withName("Entry #5"), + new PrimaryDrawerItem().withName("Entry #6"), + new PrimaryDrawerItem().withName("Entry #7"), + new PrimaryDrawerItem().withName("Entry #8"), + new PrimaryDrawerItem().withName("Entry #9"), + new PrimaryDrawerItem().withName("Entry #10"), + new PrimaryDrawerItem().withName("Entry #11"), + new PrimaryDrawerItem().withName("Entry #12"), + new PrimaryDrawerItem().withName("Entry #13"), + new PrimaryDrawerItem().withName("Entry #14"), + new PrimaryDrawerItem().withName("Entry #15"), + new PrimaryDrawerItem().withName("Entry #16") + ); + msgHistory.setAdapter(fastAdapter); msgHistory.setLayoutManager(new LinearLayoutManager(this)); msgHistory.setItemAnimator(new DefaultItemAnimator()); @@ -233,6 +270,7 @@ public class ChatActivity extends AppCompatActivity { send.setOnClickListener(view -> sendInput()); + slidingLayout.setAntiDragView(R.id.card_panel); slidingLayout.setPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { @@ -241,24 +279,12 @@ public class ChatActivity extends AppCompatActivity { @Override public void onPanelCollapsed(View panel) { - int selectionStart = chatline.getSelectionStart(); - int selectionEnd = chatline.getSelectionEnd(); - - chatline.getLayoutParams().height =context.getThemeUtil().res.actionBarSize; - chatline.setSingleLine(true); - - chatline.setSelection(selectionStart, selectionEnd); + setChatlineExpanded(false); } @Override public void onPanelExpanded(View panel) { - int selectionStart = chatline.getSelectionStart(); - int selectionEnd = chatline.getSelectionEnd(); - - chatline.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; - chatline.setSingleLine(false); - - chatline.setSelection(selectionStart, selectionEnd); + setChatlineExpanded(true); } @Override @@ -271,6 +297,21 @@ public class ChatActivity extends AppCompatActivity { } }); + setChatlineExpanded(slidingLayout.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED); + } + + public void setChatlineExpanded(boolean expanded) { + int selectionStart = chatline.getSelectionStart(); + int selectionEnd = chatline.getSelectionEnd(); + + if (expanded) { + chatlineScroller.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT; + } else { + chatlineScroller.getLayoutParams().height = context.getThemeUtil().res.actionBarSize; + } + chatline.setSingleLine(!expanded); + + chatline.setSelection(selectionStart, selectionEnd); } public void showThemeDialog() { diff --git a/app/src/main/res/drawable-hdpi/ic_format_bold_dark.png b/app/src/main/res/drawable-hdpi/ic_format_bold_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0990216d2ef22cc8da6770cb38939e15fa9263d9 GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+VMr%(O$B>A_Z>MbZa&{DOJ-?zgL9uC4et>|8 z5{H@C%Qr`k#R>dZn4j=8-y^_Vdn?Bc4yC5Ga}|!b2?}bj_ifqmY$E5)TKyCA^4`y` zEKV<%IFVwM+_Yp_%^uGz?^}~iO!?ZXc1|;~_nF&yM0_{n91o-XLo33oB<Cz|3{6<( zew$@m<K`7>zg2H)+A(WMyTX>IYlZ)wJhO&bhV4^OY8%&&Rc9tFk-EV1L_7bVhqLZW zr3t@yOW7^7jtX3m`0!WshT&%M_x!=<FDQSo@o~y>&OR`ANou~+o1+{C>}wb%-~Fsp zpp|*?%)Z52U&Z#^y|HUaze3IFVD*!eXWrB;kU8;ss-#xJLL=u%uMXrX*jE-M>%0B1 zzQVwCZnAXJhonDCQ`5fBJ7AQyg7-~zbFkzumb?b$1&L|zRZZrdOfmXDS>Al&H{Ja0 SChEX2W$<+Mb6Mw<&;$TU)vN>n literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_bold_light.png b/app/src/main/res/drawable-hdpi/ic_format_bold_light.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcb664aef2419b187d37fe5c7e2adf91e4b5ad6 GIT binary patch literal 543 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+V##Np!jv*0;-%c^~mI)MTJwJ1az_JJ?!T*h| z8Y&x{90a(7mxyxy;BNZ*DQ)`7Wl?t{JvOIG9aL&jN!2o6kf5xh`0{Pbfn}VWyCV~0 z`p$CoM=It^ri-Q6RUDOhSNnd??{_f^mMl?;e<798lgV(SnB%YWr}ibz_rLQm(%3cY z*o5haRkbHwW85Rj!*+aY)Z341cyF$$ocCQWc#lh%b8NMz6{~^A(Hx27Z87FGGmiT1 zzFRl%+987&k4a0o6MniW{}eiKTuIBsar4bL6Yp#{_4Ho%v-0}|-s#51B5e<wmb9() z{Pkwm{FUuJhVCnypHEV$<T|kZiCn|=RtcsJne`Kd>%Zrp|GX`F?KS=Dyr17KES_Y) z-1Efk3$HRveub^S9^Pei#aDk)JY&zA8C^^G14S(7mOgJ5WN1=Y;bnDf$4*t<Z@>SF zGuS<iT^QZ@_y>2x_HAyTW_srZ0@XZAPt)LN(rS>6o?P;9QuT76kcZu*FDwU`Z}Xr0 z|II(m*@O33p{iPw$G+~zKX#vPbNzDRWPwG^Q>i)A7uGYJ^LY1b-~O8~Oa6%!e4GRX czfYP*RkU1|zI$>zFbWwwUHx3vIVCg!03U?u2LJ#7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_fill_dark.png b/app/src/main/res/drawable-hdpi/ic_format_fill_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf459f319782b66e3c6beccd7b34ea22d561dde GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+VMmtXz$B>A_Z?75p9X1d-_VK%xT2;e5#?Uzn zg4tK)@fZ{`T$w8T#U%A12an7`X2HEoF$|oFztUHz1|_pwhvl%<2elnJfAM_TBNr8e z1Ck$De4Kvsh&5L}oiP28#si@r57hrNm4*g3u88gn=418YX?Uc;{_L{M&p^2|TP;5= zs+kd1ZFePp#+nrYK4Kv{X#pYzY_lSK*jF(g(_9c5@57!Ydh7d<!ndch>KUr|FBG1C zaq*`2v{_qJjWzD8E19|Tn=UvYyFfKy|2>0*+*{Xnrk`q^$yj}PAA8!)0KGFDH=;_T z6HH7_?G$A4_Wyfn9k0-;SF=0LxTahW+$KD6=gO_dU%$-s@_O;JnN7#Wc#8+q)_}LQ zs}vtpv*zfWITk9uUtT7!PD{!B*_XJ``^>*%J5KEEuvz^o`O}*#ARuzWe5;<r?w}b< RP6C6K!PC{xWt~$(699TtsWbop literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_fill_light.png b/app/src/main/res/drawable-hdpi/ic_format_fill_light.png new file mode 100644 index 0000000000000000000000000000000000000000..edb8ffb3db2ac9b9def5cc29ddff8eca50800cab GIT binary patch literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP001Na001Nacn2Gg0006F zNkl<ZSi|j>F^<zf6o$XCG8Cku$_<dB2x&VCM6p`I1)zYHI06z#9v3c<D;Ks!wc-e& zU@2&!NP#G*S5eNe2QUR*{Aea9#EvuL^=g~^&B(vz&3t;#^JWx|ilS&LA|JHYFVZx< zbdB?s@_<<Y6JVvaKE5faz-3Zh*Y|;Y_H$ZQ)gq4L$*lnuMezkV1%BT&lvBypGR8au z=D;0m4PHK{46T*t`Ddln>kVu0OnCvtaXb-`H(U0gP|hWb<9Je4)dHAW>&lKJI}TDl zC!jVMrPNCR5&1YI)Lx)nFj<zJ14L2ud`PHHpnWiF4GFaq$Q5R2s8%3fm?5DWKw%h; zl~O-}nGZ|{)KWwq7DZ9I#5ej-5CpIK!T@Ahc5YALx-HD?nob&R8+Bd(QR-jfMk4ab z7~{Gg03y;@(>1oOQ_q2=7eTj{cFlf3MNyPm>l0u#0L)5jeX{ZYC}Yf9I!<@%U6!Wl zrPliRnox}s7KY(F;JqDN<=Ys0!x&>80pIPO0zA(1{D)J9u9>L@Op+u4aJG>E1)N#m z9jFIXYa=Yn@+ok%HTTH+en1{jJG-({YStFe<~u*o_CR%B5h8No>U+HyH=s8A)N<c_ zmFM|an!RXl{r|J(1GH9>BzMcQJOvn!$MYmfe!0X&QS_v)>jyy)Tx41Ht<T;E9dyt^ c2i>;*0!#xrjiY(KCjbBd07*qoM6N<$f-F-Fl>h($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_italic_dark.png b/app/src/main/res/drawable-hdpi/ic_format_italic_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a092bcec82be561970c5b84c7cfff1a5a3687d GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3$&Rl&6bhNW|f{(>C%p8wfDm50p~#IIgp1Vjol5 z37(F~6M9!96<Cv+6k?^6Cb|b2u+(<#Kea98|IJUg^&eTB+t;EynQ>85>j%?&2Y<Q5 zXiR&2?B~@bbGuJuUfSPz;%Z8`0~gPp;29@+oVHGS*>J>5jj>8KBsactZ@|hFIfpFG zD_RSW1*s+brD<N#n0YNoP4@liDVKs)1R3ouT~+S2Vw=rer;|MUy}r8EOBMt=?|gON z^~oQtekYFA^2c0RZ^^aZQ2)2?Pl4j`LK*c*>Tdg(Z<#jBfdYoX)78&qol`;+0Bme^ A<^TWy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_italic_light.png b/app/src/main/res/drawable-hdpi/ic_format_italic_light.png new file mode 100644 index 0000000000000000000000000000000000000000..27e7088ce8bf50decb87561a5d78ddeb92f9978d GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+VMsrUW$B>A_Z>QP%9WfASy>F43At=OqYgU(W z0h1oXQLav|Z5>mNgdZqeBJ!rJgDZ;5?|@{+L=6GeMN2(xLL84d-Li-i;i?b)V^mjJ zre^P;BJ?v_Bc&)%<W2DUt#Q@1hF|-RIP6=ZIC*B|*W)fG>>IM@)}=kGjz7O(*}I8B z=XwnF8HBv;E=R@xuF8EfO)^=`Z^rj+x$lovu(F@pl*4^srSg3f-_Mqw3sgM)7;>V6 zv|A#2zjE`rxQKt7F;jj@(E7<Nr#}A?IMApZ-&)c3?!qBS`>UmYEj$%8pZ0Y0<@C;+ z-pDN@e?p?TZ@&Ju{&lbO)H%1jbhot#n6>OULz&J>VJ8;T;`0mq-6N-6k~97+b6}t9 zUcrmy|3gBTw*C0G>xQE1nVOx;QqHfGlznmkZ`~1xi5@CKAD?h9<p@n=zp|Sb7@iEC Lu6{1-oD!M<g1)1L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_paint_dark.png b/app/src/main/res/drawable-hdpi/ic_format_paint_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8531992066bef9b168e0281e9348071825b309a0 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3$$*ho_5UNW|f{(+#-}8}PXP*I&5TgYV`9%O%eF zGpa>|H1>NhyL982;EgL)i*rx<PZDQ7w_hQ1(w0+gp_ir<=`%ZNH>^(Vl|Fe}QZcej zhQY(A>{(K6W{3RZIo(`KFKoN;udOX+;n^GNn(-blGBvio{kf>bU0TJRVe!NOqg?w} zBD>}&c$PC1`{ne!vI?0SaP0(>jR#-4P{?&f@gg8vcxgv~vD5qJui+E5RK8A{wm$xa h(n@`$CsUp<=LSz(Gvnb@XP_S#JYD@<);T3K0RS$&YZU+h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_paint_light.png b/app/src/main/res/drawable-hdpi/ic_format_paint_light.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb93297b5de6c2ffba90f7e6d555911171e11f2 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3$&RxTlL_NW|f{QysYuD+svmSF$Z^X<O&bJ-NE% zCihdBSdP?Pg@LzRd}jzWf1Y;k$#02frc(zEido<P6?I^Lpt8ZA!9d`m>h%m^Q%%Vu zbJi`nnC7ISdCFT>lAGJNP<_$A>VxZiZ*^^J?Kr{kBG^`Qp~9QsDbt0dSe81SIsNDv z*GHk#aVeL!{0*M|;9AX-z4pvIauq}FwyYA4Dox@1cW>F!5OYP*ARt<}H*ld@OON6E wm8EHQZ<SKk)*5~Op=@mRTuvxBi0>%-Y#U7mUB4%CKrb<Py85}Sb4q9e00!f4t^fc4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_underline_dark.png b/app/src/main/res/drawable-hdpi/ic_format_underline_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8432f789f23156c8d3eb62bbd6885263dd629336 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+VMq^JG$B>A_Z>QV)9X1eYujem)d9U@*rMb)- z6sj2g4j5V;xFTv;^6HF-{{hy3X>pB$oGnMLF>jIYW>r(^ox7unt3F8Of93gqDW^M? zQ;qI!n4s|B)ardRZq_E;Te{@&`IBezCP#dptE9C4gRpZE-y{ij74Fo9I#XKfX73e^ zs(!lQeZ1=%D;33%7k9P!m0Q|OlS{;^KAlp2utf9V(VnbhFLb^HtUBLtE9Sa+w!~uF z0}K&U*D01e>{r_M{#Q-d0fm_pW@jAopVz2a@NnMBY;9vtt;a1q5d!C#IxJ@f2H7Ua zDH^j^Sx?mL?7jQ7Bv^4{VeMnH<nk!52OgJZE^)s8MQx?Q=Ie9UpW2`LdK%;MN#}&m z?=;zbJZ$EH((dGYN6v1u{D0@`;+L`;r%ZYF{d;%W?WreOJ~6(!v%<<{!IX)>uw?Lb L^>bP0l+XkKDbTQ} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_format_underline_light.png b/app/src/main/res/drawable-hdpi/ic_format_underline_light.png new file mode 100644 index 0000000000000000000000000000000000000000..77711cfdff28047d42c6c49deaf1b02fbf663590 GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zv<Dcwoy@ia36>Q&rUPlPeufHm>3#+V#yOrYjv*0;-%j7}#q20>Y`^EFmTIQO94~X< zu!sgfl~tK=>{!{yO<{)`TMOSi%_=!~Na+WYU4vt5$+c~ZIHomfn<p1fe0<{Rw>=N! zZ>+yHbN0_~+lve88MId?DNR<=e443K6YAB=^E-;c?AgYkS4OLsCncRZbN9wC#s<L) zIcC;si}prn39m>=`ZIZxgV+hC$OZSW?PtC8nN?77?|-o?S(D|I6_kE;v~HDQU$?YE zggNQi^N5J@*mCXF>Z?{RuMnAcAy?^L<-F;)URTC-c2u3V;bP2OyPnY}d1abJo3o;e zX{2_`inc@xmJ2;gmrr#6_RzPB!NIHY&>2Uizf2FhX3k%vnZs<sv|;9qzSUD+&3u#0 z!_r_i_Z-K8#6CHO9Up7=vo`p4eYR=8Q8>rUn7>DQ27BM*Exw7L{9bskdu_%rNBH79 zCjPW%?hNUU0(YK%{U>%I#;N0L(at^oF4=-7cVGLp@BaJ!q93<LEnB+X$7?6^gM_Kl zMxT#-|66$LtCw3b^MRvX?H5=laD91hXTM3!r19YWG&#YGJ9czW4c%qOSkcs6%xbE1 Q8W?E|p00i_>zopr05!wlF8}}l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_bold_dark.png b/app/src/main/res/drawable-mdpi/ic_format_bold_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..db1cdff130960a8baeefc5b365d0ed0755c12e3d GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%x-aZeY=5Rc<;C+YGr849%CXJ`{JIoY=0T9O4j zXM}+a(?Q7{>?#@O8XOZYJ_ual>rpWyPhz94x3{p1{neA%&!3kz9Eo?fW<9BVvTzNP zs{bVJaK4`*4z1ax@0e%I{%+1Nv%{uIZN&vMFS(mVCQUXq!8cm2iC<n5Vqqf2c)-!+ zTwLzeA5XMTo|&qAWf5b;($`Jz#Y`D}7@w%k>o{R|ViA{a_$RYzuBy4SAMAFOWiS?< xzvtGfjjk${iZ^=$ANUoyZ~Cr0TbPquzxkiQ!l1Pioq=9r@O1TaS?83{1OUa)ZWsUn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_bold_light.png b/app/src/main/res/drawable-mdpi/ic_format_bold_light.png new file mode 100644 index 0000000000000000000000000000000000000000..39dd8cf6ede5ac4efaed354ebfc2944baf888124 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q#+`j7**`jv*e$-%i@-b;LoSZGS9}QuvaM-+0$u z-M+#0${{`e1t~uHi%%}wxSM^$2HP5zXjW<I+%KZ*0zHh(IOiOEa-{dhllIosX*27e zKW-2FuY38s#PN+~Hnj}>2P&tfZm%_dqi?^B^9>WXprzaqhfw|5%rVSd5}~DmBCN5s z()OkW=TvoT7~Bt(Nwft&Nc3=t4+*`x`#YOb(YB^+E}3iJciWtwzlS&E>!aD9W^XOK zcKvyG2D^pqkp)wgmaoz;{p;fLZLi?g;3+C6_voB{ek+Ad=O0txV%_(=VZkguU5hLX zj+y*;x0m;pW>y>X`fImVud|bP@qVDj(X`jZce-4$TW{22|L)jyPpt-9ZD7zac)I$z JtaD0e0su(RjWYlM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_fill_dark.png b/app/src/main/res/drawable-mdpi/ic_format_fill_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8d931ec33afcc75445cf48e56765e4f48d7f580a GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%x-E>9Q75Rc<;CvD_CWFX+WUO}?KD7vCI<jo}2 z2)01wi)maz6K655kYiOZVL5KNiPv}Em#2@;{r4<aH&RaEp2MiF%JQc2RTvA?l>-mO zCj=XEJTRH@W`gIBz`5*?IM-i&DG<M7<x)qdhmi^g1i0om@+>@a_RIQx)`B~kg%++* zyWf%YMN04jgRfr)@A`(g*ryG9bj4rzto4??e*Ec-#}P5VgpO2CJCIRzETf?@=1ShO l<*e&oebYX$D)j$#=Fobnwp@-Q(Li4?c)I$ztaD0e0sz2dZR7v| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_fill_light.png b/app/src/main/res/drawable-mdpi/ic_format_fill_light.png new file mode 100644 index 0000000000000000000000000000000000000000..29811863c7d0479792cf0bb94fe3a9a56fbcf72b GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q#+`i~*i5jv*e$-%c^iI_x0e`oH4ok_lW3FNJ%g zdOS5#+q(J*n^7i@P=@zn;TLk93KExo@$GBa{Y8r<`p5=rO(p5>3iC;m)gJIS-IYy~ zt4|X+xJboQ>HO!oE!QFgMWpAfY}8d~nZWR_Mc}oG@9}y*j;4f@XVx<;y6<p8^vvf! zUYcLo9>_T?-8%1E?)3wrYhM3iJCIv!d%E+g<E&-LibtdzSQ4(<od0FDQ158%{dyLL zrB{mMIZ8F>J^#sPab}5l%Pz6|tM!+drYO3+)Vjw|=6gEqhg8kWq6f0^GiG*jFr;~{ z?AJN%r>40y%2Lnabfe)jMu)GLAM}NoT22V+TQWsieSt<-@3pF1f<-UtWsW;1`(*ZL zKDLmHVzgCQ`>-u>hr%LGLEl3LF&2!n3ir+0XU_MVyOx3d$hK+Mr)~Znzop&a^R$`U n`{vGPuE^hKskiGz{Y&8lkB4I6R}XFl1~h}GtDnm{r-UW|nzFMk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_italic_dark.png b/app/src/main/res/drawable-mdpi/ic_format_italic_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1c1b0d95711a5a6f35fc98a948f6abad82b202 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%x-98VX=5Rc<;ryS%xWFWv&{+aKBOO>Z&iGyK@ zgZRr<EvBD`K0HwQ)NsPE@4>{%$ZL1s-HqC`<x}>YC=LV7l>Jv%O}qD?o=2%^?h?gy zdXvofymB{84>|rbrFzEA|B?%s&e`l_^fmlwkWqP2RFuCtFXh5Cv3w;lrDadHd+XZt zWc6=*ueyAFqusLoOt&rn&J#HIOR7luR9a#4)T!?)8P*skUTnLb1M&rfr>mdKI;Vst E0ASf;vj6}9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_italic_light.png b/app/src/main/res/drawable-mdpi/ic_format_italic_light.png new file mode 100644 index 0000000000000000000000000000000000000000..92bb92fb0ce84bf18f59017675a0baddd30660c6 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%x-B~KT}5Rc<;r`U2eI|#Ji-@z!VD(>+*)TUiM zz(X;@PcwpLPvi3sTHAIyaAa)uo3)iY?XPn0`df+5&YD|q;GXkq`-yD^=Zj~a4iEjh zb$am^UOx7S^&AYBO!n?t_giI=zyWQJCTZjS&uylwGMxV`#ITTacKliKwH-5M1yA}| zXf4f>o^QI~{qGqaN(=%Mx9ObD3vamg%Wm$}ApYq2q6;*-Iy#b!YoGtF+pX=8J=b@u zONjC39nuXmof$f3{<GzAPQEQOqmn&)e_N>btwo0!m;2>jXFoE@Mlv%&f&=I~22WQ% Jmvv4FO#n8Sb)o<O literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_paint_dark.png b/app/src/main/res/drawable-mdpi/ic_format_paint_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e80112a61b84b735700c46840f959003047d37c0 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%wSqNj^vh{y4_lN`AYDDbevzWg7*^nH~7UJo%- z7M*LBofCY_RF*zgh}_{9_&0&$g(MHdng1G%lb)`)s&$AZ%XQiUt6$Yw*DC$9rYKBF tFEd*IK$^4a%F!Ip0@m<?2@ATu^Jlav`E`D`76ZAL!PC{xWt~$(69D1ALZ1Kt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_paint_light.png b/app/src/main/res/drawable-mdpi/ic_format_paint_light.png new file mode 100644 index 0000000000000000000000000000000000000000..6c420df832cfd6ba5a6320622333cfd8e847f5f2 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%wSo~Mgrh{y5d1c_G-g0Ty>Z27{$%-n3+`Ap{R zyLa0TsvT@`?Fl*j@zud+&Htycd6$=)--%K4;!$D?ILnk0F1+c1hUBxyR}MEFRW;)Y zVKM1v7E2NdoV1Cpo&N&kIuT<9JBh6cSDF%24hG7+5d_*-DPq=S?Y<VsV(@hJb6Mw< G&;$U|OGU{5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_underline_dark.png b/app/src/main/res/drawable-mdpi/ic_format_underline_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..16bb0a7d21a018c3160a30384318c6c1b4bac9a6 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q%x-B2O2`5Rc<;CmZrL8}PW!<vVb1;@a=cJI!B6 zS{2UeDQJpWbXUH6b<_n1Q8_NBOP+W)UxC~}EL=$_KsA7bK{&3HcL_afE+hDt_$ z+w;=%P9OTcmtnoNNW-(kdoD^g_%oKI&1UDm_~GE0-69UWK58lq<!cju2?xltX)IxN zdnDCprg_IfYr%E<%B;$_q4ur+TVtL?T1crVJ(?5!H1+<IMX_g-wa=U=FA!Y`bS;CY LtDnm{r-UW|G`eIw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_format_underline_light.png b/app/src/main/res/drawable-mdpi/ic_format_underline_light.png new file mode 100644 index 0000000000000000000000000000000000000000..963103bc81bc4db3b47cf97956d955450c7d10a1 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}6TtKSPDj(q#+`j7**`jv*e$-%efVcf>)UZGWTM+7&w$0*`Yy zJZA0Fl4A)DyvTCLYSx++D=a!6a~AAzFl1qoYIU9vqZKuaXPL^`i%)|Bi(lrKZTdg| zr_s$EwzRhscJ!F|Zq+u<e%q^D%zK9^BAdNh*2nfB&kV-POlAy9MNhaoPI%f|i+x~Q zuu41GXG5-3GE->m*Uia{-|y~RvnuOuyF_x+s#Vtx6lwo1_nIzveB=Ay|0Z|LDGPsp zAUQn#k6HND>$}#S?_RXRosnUZisd((_ly?BE^)WE?LG7P&*7_&KiE4&PMfXK^={U( zpCS`kH!$pLOb^|fC=r($`R!<2_6Odo-3e3L$__oTue|2>m!X@{Pu1tNqZ=@27(8A5 KT-G@yGywpCrIQr^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_bold_dark.png b/app/src/main/res/drawable-xhdpi/ic_format_bold_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ef362a85f972be2b28c007d8aeb33969b162a6 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#z0RO$B>MBZ>KAIyEuxpo)<ODFz={8pw@Kp zMZAEI+3XuG8*b>R9o)6yf5PUgdSa}GlG{2eQ!hSG7c#fd&cFBOOm)?Mi#^80=L+7R zu{l{NbNuJ|h&2KWmMxj|Mdzj8C5NE%XX3h5ms>g~>^{xNaIf*MnqASffR2eve2sVa z3!Yasy4d3CnSL{z_v(=;@539E6aF->VVV{#o8VL~GvVEl9~yy9e-He~3TJAOC|5lY zm+;4Ib@vh98sXQ;bz%pzytF*qH@=?wu94r9J*{kR?Nb;3&d*8F(=`|z_#<8vF*MW_ zyQeZUyxFdFKz~-I`%3|jIxRI`gN3|%+qb>?rBT|`mQ}Y`o6$+9RMp{y?UzYs5Aw{C zNLakC-|UZY{YQn&vuCo--d-kWu`+v~V5k1Z?l-rmp7<eMz~wT%Xy5GjvnMW5_Y9w; nclOQ32KM7XzZcH2Kd4?TckKlCtk^TakY@07^>bP0l+XkK@O`-B literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_bold_light.png b/app/src/main/res/drawable-xhdpi/ic_format_bold_light.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ad374d0538f4c3490151605820401a12b0576a GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#_gUijv*QM-p<(Qeb_<d*#7Kb_Rr#5IL=w^ z+-3PfUa{loQD2!`cOE5lH5aU(;CR%P>mOs&><3!wUOiISwWCC1UEq?;`Q1*MYEReA zGO61Cwc`HX_wV9<a3pMu(3$qX$3XXsO~0vkl~V_w@qK2C{zWT9Sq|Rb!N#?})`?kU z=1!gj$pZ@?Tlfc^nrb5{vFy+p@p;eJKD)}mAi_B3O4in&d!!f|UOFw@kRSEuv9piM z{VXp{?K6AW68H~XxllBJ=IOI(n-|}9&oW;yB};fB(+26w$0v2>z4Bji`|Z4AI%l68 za*%QA_#PvnG1cqpjHTAXw(4t-vA69o+@sdABh)L_zol`<dg0=nPcIBVZ+lr6dEP<( zfS6$H)2j{+F2^5pq~tCLTYo)z-+TX=TuaQ36mlq<9Wu~iS~2TNdM$JO8gEVWUcLh* z?ss)qdd@iKUN23rz29H*%i}AX+mnS}5^dePX3ex&*kZF~0yi_~j-3V*CbY+uYz_L` zqxN*6e_n~{<v(kUy4aOwF)vtZ?P<JW@$Ek<k`@Y!j3*yj!|USI!6qnq{H4yO3)&6o s4AU9<rUdm%egTE5SohIS>OUCL-6rVmJ-BxvFg_VPUHx3vIVCg!0Pz&+y#N3J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_fill_dark.png b/app/src/main/res/drawable-xhdpi/ic_format_fill_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..dacbf849c1d23bdecabc6ce6f92186a41b089510 GIT binary patch literal 484 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#(Yl~$B>MBZ)X_h9WoGUTf9n%-66G!yCgm3 z<+a5H6TM^_w{izf%iHVT9;dj-iKk?Rmg29{j`kI$Imd52b*<f>qN(xi^Y_L{djdoz zGQMk6U(mC*aHGTz|5-NtUQ9c(4;ou=K47bOSRUe}`fv3SkslIESOTOjtUEE4qhY%C z!-jfO=XEXYbxCbLobol<^K3c;DkcimK6Ldwa;STPh4{ZkLI*ThYZe^QXg{DOTGMbu ztNnnP>K^wb>FD>j3g5jx{`~eLje8AG;-{sqe-LAN&i0wY-_3hv#0y_N+1b(Sl5xC} zuO{<mIj7E2?~;T14T~kYR|>^`NM4Y4c6H-Mlg@L?^*3xg6R$4lq4Kb4KC}AiS;7X> z6&}8+Zs<*Zt2WbNNz3+3=CZ!8yO%K8sy12qJ$SI9&_ho^L-39s^VG$DQ(X@zUtE2C z`OoH@{FR&8m)&HE65==c{`Qv4_qssFv}e;R%oj7IMLsl@>UCRuF~elmiyG!9Zz}p8 TFEQQ#j0Xl!S3j3^P6<r_@Uh0D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_fill_light.png b/app/src/main/res/drawable-xhdpi/ic_format_fill_light.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac52e4061d92012500c7e569370998bb2ea3ed0 GIT binary patch literal 803 zcmV+;1Kj+HP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP001xm001xm&hCs?00086 zNkl<ZXx{CZKWGzC9LK-EcP8Z^n^Y(iCtZp<M1(937MF~5a&r?pWa%Y=EG1BAhFqo- z1V<N_LO_R55FI2S=U6D{EQl35h#{%m-OuF$soY)ez5CM&_ucY-_kQpD$>aC_5fo(@ zMqLQ;bT*qkwk+#RHBVA$3Cs@x+$xnycdOOvfo<FFe*w^JHaCS3Zvd?LO*bzRLdbR~ zl}bkdJ}<U0b6wZ<VWZJlk<FJ>q|&L=>8v`A^A^CJbIFKC)9G|8&zevIxJ(er0G9<K z5dZ+R+wFB`{sKV12ngvSUX)+7Fa9+T<X6~A`@r11uIoc)u19>9`4X!H5Mllpzz+bc zc|l0mK$LlAegFVO^d7**xq&jO2`PYO=1tQ)0f1(+c`Yx9*Z^_O&y^QMEC5;ac|t4& zP&J<yL?l2`^LapoZe-nVx15G~05DDS#9yI~7u)BXUANmUrw%ZgO!m?+9|vMGne3$w z0N_bl=9fVPj1^l~!U9C(G4o>61`&O4wOXoUg^Gwg)xM!K;CbH5)SYH9RwzKFQrRV< zQP$>(XjG|Gc9r`_1!JB#6PXWMMq91cHURYd{pX1QvV@2*e;>d*|L11E-~W&ZAPa~v z^PNuTs_VK(%)I7*_f6BZ+r3`zXIQRSH!{nz&Zg7pRvI-Cwfj1bvp+Wv0L;ARIL>}# zKAFLj&P0@X!!Yg%AwCBDsh;O~wZUNUDJZAZojA!%EIapTnzj?-NBFToNnh$!AmSX_ znE9bfOzBlZ214S*SyqWDKdZ!nkUTCQs>Bk#3q?W5p7n`n2f%4S=+ut|O8H%AF59-< zYPEWxX__X4xIsj}nfcjlHrtlDsEo(sU$t88l@MYbz;ytB0K9fx_mOFuUz7SQRH#s) hLWK$yDpV+a{RP4m3a%<7o{Rth002ovPDHLkV1mh-Us(VE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_italic_dark.png b/app/src/main/res/drawable-xhdpi/ic_format_italic_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..71501f700b873a7370054770b64913f383bfe615 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^T-Nfv1aONXEUlGYt8f90Xj`b$2kcD?Zc`DKV>3 z$X%negNu{>A>WM}Y3}5*M*?N#P5;7!HoRxF=G1oLP<%3<b7ejU!|WEPh^HkUvH?<T z6^9$<vma=&=-ocsbzkTc_k8p00}EJ6?&XR7lsX_ZaXw?n%4;WgcKRy`3GZzakdwTA zm#^W~*CqCm3|H>eO>2nz`R)C^ylV}CoEdxX>U?r_Pw(@s30oIm#G<nF%8MHHuhJG? zH6`~fthiZ9PCb*|b9W8nZn?R=O7>6Vs=uye3HWy9q4e(m%E=ApJPIuWKo{28Fy2ro VJ05a=qbJa>44$rjF6*2Ung9r>dG-JR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_italic_light.png b/app/src/main/res/drawable-xhdpi/ic_format_italic_light.png new file mode 100644 index 0000000000000000000000000000000000000000..01a46f70866f9344ac7dbec05465a37b9c351507 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#z;>W$B>MBZ)ezM9d;0K+aKA&b=QG?<44<= zA53|3lsH;q@^uphG#?!kFL+qZ@ms;FF@$6DWHna-X{QfsmQJXA%5!Vxc5OHNhD91( zpXMvRWbIz`z<u5NRj<NrB{Lh-7c&I|k+NOuF%j27)(sNJ=N6wn{IH<9<nIFY4fo%N z?|a5*B6OBrJmJ~({Gj|G(?tPi(<7%bMf5**xuWJ-G;x*i8<s~F_ZT~l7e2ppG0OT( z)PX2z<{MQ(hyT{udtT#Gy72vP+sw;_b7r0|jorQ(XpVTkVe-AD*`3@qedngCU!9VA z^Gw_U%jb7%m4xos7B=df4pO>RF)M$viskt@g|0=qHj9N1covng32wM{?AVOC>ZUx0 z3wSQtDEv@)w=0iV;p-B;ON&2iPuf1=``-4BBloKJy!O_a^!(=`iQ=zI@<Ky((^Wsb s+0SSH@%jD}AqiO_4uK-BKs2+DU-x*dQ~NPTP&_esy85}Sb4q9e0FK$crvLx| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_paint_dark.png b/app/src/main/res/drawable-xhdpi/ic_format_paint_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0164e3b76c8e03bae6cc1e10b1579a97791444a2 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^T-Nh^LEVNXEUlHxKe2GT>=Vls073x#D_b_er^D z4*a4)vv+v?O?p`yF7P#;n>9pG$tpFid*<4*{a4S3y|1|?7~t|mv}FIPRr}o8BQAW{ z-xxC6_^qu{`)<`8U)x^r%J5ZfnE6FIf#FsO<1SC>2Umpyn4cHMuU3DctfZRoV^i$u zqouE0f7#bp@SV}BJy3jwePNyP()$d|7usssqxSsYQU&HnG#q0vVOwCx(94*?<B-g7 r>qJA<$E}ugZ2I<o`7x#AR}Ew6tmO+U%C1`i{lnnt>gTe~DWM4fdVO?; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_paint_light.png b/app/src/main/res/drawable-xhdpi/ic_format_paint_light.png new file mode 100644 index 0000000000000000000000000000000000000000..02fec67f6a45f0d78995ef3d8a3b5354b2807b4d GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^T-Nil>WXNXEUlGY;||GT?Eo7ffbg-pHYIL30m7 zY)k7c+XoJPAsZK)*$4jLeQo03ClOnjI0|#xVh&jJl{4rwT%VgglhNkv8(GVeq9Z<{ zUGAq0UHL0n^hCS#&pj2)kUGy(bHkOXVdmepTYvL;H24-XrJ1d{`(2M^Q3cDiuCFb{ zl`L{U{yzJj=C{*nPBCMq`OZ)QjYk5;7fkMQr=%a?&Q5=|k69>T^G%*79dFD9cfD_5 xx#7{!i%OiG#^n8Qdm78NdjZ||Y+42E_WhV4m({hwRR!oj22WQ%mvv4FO#sQhcf$Yx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_underline_dark.png b/app/src/main/res/drawable-xhdpi/ic_format_underline_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4461c341c2b7b595b70c19d6663d631c173cb3 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>RMi);P$B>MBZ)f^?9d?jtyI-hXc0Wn{5oZ<u zS=U`JSoe6YpD?vzP7`-)Q|#8*whucBSUlCX8s{4QtKly(ep3C}PB_RzNwO{R$&sUc z3|pM$bf2>fzveoBw=s*_1Zm+Dy_`>uu@ogU?KEt>Gs7V-h~?W^)(2W<OOn&%XHQnz zz_;eE+LM;FYa10cnN}aTRqN!JktRA<h}&TKS!si=6B0jXs(n^uS>_;WQOQ~J+lJes zK4&u5jBk1mymdH(<#q|xJwM%d^Qpqq+KHSS-fC=OlxvVIcv)|}f7{C$H<>0MWZC1w zcx8?suSoN>|4JJz0vEA~MV>NWcSLXDAHCb>*j0|z+_`a8@ThkEn;$aI{i;+e9G*l4 zDZcc()Vt*T{-ffa=O@imv9)?0*M2+h@Q>RvwZhK7W9!x*?fc{RL4W><I+6Wx2Ml<W a_1{N5S4(Khc$otXTn0~9KbLh*2~7Z3@2=?p literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_format_underline_light.png b/app/src/main/res/drawable-xhdpi/ic_format_underline_light.png new file mode 100644 index 0000000000000000000000000000000000000000..21f82a034d07668cc4137c72a63f40783caaab91 GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>R#(kbHjv*QM-p<_b&1@)geE<6GB^&j2b?_;1 z==H_!+Wmw1$W_l0o~8?b1UY4wELKulr_}LF{>}@Xt_KTVJWARva%=aF7{|Vj>08XY z-W%_`^IPryp7NGEj68=86cw+xRPD|CWVm+g=5rgic-il?UfjUj(uRSK9e1#npAgiy zv#Vy}<+7`VW)3dvf6g#WI~RI<TJmMNU5v?RnpL;GTDUo@({{(JA6qVz+Bvv5aRh2= zDYUE*n5ePHwuISpQVhe3r-vp#E&9oE^xcgqw$?MdzZ>PM*XTcHXV|9eoIcktef7<p zZ8?=r9bVgh@Sgs#@LE;63fqz?!N+DqGi=*d$-H5{%E{1`A-mWcOnjd&)`();z@2bt z(q*MZtV^$)_TWiTyVhg)T;h+8XJ<yN=F>ZN3<5vTNge+fyEd$veS^sXw<QeUwp>%+ z_xi&+hxu!SmNUfgZ#EOm{q?R!{yo>1&c{F2MXi-{4>aLR5WK%Vg#SR`_S<(eOr*@4 z&)FBS+9@xc!?uAf;i!Z$cY>O9mC_=2hUpA?Q-aPPo-;l1pK)t^((Ubk<}Z0s-&9|z j{5$kdB{MLD6Mr(KgmwNpr=+zT7_AJRu6{1-oD!M<3p4G2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_bold_dark.png b/app/src/main/res/drawable-xxhdpi/ic_format_bold_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc91346317305af68654b73aec0e5353e6bf703 GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|Qfvr;B4q#jUrqc4vhK3bgGvbad5OB-SXB>65B_ zL`hMQg<Dj=cj>l$O+Pps4~B2>NnF_Kwm~3g4~wIKs7_O>ijtE{r^}uP`Gw~Wnpjr5 zrp=wYb?*ARhwZED($?RO696iMARejHidvq1MXL|6Kj1B3-;tfRn)!p8{HfEsmRNc! zH?LUQ#&@gd`+-X1=rc1@jx%tbJSy=a;L^@Ho>}h}$h|(WW#-;9iuc%>8KyNjr+vE| zz2ljGj<WE9r80+9tzTq0o$*Uxo8i?F%XaK+&V{?XOM{-h(tR~|;ulNDvP-+CY1tVX zM>FWDw9NZ(F1FQ?A+3zR;+8<!1?zlMw$jQwA8M{xC+4!58a~mDnC)oHdw%*J;jrWh zOD-QMalYa7^1F}jvLhz{qbB{{mA7L-XSmQIH_v#Db5A2wwx#Nu<)?`kb8J7jK>R?U z@$XsAduBOS3Cl4YFPh0*D*Z)vM_O8Zk=n|e3t|t{dYY@eJvns=Z?eDvr2->&^Q(6p zrDrnbdH#C8UFxp|U(7eLyYJMyY>zc;KCrKChiSs0Gj`8boaTMM)-Al)<<eP}ms3Qm ze)GI~#phjhN#XCFlD|iJUS-YCn($9GbA7n3Dc_}jsd@a2kK;~enP{~BjdL=UGMO## zdF2=HZ%aQY=z6kyRT~sEPq90@d!BdxcVX9tyCwh1m+FWd{28-LclK4e{f&pyzMb;k zaLjR+{O5Vk9Clk}NLoDF%b)GdzV_nI^)L2$<~BRNZ-_Lmp60wKt+|fjdgIBM@4^co znEdCjVGe89UZOYUzS-ufm-I#9kq%~jm~KCl^`D)1>U}<7;$!f1^>bP0l+XkK>uWNm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_bold_light.png b/app/src/main/res/drawable-xxhdpi/ic_format_bold_light.png new file mode 100644 index 0000000000000000000000000000000000000000..12d6452d52ffacc6c3b1904d2a6b7d09efc4c425 GIT binary patch literal 906 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|T?Dr;B4q#jUrq>@$J`MUL&C{9Pz}@seF4Rvrsu zOD`<E#Mji^eASi1X?xQZ(+A$cF*SZ4f97S}aXIMO94wo~DtOdYkj3#&bF)<ktEkpg zi7vI;<3|@+JlT6{@4kCgb=h|3%HO;D-K%V8Xj0&SphNrHd_;7opI)=^j!*+XL!98n zJ&!HSS6_W~$=;K_jOB~EHiO=l+iw@dt=E_S!pM-~BQ24j-7qu9?DwJ1djv11nXzp- z#vpk2yUqI*p2D-4nHuDjcEzm>DVuGy!B&CcMQm*B+}X2cotmYwPm+mAkXM|mRah-+ zcV=wY%w`tx^NbR#6P_IZVbajeu*J?XxcW?c;*1-&Kkq42+Qqg&K>4nC+e6{G<r^0r zof5>&peE$O|MJ^5B?ShK!ym*N+zmG=-raYNg@wW8i-Fsv^|vptY7lzxLN6oK;f&3# zx5Y|TYj0nk)o|+Rr$mO|yEA80I&NPt%2+wioNs}ka<ydJL)p9cR`PaTzI=JA1+VdU z<%bJSoC(d46KX6`e_1Sb+H^`#xbK|HU1G1<jP1`p|E%tNb-V3?-F=T`KGgnSt;sx_ z`4`)R8UdDgpIJ9#E{HK~w>`i6(eJwTnxIf%5V)AK`s%Lml_8JrefiJzn)%mB4-wbm zqe&nC*In&+_~5~Vgvj!XSH#jh&ARp*I=Hwqyy>`TI<qoD^Q-6e*dS?<sX@lCFHZMb zx-ZA9n$uxpcTTn1<e4lR=6%?m<lBAq_1C90cJ_@wmfkF!3l4#O@5>qHyj_;~%y!@V z{L4=>Lme0#T=<hz{5Idbv-I@&T@8~S?0V-HyLAnB$IRo8Oy>GM->hf9n(0&Rebxds zzv-u++P(U;MQuUQ$}88iwn}wG?q;f3{Fy&Yx@s{8L!ii41_>_<ji!z*@0ObXahsSC zd$>--^<wJW=UbK?6}lAQWqUocz?k*RyqW$l^=3tNXD*X;y|^)I?XtJ3rM+iA@K#Mf znQ|;^>#bzrqq%%9tQ%&%-c{YKP?2`($TG3$#AmKbRo*V2-<JJ8_U6r-q+9JmERF(5 c=*Ln1eK)ReQn?tE4a_YJp00i_>zopr0A#F?e*gdg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_fill_dark.png b/app/src/main/res/drawable-xxhdpi/ic_format_fill_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6a03684e4e4d8927c8d2026337fee469e0d301 GIT binary patch literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|S$qr;B4q#jUqD_j_qOiZp!O{7?6a`h{cS0UNkD z?7Er~lq=*9nhUO}X^D=E?T+B+%3s*zdc|q)r$`G|j@eJnygMhix!5j(L($s!=fsw~ zogPgMl@E9<JPiN&h!>pu`EtK9uW3`WvhVT2C5j7tA58pcDYW6KN8b~VzAw>5D(+c4 zFQ=S*+RY-v(vbPIU8Hfcd=TrLnh7En=O3Qn_w3v(+_z`K77OR~=h-#I)U}tavWQf; zdi149P_V^Zmn^B}!5%9MtQx0Cr7xR!>(ETkCEE(qxHxZYJ<#cLYb(pHEr&WCc5Pv) z+I%EXY46e*n*;RTxVnVhZd!38J5VIsm)~l6&E2VAcW;kc{7v|Z@WgthO&MzqmiY_b z)b4t;>t$o;`~?OdCwA0CdQbVHs^qR&uqZf&d+XgR*$N5FH%<t8Hg9IS)1IuVu5$IN zae-mUIoE85V;)g+9#1On-`%(5=uNhJ-skGsx9#p)ax{`5PpzkzS*L{8v-Y^(&+zOm zW&5)_CngnyHL@R_!SC>UyC3I-Mc=9#4tH$ik7m!3(5zDKIeFV?@yxvbE3T`ycyrje zp81%<79zazlbDu4$Bgs@t`NbM*Zvt@=%2AV|E+L$NcCq~i%tfsjoUgMv!2Z7Opx3W z{NN7b>1%q6yYI8xd5QgId}D5L-m1Ww@wr&U_HPo~f5?59K41Q_W5peBgY!Zk)c>gM pZCflqFM3ni2b=SsQP6s)`x!fS_Vf8T<N=cpgQu&X%Q~loCIDZm9x4C; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_fill_light.png b/app/src/main/res/drawable-xxhdpi/ic_format_fill_light.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8bc9f7411e06e0ed517c7611814a4d5d56fcbb GIT binary patch literal 1076 zcmV-41k3x0P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!00006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP002k;002k;&Ux?!000BO zNkl<Zc-rmR&ubGw6bJC{OQa$#LJx|dn1bgjC<rABB9tC1J;sBV`U?@y+3j`p)b0i^ zxmAkv;(y>t5mYu7MX?8uB8nG(fTAYEl=OLU10qQ?yLq#jl=+@Q_A#^hWH&o`L(q^? zsg$3Znp!2ICqWRb>zE^}<fR8Jl}h<Sp|D0omjEm{j`Kc>qRnA{(6kW+`Uht*ek+F& zM-l_-g44-JBjuz9DijJwiRfI9!+B<2^E_`c(VzxI45(76ykq8B0AG5Pj3g3C4_Gdj zj}y^D00(-Mw2A1-s65@ofq>nGqy-4rJxJPsfZc(l6$lu8B=ME>|Ebk#pNhreJ^*KX zlo-8E(hd|q)^B6yC55p_T7f*zTV&=n#d(ZG(gu_erxW9lv;ZmKd;`z~u+MZP@u!#~ z&TRbpA%Mvqbw)hhM1fRs!Z3UV0IutvG#yC{C@D@SrXz^}rNtQqq=A73#W5XeARs9m zlaW#bN#mG`lnO`}j)_Q#fpp`ThLi{>D;$%Ml!3CwF$GBp$aUQ!fX7+mBtZgjCJe(! zdT!NipPR$N0f2by*?6vQ$;am?9#x>3Vc~S5fHad}IOXh7DPrbrqON!2B!HK$>+1GV zI!7JjDqTUjT<+<x0fu#ss<+rJ09(UG*dbf-If_TAqZmceN5^qK09b(Fe!fuJM07O> zg8MoKS8lmRQMBne&U=`J)OQW!dESv?vA92qq917{(D7Hp7@TssJWfQ<0DzfiDwRq- z=_HA-gdhmkiRcRcF3ya_0RSSp17I4!bo@GTQe6c@zTK2?JkPrUVCkQ?rX9!m5=GIA zB$MfGm<<JIX=&-i_V)I30Av3hYUOgd(<>`0%G*f;eft^TZb~@5@9&Afw6QLS$C!D| z_kE=W^1whDA}Rl4Z!{X$nE6z%<IH@j(P&&#ojA*FAMH54?@!e0^|t^H_9^{5K0bcT z_x)e}#uWR3)pR8#>h;v?_45ii0B|s_?Hkc2kT6o3M%V@ETJcA;5K`JM;R)$lEo+zo zkp^j@?v<|9w#Z9~G-!YMjdZQnRd7NiiRSw~>00f76BLm|b|#w5<|;GyT_rQ~X0zE` zH3F!E1mH5dH{G@XT$b3jsaC7M+wJx|fY&>ey>7SL^VMqgx5}8AwJd72+NR?;4~Xb6 zfI|RUMD&P=E{0(!*6iBY*!Vd&H+Q$yYJDZ5N&M}bZvlA4%;Chu#P#Ln<?mU2ZW|jL u8yg!N8yg!N8yg!N8yg!N8yg!Nq5J_;3{K!-+v5KK0000<MNUMnLSTZ0Mdt_r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_italic_dark.png b/app/src/main/res/drawable-xxhdpi/ic_format_italic_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ddfcafc0581c7d48b2686e6e035e7125d1ba8e0a GIT binary patch literal 485 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|R4$r;B4q#jUru4E>xOMOq*3ywb9PLui`QL8T7U zV@D;{@K!HK&{Wf75{<Sr6A}6KZpMK*-yi+YO*l8_%xr13DNI1~7&3HYxV<m=nu`@q z-P?QXieZe%lm!b|SXDJN9345iyaFy<@VKS1z3h3(RO6{7KBp`_q_&^BvfV!?)a#_# z{@xD%@(a&YdR6wSEr0HP>CD`#p%*qidUtbYu@(2NaFHzqAZ^o2yiQe4yz-}Vnf~-I zyPo6+`wJFcHeV7q$z-L(+xNQezn9w0QE>a6FY&h0vAgT!*7D~iVn;IGYowR`tJ$^3 zYty~S=Z?y2U90cum~6PXeaXkll5$J0SvxlG^1BeLse1cQu}jU2Pd`1nKA&&XQ}-+` z4-0qf`L<+1tgEAUxnH<tv&7r!QS3X{M-+da@BVvX(iZ=_k@{P099IW<ZTp$)vghWl z9|y0-y;zd?NAcDAs$$7+q6p6iG&Ko{uz-RI2*N+}%56BYUT{H|Gl=Wy>gTe~DWM4f D-k-+M literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_italic_light.png b/app/src/main/res/drawable-xxhdpi/ic_format_italic_light.png new file mode 100644 index 0000000000000000000000000000000000000000..5cefd81ff9f0f10f838920dce665f5f35a9af5dc GIT binary patch literal 664 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|S$?r;B4q#jUru4rV<n5IFvEW*V#N!Y_&~oA@ua z+O>X((S4^l>+ye$XB&dv?))Lr`nFkzReq63bJLNVrw=V-HQv3zSo4qF^MgJ2+5Y)X z-~gHq1Zy^4Z@p|XHMp*B-gEb#dFf`BcKR$q3KN(bML3o?D6leV3V1yH*8fN`bCzDm zi!jO8&ny2WZ1i9JZo$KX3PmN`)HkMmkC$Hci=Q)l&*iMGRW4IBl1~d9x|Oy3*d0g3 z7GuGe+R48)y2Peco2p%?+Pg39S>9b9V|!n<$y1-k^>VtnFy}VRe16T_^pS{kuiJE` zPu@45tDgV7-lgQybrpHjM|?sPqc8oB;7^fhU%}YO)_ibh#~qF2{6ZP~syEN;&TPN^ z_L%J3&~@b(<}d#1CwbdFu;l&L#n}tarWG%heXH~-r*=#DPByL6pLUxGyI$l!FMF3M zHS${Ov(>vK1tUwX=BBTg?UZ4jnp(L$cK*!w&K%Y2Wj&)mgg9|<3SPC_+I^yG_uW~x zTjd`Kt<dO_R<c?@JMr1^pEduU1uZ?KEHL?>lh2HsPg-Xjv$;@V^Uuv?da1F}r(&zQ z`*wt`G~icJdKGLfIMaTse3F#L=}qf8Vy>U<IHBb^N&UV~{Y;>vHm#4HJX8Fhd-c@F z1@*SK%6HHGeK9Uo3}}^{VC<E%2A_+}X79B!uiSrmquq<me-vKT@7!;YZG{#+(1--a c<%5hmX7(p@{AC{tW`W|?)78&qol`;+02`<n`~Uy| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_paint_dark.png b/app/src/main/res/drawable-xxhdpi/ic_format_paint_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0f708ad7838db3fd3e7d0f61dad8555a1122bebe GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|TR~r;B4q#jUq@0{IvXMI0`M9g(}SA)@VQqU8C0 ze)%V5Zf9Q?oZs$o|LVyj8B>%zFWv9xh;^Bx^hoIOPMd4nPV<zUS$E;VjqH0?$``gy z+2sGb<<_07we52GCh7qx{`XBH)=o~ZPMvIf;sp;&-8Z3ZseKQPO4u2hA+Ry`8`Hk0 zKl#3%oO@lCg@@%C%dS-Ys*|SYI7`mWt9xO3j7xsT-s-~Bdt&7{d)~$J?C&m3P=LS< zFUmKX+VvutwQ#=1w_iVh2)~1>fT<*g-cYhYQ~g1^#l`(##`S_l`_~@}{`Iq7U(xfD b{|;si&tPxW+O4yJp~v9q>gTe~DWM4fKoOPc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_paint_light.png b/app/src/main/res/drawable-xxhdpi/ic_format_paint_light.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e34ae3da79e86a9511fb735f202819e78ecb35 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|R5Ur;B4q#jUru9K8-ZNH{#ScfIq3<y%hEa*v~} zB}Y>I6f4YZ59Y*3n8$iJ#w|ZK^T<B_T|P5x+FEA%wWxSzU!58^A!ye*OMCYtxh^@; z_6H_z@2GhD`=8;`FNVi?*L&%ou(WqQvaYmKK1Vredhx%Wj&{qu9h!R=yxz6@nrK$v zMvDt3zUFJ0ugD}9F7QrP2>2r^-IkbT`(kI$<Bs$1d6?Ls@Thn1)*t^`f1RCvU6O@| z<y_>NecR<q&Kl0!98sGoyWp8bcl@Q=`|pd-&5roicC&7sv>3b9n=5za>;BKv&rDE& zz<^TSZO86<qzf28VZ@idN1Fem|C%C%U{ZwX6;dmnu>1+~`x4F@Qp8lJss3xVT%5(n jDgWLqf2!)a%P0Qc4fo$`mO5Ag!<@m>)z4*}Q$iB}JF%(~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_underline_dark.png b/app/src/main/res/drawable-xxhdpi/ic_format_underline_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f22f8d36daef8147c433c28c342ea99d0da89759 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|OI_r;B4q#jUru4gI7YC60bHS76<}V2jeMh-n3k zzC{gFM0PgmPbgr?b2!R)MzE+!hJksJSL<EZh2C$OrX1=&6dmDlW_IlPirklft+xD_ zJ#&9UYzyNV5b#R6liK)IFNynERC@kq$?|??PCgZj2@f2ah-EzC`C?!6*12)-cd2(v zr_E`6HZj{>^1A0tOaFOFKsk|}-z*<nX&TR;w4B3|+172{+(|a)wg#BK-tsUm>!f6c z(z^NSG2Ul`s&Cp%VxH7};y33!&u_+SF0W79o9<Y2p{)PAnZ4lqPdn5rHyr!ZoaJ`r zTkY31G6^nk)ld30-<<nu>!}rQ`8GPgnLI~L=Fz%y+oQkcmQFV)_bS@|mhY88Iw!m0 zN%2YHD(w>^55Fpo6H1@=)XrZ+B$MYsb?<Z=rXRcy;=g`$XNVWrKXreptkaLcM>aPn zzES&QaQ5ZAl<jYeulHV2w!G~yNAl#oU)Fj0mz)n;@LNl#s|K|{+2Jt9P})W>M_2EC zo@PJ8sVS`Q!lD~bKVKqvGWuA(Ze{ktr@_BEr0dRU7R~nWF=hC`dmx-aoxzULVvXK; z#y_kE%mvI3!Z{xLM^~E~8{hWLzWeNC&Hw44UnVG;*e(CRNedPYDQQ4(?TGf}L++uM Tnx8!fCJqKqS3j3^P6<r_B*+M; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_underline_light.png b/app/src/main/res/drawable-xxhdpi/ic_format_underline_light.png new file mode 100644 index 0000000000000000000000000000000000000000..e047e6f11a21daaac758e18d8ee239aa4c4433ac GIT binary patch literal 824 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE<hRxemd{22U45`9+AaB z8myGT?PRtcNU*HHF&!>=uJQvb0|V1xPZ!6Kid%1QZ_E}>lwkYtyjT94f<@Pk8(dts zmgbdim@5)vb<Ez8`{{xSGDmc8bCypy$aQOL@a_5q3oaZDTGAbyS(s5WxldI@^<k-j zljh02)1T~)`tmdP;qOm%?`@yFD>^Cb-~t3!+J9(?xK2#t+3z*!$<p)37Hh0x?qKg# z_k5Ik+skhDKXF3^W@aM;l8GNYFP<-86x{i0ccI`;J1_mipCm7wT)-H*_hsQ+8&m%x zaia=u50`zZJm-Hzsr&mbp1u&s5B+Z3w*2+iU$XJpU$cDsZ=4ROd6#4z*?c#z{Ni;d z%dEFgw5Bwl_rD<4utr*9+N!Isp6q!2B}*rD`=aRSdJ9Z^`$J02lf448rd~U2Fh`=a z*MLXeYw0Dc1_kB0cY(5cu?`FhO4`S!+*IJWCe`aUVf6#aUN>cqrUc#tZ)Vv3+1n7c z_8MCQb8^(uyLtKin|Ft<zIw83_g>xwNj|nOzCP&PF1_O4imO@uu1{+FR@%Ef>0PzY zchVE@{hWa!cSR?<hQ=}_yqmS^mx}LY{^?c=?zQb@{!r7g{SEUEo(I+Mzw$EhPbk!S zpKR(mNqpb-qoRTV%P&WkojZHLB5sbMZHmP6+E*o3r(JWr6~$MdP5XSsay!F=4IRIp z%UC@Zn|1bCrr=TT-Lv{1|F~gk&YrM-Lq>z`^E)vz$B(<}2D~^gTPPzx{q)mHhSjW7 z;&rE={_NVuEK)Mz-SYCXYTgI;W-R3kG5u1zP3p-ZCZ-0jrA4V(S+67;1P&ZlycQk` zbo|t?)mu02+<9~Fih24b3pQtMy_G9i$@O4j$DQ!2(G2Upw)r#E9DT1pS3b1#^z*08 zf`S+SC$71?=VQ-}rH1D=C;v&mdZ2-a=LCr80D%mV{S3dDkE+ZUcH;-8Z3a(QKbLh* G2~7Y~ykU6& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_bold_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_format_bold_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0e62982ab59d78f7fc7d4eb97f179f8f7775aad6 GIT binary patch literal 926 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXjS<}<SF{I+w+dKXpQ$r<=e|+zMq<$%Pc^kL* zrA78u3M!7>B@dMXGcp6V1eV-%DiGz+i}BzNzqZKtije?s)Q${QEw4_VMv0If)~sbo z&X#=r-Pa4%(vMhvw>mF*@AL09_oqMK`TV%$`}x)HSd9_jwRNg^PltzwG2<Q9I##zv z`G(+0|4#kebN=#mhG#~Mb6EPkc7?2LkBs7a;K_X;{DAtTyzqBRPckfvVJ`FjwKGlF zJFDNxRl2cQaO2`MVcqi$nvV~Zc|Ok;DQB2#n6TtnY|v@%3qG$K&u58z<C$?$>cg}p z-7{TnnU`@|ge=ZjbxBfT<%;7S6`U2qH<;hBPZOPE$GAu7W!SeJOFEsLuSs=wY&<kc zKE2O<{d5ISdq(TV|6G36=9`blu`?*VH2UCrP%}T}+x6cJa=({7xWPNK_v<^QKRvTn zH&%bP`O~=MY2@RJr+73z8f=cxX5153@aF58V^N$BnwygKQ_QaYW>88p-mw0`l*?PI z;{v+>IKFXnS#v_Bf9cGlMm#^Y9<5kXZ~Qy<%l3txZjHK=yynenzxF%(fK4y6d>X%< z1;dMd>^Ib39+x^A&7UB2L;L0HDBdsclwuz6eVDi;*mQPACEFjqkpGXCK4matOjmw% zx+5ZVHRt`dvULpaJ*7_Ty<u1u%eu|;m-6NeU<h4~W8K%=F-iUTLd%B#x4C4_>AX<Q z*v5V!ds5v=jcqT|8`xO(@a*B0SuTC$XB1ma)bC>b8E39vG|rl~Z<<_xhpFV_jW5y< zbQ>J_w_xgl-;#Sx1sQm@*uR+Dvu_sXgN>8^Iz}5wW$89tY)ZbKYH}rtLG@aiNTzNB zP~v|InE$&u56JLgV1C2zbyM-W3xl8`Qw{r+oL#;^-tF}&?RVr^ViUN}=|6r}CLE!j zS+tPbbR!GzgNS1fn$r)&{9`fmk~**POw!=?!8Hfj**|P~d~^1eJuJSz=e_&itY*|* z#a80SuzM4`yvzaJUA;TmRhIs<$oI;ZKQiyJ-3QA8mrHYJ^==V3pz^`|gLHwUh4Xju hY2UNW(=fo_FC5V>-+s;AAP35D44$rjF6*2UngAj*mCXPE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_bold_light.png b/app/src/main/res/drawable-xxxhdpi/ic_format_bold_light.png new file mode 100644 index 0000000000000000000000000000000000000000..47f303088158f4cc6a70703903cc9a6181571477 GIT binary patch literal 1077 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj`GBX3V@SoVw|9IqWJ)F2K0Kd$WLi!b|F<N2 zz9yxPFmBPRmkZVPx3<fPMtuz0t7R<w*wIbkQcBw73u^<EZ#Z4_KEi*giJjG7iuIyg z5wBK9!s>OG)^h&-Se4<Wllk&r`R(uf&;0*6H@#y1$-{m(W|}j0Ai#<@N2(Ggsbm=} zV||d%V88NJS4WMhmDMg2Q`4{QU%%e-jO5-ib=s=BWvkS)x8C|b&nQPQh|yf5;q%+F z-&c3;+-Yx{?)b#Ift~5Wj}s?OY|or!_s-g<gO!27<w;;@tly+3k@GE^bQ2CUGuU-L z{?V|WVWBt!gQ(!ojH05V_Wp-D4|dtUEvvqEJV9*3%ZORa&PVX4GR}4hjW?Iivc2%N z+F{;vKgq`ya{Y@k^c$Xseidc7E#sG8y8CYI)~L5#SI;M3$(k^Ak;W{BX^cARo<(8@ zSQ&O#+x*?9(KU~`;G9<e%6!MldH*F`FD5d)-aBvcs&*aYX}cI0X3U$nk0oK@^~Z}f zsxBGDzvO0M5d68}dUEL3#M3#BA`A&fAKv(_+uRz|(7o;Hh5)XLLl1An>o&6nHmutB zpx{UOw3}Y>2aX&$a+$&JOVyrLaU0HrzhauCa`XDzGJU2S_a19bUw!q}@@bOZ-+e14 zxC^eTGCIA<^z<I*cnACU6GDGiz1_2E-@bo+U%yWMCHCY&)bh)gVe79~*QFG0-@xGD z`sB!)H*fgu+W7zKzL0yp;??QOdG!yp9Zs;CgnX?C6!ErmZmHq^#oBPQd-`q8oej%f zp1ii`yMKPunn&6$C%{3!G;Q<FIm=$k$$xIvPdFUM5Wg&Q*Xb$)?i&kM^{;$&JaXF3 zJxAmvxOd!aOxyf(+EWLy4Og>0C)p&K=DgU?zT+M1U4sM8J98QCv3yu`^y}0-!`EiU z-w)>6zqr43>(=&HUw_$u|Mgt(i0+F1zY8`3!D6wSO&SaZ_xXdaHjC|S(qt&O%`Y_Z zuh`5cEe5{dj;nTERtm^q-BEEN$pc8eVK>!fVhwG0TzBC;P>JS&QhN?J=^{sw3&-mO z61FIsf9Y5HW%^*gmSWeUZZXUDeGQKPw!6&#?Z{A2Sz7v4y8AWvBe5&(Nri<QlMORo z*fU;pd9vMWY0<4LIeW%v)yQeFo28C1{d0HmJA3BL486>a4ZicurFw5vX>jj&cjm{B z9}`<!Tc>?}aG{<vKJcn}*P@E^;SCDh0asTmeac&XwW_+VZr?*=Zw}THhCixG_N!m1 rGQ@|hzPeQB^txYsZZ7EH=@)rUe?7xfMZ7D4nVP}V)z4*}Q$iB}n%?s^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_fill_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_format_fill_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..96874214177bdb16bce6cb145409f450c1398951 GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXjImy$-F{I+w+gXbKGL8~$`&}J8RE0b^#0;i} zR<JBuacbAHN%ld3LCtUU56p91*sz2pQXruDkO&9o^yN*eb7LOdm^pXu%%}I%EsJ-~ z{JHP@$+J(>j_WWVFxtSc^DLr%(aOX7A51j%^f=-1!^6objw4<u=!4gfNf%TP@O+q^ z=HVpHAm3Q+d7?u_qyY;`VT)kVljfSxGULj_`IRmDoEtL)_o-}Ab^0+$!0X5d)q~>a zKghqDu5v^{;gA1UZ=qX4Li>!vgl=6>t4Zhc<WO|`aV}=k1Lrdz=31&Q<cw{3e@2&c zJ<FBIALpbdeQ+|E+x~uyDyMRz3itiUV4+tElYo5Nn?glx@2?ol6!PM@zcO``$`p}( z!Ix7!Gz@E&Z`-cR7@=WWv)nD7lY3`z?yVa-1wlnW{MOnD`8C|U^V2LdYd8Nx>#x5& zZk&tFpWMdxTWDW!aWH55&g|SvXJY3cDu0!y^iZ!fHq=3Rds^7PILTwVp`q`C^ejXT zo`s)c5-y%pbx?rOK3II_geQAja~zG+$`aDv2aDe}Jf8M#;i^@?r*v1<GrwXoKl{ce zb)jr=UfS%Hht0WfH?3K<%06vdUcU38oio>7w^cn}&0X~HBTwr6Gt-Ji<QtcN(3k%9 z`{)^<GWng{<=tJi=Z!_<+6xY_{a^2u_vGB(_d+#?<Js2D{dnCW^8PP5&kwxyVit92 z^OC)+_q=XodB3?nq5MqE?w!W(C$~)auwClR?y1(F?L0U*>-lzM8GIKtm~Q=fk}8XB zQOcid#$J`tfr>&-hvOIjbe4H_e%;e^yG=L`^51UU+wk>UQF`p87PE)?jE5Uc+Yd~7 zU*(wYxbI5+*Xz1xZ%(}a@sM#1-<i}^a?yI6`#9IW|8e2X%<tY`9?dKY7g`jvfhjNQ zO2OmZag%gUEM5F|#oKL<jeIQ4b~0>!A(YgXpH?=pC`XJj?V`#NzWZl#CS>NwMg37L zDOxEOarC|a4PpKRS?_F|XMdY|;bm`Hg1W;2zjrdX&F+RcJ->dkF*D(T;6H{L=jJB% z9DCll*sxcQ@pEU^OtyW-|KdMx_~-Nguzcnp?E;2BYvb9!R-cq+4Qt3hurm03=HGi> m@Ak9^IB_UqBU~*1FlQNsa80?g=q@nZF?hQAxvX<aXaWGiU9=Mb literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_fill_light.png b/app/src/main/res/drawable-xxxhdpi/ic_format_fill_light.png new file mode 100644 index 0000000000000000000000000000000000000000..5641b0c08e94a0b14726227938efff3b0bef8b61 GIT binary patch literal 1362 zcmV-Y1+DstP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP003YB003YBc-z_Z000Et zNkl<Zc-rlpJ!~9B7>3`u^#xn!A`()nSc;qqA|qM!Aq5pKTmS_iD3DTs<l;{E=k6Nh zyYuRrQ-q=b1;TD{LqQr`m=*~mLPCcX5voW?G?tv`W`=?t5gcLf%*}qYyZ1efrS*K? znfLMS-p=lhKmfYk?y{8f3n}IMqtWP5h(6>6LA}Ey`~v_>0FI=TH)dG^sen`A8)jMp znSlQZ-!QWhNCcb{zF{UMWG-N1W8;PS`S}L`uBK={a}p|9?_fM0KLOAI@H9p9<tT~{ z8jZ$MingVI>>SW)wcZ4<3*bVE<}>q2ApI7^5}t?rI)Eko7jgjrOL&$b0sxj^2qpkv z2|!>0080oi0GMqFnO}&dK}z`pfX6ADm+E3IxPV5Zu@pto0f5UEWu=i2^bqt+_{)xe zqVR{KU;;dZZz!~cAObvwZz!w;asig%%j9R2qHQ51kP5I3Uu*pV00<$zL`fx(32+HN zj^kYbXf~VgmQ@0YfN8=vlvP6J0(^vTD5Hc-1^5i#P&Nsf3CJRRLzyIGA|T7~4P}ww zT>wS+hB8R-Du6P4L(wI86A&VNLy;wT5fCzbLs2D6Eg%o!8;U4lDgk*4-%vCO&I0ln zzM)7GoCLJn?aNy0?~%js4Ym@55U&k~!#^nd2sqpmuGi}eTI;*Wargib$MJ45oh?%| zU)EaRt=H=d)cv#;P_0%!2C$N%X|V7OmJ(Kyv615PRKz<e+5`{ZU@0NZ*t}vbKx=*N zoF=&m-;h>9im`cT&Y?!1^ZQ5$vD0d`cBlvA0Y$w-mqXCc)SV>c9`z1g1bju^NkYiS zW-Z|4<m58|htwS<;4m2*Db@nU<M9(A#5#Z@>dt1!kq}}%d83mQs;P)PQ@p7NLkT2U zh2LtmJ_3O4?d?x}b%1(0I!{=I-)uJ5gb?2VfYy3Fj^l5AbRxtJnLJ<>ezMlZj{q(v zoBoQT=+%C|KlORg%L^K#(ddzs@&<}=VzvsuUav1GrS|Y|_yBNGDYfTg^3K~EG6j)f zeZs9)t7EP8>gnxT>(y$tI-a&ep&v`3#5(+TyZx5d`s=gW2qE4c4u^ZLoyx<5Srk}@ zzqz^j;$$-U6~Lu)nm(SJn|pa{YwJ&!j%D(aUd|3jPT%vTlmna}J^)-w+B%V^hjX*Q zDf~{Sv!ayx3F&TU0)VVkDyxIR;1}BtX8M|H;7@|{6|Pe16QmCx0HUPEnmoRs;REOJ zyWQ>;Ddlgl|L0Uu6kYB2`wwl3NM6(?{v=E_x1*H$&@q=vQfpU45C{M=2|gy)-k_`{ zU8*2s30`J3wbn0D){?Ikk&y(SQ_5+cp72&1WU&s<5`53+|4vyOY_$|m61?9`5kh=N zSsQe@nkgk@awkhE^*P)QLo%tgBKUeijuJAvjTp!AeXaFv+d8fF?KqC_+tvja09Z@N z{2uP&;$j`ZzD3D?Qe#an1OWd?m`o<uarPrGhm*<Vde%44d%fP%TCKJQ;1<q)T22AD zRjbw3dc9tnwXvTg7mN0t8vKRh<KvqE-UIMTviTl>om#DS$915tbUK}DN~xOwUI%a` z+58Z|ex*{mGZ+jWgwBj%7=~dOhG7_nVHk#C7=~dOhG7_nVHk#C7=~dOhRFwi1J9Mt Uy>?z&$^ZZW07*qoM6N<$g1-Y~x&QzG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_italic_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_format_italic_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..40b1e780a90d279e6649a48f67e96ce5d74d85d9 GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj@sX#CV@SoVw|5M^QUXO<9u~94Ha#%nVcD+O zBqiCofakD|tBc5yBWL*9BHI!k7>T5_e`7K2Jm~CV`E7F5_aF5io7e4oS{rsn5NIeE zEZFso?}MOcQC(g3TkrE3Cx1S5U@Q|!aAQnECmN1=+zLOp)w)=7(!0s5Yjzt?SIji7 z{IUJrnWY}HRJm^yrt3Lhnzf|z(Fb`I-QC6euYKmS>gzbuIB)y4e><J0D`dJ}3VyWy zf8?cA*59M6_A*urPPDu*``WGe@)t%bcUAxY%-dl+JutWG+Yhc^Gi&}`k=@ZV{pHU& zbLMHkyYv3#TQ(V2muC+8QQ5`iFNETjJ$EjuTDP;fe#vs_4bp-$ndff3CU<w?=?NvX zW9(<YJChnRd!F;&JxzU+&(Gh@JUy_mitlRyGoO;V?fMz>lvi5WwlAw=-llABTW@UZ ze&mbEq%9L|{#chkJ3r%-_6zq<KaI;D7^$pPTmC%Q|8jB0D)R>hMVCKMdTA--dHUo_ z%lElee7+yqa$NJO{v}rRb-c_}$+WHf@%`PI?pe3AUxa`9DO~=*wf1MetH;***NK6_ pyBY8EvCar=ki;Zl5dool-q<^v=(OMZcPbJj;OXk;vd$@?2>{+D{Br;R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_italic_light.png b/app/src/main/res/drawable-xxxhdpi/ic_format_italic_light.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0f3dea9d3b6413153187a5516c258131d8ec97 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj>7A#GV@SoVw|5SDNe7CsJ^1hABgUoIYSY## z7VjMMV%1#_2hG$~YOf>Hue1e;G|ets%Kg#Qsr8pcleeOt(A>+ttpZ6#%frs?{r3Ob z_X+iXiXWa+<q!~rgNxbf_ZZVM&1S#)`LlA~{ulQ(KGs+yF}{mvFcy2z!)lStcn*cR z`N8`pkn;D8HRe5kPJI5;T>j2}(S1gxNm1AAZEQ;R825MWY6x4sb<wKRZ4>W3eE4u` z`MbbCafSz*Q#Y=v`^aabcZ=zg$=cPgvTlA=Dyprnu6{VTI%W%N$m*-P3|BY34*j~~ z_FKNa#r@rz8gx!)F-WydY+O~gx7c4OmGN&~J@bJ{iBC%E>;E6K{;m=z#_(WqYGI(r z{XNX~s=Jt?)?VXk*bcPz;K74S%ik?`32#_cXVh2o^_<PwIpqx9Ccdv3uAN#ZKJoR> zpFfM=-?{9vl{stcEwP5En_pc6Wzr+fKAf}lHDR@pvo+^cZvOrIxA6Nrn_Yqr+`W5u z*Q#r$*M(o*?6<u5?cC~V8C(HZb1yfmo}5_zEXZ;%^OTPjUt$b<zTA3ScHX*NGEgKy zr1j-(eWk#f-;Eqx9+$W1DZNg;ZZBtheoygq(Hh3$;^Nr`GPaC!TI#;Yh?X!$PP;lu z<)%>&4_ouWjpcdW3+}i4{`*g=;gY*Q!*fF!TX)vI%nUQ$)w-y>sGi?Bb1$<^YI*th z+(|0-yvoyo5%>9AuIL*+k4Z;Lp7Sf*u>QaD{7cz{NqhJ1Rb`NFn>f3*wKe$toqFXH zOfE|pZ(rOjefeT>NCB&fRPU;eh<i2dhaVcuGQVGVP;|qN9XqmieifP6eWP#Q;wEhe z7oYuQ%mR1T-}O2FS~lUzxpU`=mInO{wc2wcbobr5$8&#MHr-;J>ZQ7MP59Nm@@LPh zKFWT$_5b?eV%Dw9|J-#BNOBh(W16#(AsvmWpo9*79j{~F{Bu>4ilDp{Fbgnvy85}S Ib4q9e0FGmaF#rGn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_paint_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_format_paint_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..437fc9b9b87635578ae58915779a10582a89d330 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj@t~)RV@SoVw|5-%SR7^CKCV9^*16S^`FMf+ z^9Kqs4apYF(L#?I>bds{HI;<!PrH|IJM-PD>6eTzuNCr~q~f`I+1HB6t8S_6^eLM6 zq(SbA&w9_i$uV25$+^krlr^lf@+_MFq~gyVomZA8Gqc|oK5_hJwdZ)~zxz+pr7mB6 z(flQXQQwnq`V7GX+qRaOd}6R=x>EFc<DP3#(_cRculmDziHEI0lHr-@g3b5ijAIxL zm=EwU7&Dw<05fhc_fL3hSGVr{-@V60!NMEl7`J^<V3V@jCdc?rYzD`v4;w3k|7Fj= zH|77k;0urTxB018OnajCzQ5#8>H5nN=iKZCCze#{WlUd_$C@FBVtDl3zYVd~=T1Nj zhFiShYAyea>@WXIzCPmux-5-h24e!qi4-$#NHL$ex%%_@w~4!sF%*A$_2+!`486sx z{8qhMS@%Bk*5Q!i(5uT<ty`V-ySeke-}<{3p6i0b-~J<;uIxq*!5d580%MiI)78&q Iol`;+0I^Bm$^ZZW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_paint_light.png b/app/src/main/res/drawable-xxxhdpi/ic_format_paint_light.png new file mode 100644 index 0000000000000000000000000000000000000000..08f99d3b61e1ad24a95c72cc139a32cd1da09a1f GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj@uH`TV@SoVw|6!MK6a3C`{<t@q^Hm(wSarY z11`g4aYg>T7PcKm>)1MEWj^+C6u7XhzN>!tx2VGF{rM)!z2#;TRXitsxy(}>ld?B1 zer?$5c9n9^b1xTa?NzJPT6*XG_utR2*@wv{?7kc4clnF{N!R|XFJBn&9R6z2r>|T8 zB>XMwvdml0f9uvwijhgrUS;Jl={8@tW2W708OFNu2oA5$H=l7V;9_f#WC;5!wd-b% zT2+VY&9`Oqqk`u%%wS9aNu)s-b1#~2D3QPa`uV?iA34FoH)I(9U3NCPQnSsH>Cf8@ z0#lxC4rP~UOPu@ULaOC2E3kbBfbLj2WwuIx<^4;Aui_@#Obg13df(xZ_KVNr-Ta@I zf2HkLzTbpwk0isk9sil@ZrLfLyFmAy^@3~Z-=ANuVM5gabs^lTBr>)gVK7ZEop(oa znKw^BaoF>da}#&%U=V#iq0I7mab7p~ht^_`-Sa+cdQMXD+<K2e#wz&W(|ZT617n%N M)78&qol`;+0HWyLA^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_underline_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_format_underline_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e19b0b068cdc83ac19e928ec688a33940f4ebe28 GIT binary patch literal 834 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj>8z)VV@SoVw|DpZi3Exq|9F3fL-G~|mBx%j z##>%VQ;y8|!Ssn`i;Bt?o3=eHWhHhEDq#}BIe&$d5)+-01#(1wM4b^~TYP8tnR%O! z++VIz{(Me#-Q>G-Z@y8Q2?aO*FOn={Y*^$rEA7SJo}~D2CG*_+B8HPP4o2(~&M>MJ zQ-`^!gQ0GU4%0f<++B;p0^f@Z3LZ#&xNBxZTvqnfZ+06x81{*++bwy)J9q7+d+cI@ z2aX>q?Psc5xi<9H?*mFq74bXrG#5<26}5CPzm8JF_14#74c3SAmaX1+q4@n`?ip-; znwv#0oDWOXUw)wE+n-;zzW5zoCf<JIc+%068-xvKui)PJy!Ew|=j;Q$`=np=?Ogfk zz1#F}HoqD?AFTLrhPi^X=X*r`9_zG~$_Yl*d3%}6wAdIn@cMiWC|_kA*4z80@+;pA zMm}x!jmKHzgfr%U{;riR$22kgX<@_HQ;8107wu#{6Mkjpd%56WO}}@4Ju%bezr(Q^ zx4vKd&SrCD-4gLhah|`FUKW4<9-a06z0I^QAy40bK3}E%(($s1{o*tssfH`_=1#ij zu}d!Yx6FN&yZN)8Ij3CwaGrS=ub#J6=eocA>XW7|ZlBK;A^YHGWklHK=MzN_aTUz5 z_>r8TTFrM;QHPP8^RPXG()$B_dI@|tcxC?S8BE{%ej-!P#W?jVacizxyvgcGeP5o! zxcPwbt9P<<pRcffmh<hO9&Z9u#NxeEZBK~4&HR4DG(oA_zFxRa(Tw93zuP>IDvg)x zmfW7SOf~lHw3_K#^j}V1Qa-6nCD+_{^ZdKJ!RhB_<lguW$D8jz#fR1Yw`Z((R-4J} p@r+@TWkU*|0+@LQ2Acjbd3e9AEO_cL5tzamJYD@<);T3K0RT#yb3_0D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_underline_light.png b/app/src/main/res/drawable-xxxhdpi/ic_format_underline_light.png new file mode 100644 index 0000000000000000000000000000000000000000..cd497b16a074bdece46c2b4cb89732f53f97b12d GIT binary patch literal 1104 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE<hRxemd{22U45`9+AaB z+5?Q;PG;MI1j`B>(}8pX7+2iB`GtXj`L?HvV@SoVw|8wjWKt#AKm0d7%*q$Y=gB0f ztMY>}T=K)?9nM9$EWt|zjzpa7Oeo&InYmjmT7%vCbzEWSwhbqy$0RO{m12D;_Fm-j ztcVB>HlZHxqRSTY{jJ)1YBS37%I`hD@_&8Z{n~lo|Gt0o=A6-P20<wJ8}D(Kb=KKs zyL!AQE%_G5mlWT4-u3cci3UTqgdRqTWQJo@VxDnl*uRsf>+z4o`0jN9r&oUW{K4^H z-RT83=ld&PEX~qgeosBHnqk$i)xpY+A1dzd4O#p2)^C@+6%lXv^&Y#Vtb7-@>RQp; zS|Pi*rgfHm)^8V1U$r%+`u_G?%o?YQju*b@wCJ0^a`*heUg6+(wfAde7~>fVb}4Vv zInDnnZ<!OX?AN%}x0qj)?KWq8v#UpRqH&;z?v<<FBCgy@MaK$%yj$@-s`96Tnv(e4 z_EW84t4mXE*=~titE^PS*!SHn{6(cw923Xk55f#9AAfjUIWK?f?YGXCSKZIs&i}M> zAM1l1kEfJeDSo?$Wy8LG|F|3KS~X8+&Wg)4k!n|8dpE;`Z+T`F>w%)y%)f!>w|*|u z)i}M$CG@+NkEJBb!E-9lTQs`FniOs@7F;UrTlFqAa@vnu;_LUH7dT!R9BM7PeC4XT zsA*5D_r|^7b-HEi)~(B%6@C<y99p}@O|a8??zwv7hN)Ah&fK|kr)+3#-hBR#b63^L zu^bF{4ZI^TaXy1X=zO5VBO<5icb`~YP&2>&d|F40EML3+x8HxyT%T9L%kbmzP06;0 z<_vNlV}CQg6LI~x=XIc&?!Eo|FTPe?cYUJMaH#xkeL%;F$osST85SPR+P;1JdR;xe zdrTj?T>t*AF!!9~E!OJG#L#ds;ltZYmoD)#EKm4;HbznDy^3eixh(lT^O^tYbuGHA zR3!KBJZE{x*Ry%sf6sjS>nt-vL)zw_Q#x{dKfGIUYmw`^Rj;x=Cta!A``__QT+=aL zw&vTPKYx}#f9~A9(5tM1GjFAK6t3DO&T{bg;fEjAo;`au`r2zYz7v85dVP<NGnj;Y z&1K;CeVG_6XvzLyvETB~o4-mOm)*heZ_BP-zh0a<bLRD`Uu+HH-!86Zx*<BTJ91j= zy&E@n<nCSe+j0YAPxqo1D>`(#Pk68TrPH9!D04L4-Gl3aT7$gnlj_jFQK9?46xz=3 z0D%>&R@Ms?|Bd}uzdG~(e1`WE439DN7&0XD9FSl(05g?fz`u^2S3sq*W@1}BFuyZ+ My85}Sb4q9e0NPdd*#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index 3553dfe0b..0879d3b13 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -13,6 +13,7 @@ android:layout_height="match_parent" android:gravity="bottom" android:orientation="vertical" + app:umanoScrollableView="@+id/chatlineScroller" app:umanoPanelHeight="?attr/actionBarSize" app:umanoShadowHeight="4dp"> diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index cf4ffcdbe..2fd170432 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -2,8 +2,7 @@ <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_view" android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1" + android:layout_height="match_parent" android:background="?attr/colorBackground"> <android.support.v7.widget.RecyclerView diff --git a/app/src/main/res/layout/slider_main.xml b/app/src/main/res/layout/slider_main.xml index ffc9fa6c1..3a658779c 100644 --- a/app/src/main/res/layout/slider_main.xml +++ b/app/src/main/res/layout/slider_main.xml @@ -1,48 +1,114 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> +<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:sothree="http://schemas.android.com/apk/res-auto" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + xmlns:app="http://schemas.android.com/tools" + android:background="?attr/colorBackgroundCard" + android:clickable="false" + android:focusable="true" + android:gravity="bottom" + sothree:umanoFadeColor="#00000000" + sothree:umanoOverlay="true" + sothree:umanoPanelHeight="72dip" + sothree:umanoScrollableView="@+id/msg_history" + sothree:umanoShadowHeight="0.0dip"> - <LinearLayout + + <RelativeLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:animateLayoutChanges="true" - android:background="?attr/colorBackgroundCard" - android:orientation="horizontal"> + android:layout_height="match_parent" + android:paddingBottom="72dp"> - <android.support.v7.widget.AppCompatEditText - android:id="@+id/chatline" + <ScrollView + android:id="@+id/chatlineScroller" android:layout_width="0dip" - android:layout_height="?attr/actionBarSize" - android:layout_weight="1" - android:background="@android:color/transparent" - android:hint="@string/message_placeholder" - android:imeOptions="actionSend" - android:inputType="textCapSentences|textShortMessage|textAutoCorrect" - android:paddingLeft="20dp" - android:paddingRight="20dp" - android:paddingTop="19dp" - android:textSize="16sp" - android:gravity="top" - android:paddingBottom="19dp" /> + android:layout_height="match_parent" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_toLeftOf="@+id/send" + android:layout_toStartOf="@+id/send" + android:layout_alignParentTop="true" + android:layout_above="@+id/formatting_toolbar"> + + <android.support.v7.widget.AppCompatEditText + android:id="@+id/chatline" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="@android:color/transparent" + android:gravity="top" + android:hint="@string/message_placeholder" + android:inputType="textCapSentences|textShortMessage|textAutoCorrect" + android:paddingBottom="17dp" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:paddingTop="17dp" + android:text="@string/large_text" + android:textSize="16sp" /> + + </ScrollView> <android.support.v7.widget.AppCompatImageButton android:id="@+id/send" style="?attr/buttonStyleSmall" android:layout_width="56dp" android:layout_height="?attr/actionBarSize" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_alignParentTop="true" android:layout_gravity="top" android:background="?attr/selectableItemBackgroundBorderless" android:padding="12dp" android:src="@drawable/ic_send" android:tint="?attr/colorAccent" /> - </LinearLayout> - <android.support.v7.widget.RecyclerView - android:id="@+id/msg_history" - android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1" - android:background="?attr/colorBackgroundCard" /> -</LinearLayout> + <android.support.v7.widget.Toolbar + android:id="@+id/formatting_toolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:layout_alignParentBottom="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true"> + <android.support.v7.widget.ActionMenuView + android:id="@+id/amvMenu" + android:layout_width="wrap_content" + android:layout_height="?attr/actionBarSize"/> + </android.support.v7.widget.Toolbar> + </RelativeLayout> + + <FrameLayout + android:id="@+id/card_panel" + android:layout_width="fill_parent" + android:layout_height="wrap_content"> + + <android.support.v7.widget.CardView + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="16.0dip" + android:layout_marginLeft="16.0dip" + android:layout_marginRight="16.0dip" + android:layout_marginTop="16.0dip"> + + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:layout_width="fill_parent" + android:layout_height="48.0dip" + android:gravity="center_vertical" + android:paddingLeft="16.0dip" + android:paddingRight="16.0dip" + android:text="Message History" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textColor="?attr/colorForegroundSecondary" /> + + <android.support.v7.widget.RecyclerView + android:id="@+id/msg_history" + android:layout_width="fill_parent" + android:layout_height="wrap_content" /> + </LinearLayout> + </android.support.v7.widget.CardView> + </FrameLayout> +</com.sothree.slidinguppanel.SlidingUpPanelLayout> diff --git a/app/src/main/res/menu/formatting.xml b/app/src/main/res/menu/formatting.xml new file mode 100644 index 000000000..1e05f1471 --- /dev/null +++ b/app/src/main/res/menu/formatting.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + <item + android:id="@+id/format_bold" + android:icon="?attr/ic_format_bold" + app:showAsAction="always" + android:title="@string/format_bold" /> + <item + android:id="@+id/format_italic" + android:icon="?attr/ic_format_italic" + app:showAsAction="always" + android:title="@string/format_italic" /> + <item + android:id="@+id/format_underline" + android:icon="?attr/ic_format_underline" + app:showAsAction="always" + android:title="@string/format_underline" /> + <item + android:id="@+id/format_paint" + android:icon="?attr/ic_format_paint" + app:showAsAction="always" + android:title="@string/format_color" /> + <item + android:id="@+id/format_fill" + android:icon="?attr/ic_format_fill" + app:showAsAction="always" + android:title="@string/format_fill" /> +</menu> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index e5604dde7..013b7f2c3 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -58,4 +58,11 @@ <attr name="colorTintMessage" format="color" /> <attr name="colorTintHighlight" format="color" /> <attr name="chatlineExpandedSize" /> + + <!-- Format icons --> + <attr name="ic_format_bold" format="reference" /> + <attr name="ic_format_italic" format="reference" /> + <attr name="ic_format_underline" format="reference" /> + <attr name="ic_format_paint" format="reference" /> + <attr name="ic_format_fill" format="reference" /> </resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 052fda0a1..840c11d75 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,4 +39,100 @@ <!-- Preferences --> <string name="preference_theme">preference_theme</string> <string name="preference_full_hostmask">preference_full_hostmask</string> + <string name="title_activity_scrolling">ScrollingActivity</string> + <string name="large_text"> + "Material is the metaphor.\n\n" + + "A material metaphor is the unifying theory of a rationalized space and a system of motion." + "The material is grounded in tactile reality, inspired by the study of paper and ink, yet " + "technologically advanced and open to imagination and magic.\n" + "Surfaces and edges of the material provide visual cues that are grounded in reality. The " + "use of familiar tactile attributes helps users quickly understand affordances. Yet the " + "flexibility of the material creates new affordances that supercede those in the physical " + "world, without breaking the rules of physics.\n" + "The fundamentals of light, surface, and movement are key to conveying how objects move, " + "interact, and exist in space and in relation to each other. Realistic lighting shows " + "seams, divides space, and indicates moving parts.\n\n" + + "Bold, graphic, intentional.\n\n" + + "The foundational elements of print based design typography, grids, space, scale, color, " + "and use of imagery guide visual treatments. These elements do far more than please the " + "eye. They create hierarchy, meaning, and focus. Deliberate color choices, edge to edge " + "imagery, large scale typography, and intentional white space create a bold and graphic " + "interface that immerse the user in the experience.\n" + "An emphasis on user actions makes core functionality immediately apparent and provides " + "waypoints for the user.\n\n" + + "Motion provides meaning.\n\n" + + "Motion respects and reinforces the user as the prime mover. Primary user actions are " + "inflection points that initiate motion, transforming the whole design.\n" + "All action takes place in a single environment. Objects are presented to the user without " + "breaking the continuity of experience even as they transform and reorganize.\n" + "Motion is meaningful and appropriate, serving to focus attention and maintain continuity. " + "Feedback is subtle yet clear. Transitions are efficient yet coherent.\n\n" + + "3D world.\n\n" + + "The material environment is a 3D space, which means all objects have x, y, and z " + "dimensions. The z-axis is perpendicularly aligned to the plane of the display, with the " + "positive z-axis extending towards the viewer. Every sheet of material occupies a single " + "position along the z-axis and has a standard 1dp thickness.\n" + "On the web, the z-axis is used for layering and not for perspective. The 3D world is " + "emulated by manipulating the y-axis.\n\n" + + "Light and shadow.\n\n" + + "Within the material environment, virtual lights illuminate the scene. Key lights create " + "directional shadows, while ambient light creates soft shadows from all angles.\n" + "Shadows in the material environment are cast by these two light sources. In Android " + "development, shadows occur when light sources are blocked by sheets of material at " + "various positions along the z-axis. On the web, shadows are depicted by manipulating the " + "y-axis only. The following example shows the card with a height of 6dp.\n\n" + + "Resting elevation.\n\n" + + "All material objects, regardless of size, have a resting elevation, or default elevation " + "that does not change. If an object changes elevation, it should return to its resting " + "elevation as soon as possible.\n\n" + + "Component elevations.\n\n" + + "The resting elevation for a component type is consistent across apps (e.g., FAB elevation " + "does not vary from 6dp in one app to 16dp in another app).\n" + "Components may have different resting elevations across platforms, depending on the depth " + "of the environment (e.g., TV has a greater depth than mobile or desktop).\n\n" + + "Responsive elevation and dynamic elevation offsets.\n\n" + + "Some component types have responsive elevation, meaning they change elevation in response " + "to user input (e.g., normal, focused, and pressed) or system events. These elevation " + "changes are consistently implemented using dynamic elevation offsets.\n" + "Dynamic elevation offsets are the goal elevation that a component moves towards, relative " + "to the component’s resting state. They ensure that elevation changes are consistent " + "across actions and component types. For example, all components that lift on press have " + "the same elevation change relative to their resting elevation.\n" + "Once the input event is completed or cancelled, the component will return to its resting " + "elevation.\n\n" + + "Avoiding elevation interference.\n\n" + + "Components with responsive elevations may encounter other components as they move between " + "their resting elevations and dynamic elevation offsets. Because material cannot pass " + "through other material, components avoid interfering with one another any number of ways, " + "whether on a per component basis or using the entire app layout.\n" + "On a component level, components can move or be removed before they cause interference. " + "For example, a floating action button (FAB) can disappear or move off screen before a " + "user picks up a card, or it can move if a snackbar appears.\n" + "On the layout level, design your app layout to minimize opportunities for interference. " + "For example, position the FAB to one side of stream of a cards so the FAB won’t interfere " + "when a user tries to pick up one of cards.\n\n" + </string> + <string name="title_activity_demo">DemoActivity</string> + <string name="format_bold">Bold</string> + <string name="format_italic">Italic</string> + <string name="format_underline">Underline</string> + <string name="format_color">Text color</string> + <string name="format_fill">Background color</string> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ad7c39210..26b119926 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -10,6 +10,12 @@ <item name="colorControlHighlight">@color/colorAccentFocus</item> <item name="windowActionModeOverlay">true</item> + + <item name="ic_format_bold">@drawable/ic_format_bold_dark</item> + <item name="ic_format_italic">@drawable/ic_format_italic_dark</item> + <item name="ic_format_underline">@drawable/ic_format_underline_dark</item> + <item name="ic_format_paint">@drawable/ic_format_paint_dark</item> + <item name="ic_format_fill">@drawable/ic_format_fill_dark</item> </style> <style name="AppTheme.Light" parent="MaterialDrawerTheme.Light.DarkToolbar.TranslucentStatus"> @@ -21,6 +27,12 @@ <item name="colorControlHighlight">@color/colorAccentFocus</item> <item name="windowActionModeOverlay">true</item> + + <item name="ic_format_bold">@drawable/ic_format_bold_light</item> + <item name="ic_format_italic">@drawable/ic_format_italic_light</item> + <item name="ic_format_underline">@drawable/ic_format_underline_light</item> + <item name="ic_format_paint">@drawable/ic_format_paint_light</item> + <item name="ic_format_fill">@drawable/ic_format_fill_light</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> -- GitLab