ui improvements.

development
Sikander Saleem 5 years ago
parent 01ba3b3f19
commit fb6a2fb815

@ -8,7 +8,9 @@
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name="io.flutter.app.FlutterApplication"
android:label="tangheem"
android:label="Tangheem"
android:roundIcon="@mipmap/ic_launcher_round"
android:usesCleartextTraffic="true"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#FFFFFF</color>
</resources>

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.21 15.37">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g>
<path d="M8.51,8.16l6.29,7a.68.68,0,0,0,.52.23h4.19a.69.69,0,0,0,.64-.41.67.67,0,0,0-.12-.75L14.16,7.69,20,1.17a.71.71,0,0,0,.12-.76A.69.69,0,0,0,19.51,0H15.32a.68.68,0,0,0-.52.23l-6.29,7A.7.7,0,0,0,8.51,8.16Z" style="fill: #ff8c67"/>
<path d="M.18,8.16l6.29,7a.68.68,0,0,0,.52.23h4.19a.69.69,0,0,0,.52-1.16L5.83,7.69,11.7,1.17a.71.71,0,0,0,.12-.76A.69.69,0,0,0,11.18,0H7a.68.68,0,0,0-.52.23l-6.29,7A.7.7,0,0,0,.18,8.16Z" style="fill: #ff8c67"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 655 B

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12.83 16.61">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_20" data-name="Layer 20">
<path d="M.19,8.81,7,16.36a.77.77,0,0,0,.56.25h4.53a.75.75,0,0,0,.56-1.26L6.3,8.3l6.34-7A.75.75,0,0,0,12.08,0H7.55A.73.73,0,0,0,7,.25L.19,7.8A.77.77,0,0,0,.19,8.81Z" style="fill: #ff8c67"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 368 B

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.21 15.37">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g>
<path d="M11.7,8.16l-6.29,7a.68.68,0,0,1-.52.23H.7A.69.69,0,0,1,.06,15a.71.71,0,0,1,.12-.75L6.05,7.69.18,1.17A.73.73,0,0,1,.06.41.69.69,0,0,1,.7,0H4.89a.68.68,0,0,1,.52.23l6.29,7A.7.7,0,0,1,11.7,8.16Z" style="fill: #ff8c67"/>
<path d="M20,8.16l-6.29,7a.68.68,0,0,1-.52.23H9a.69.69,0,0,1-.52-1.16l5.87-6.52L8.51,1.17A.73.73,0,0,1,8.39.41.72.72,0,0,1,9,0h4.19a.68.68,0,0,1,.52.23l6.29,7A.7.7,0,0,1,20,8.16Z" style="fill: #ff8c67"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 639 B

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12.83 16.61">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_20" data-name="Layer 20">
<path d="M12.64,8.81,5.85,16.36a.81.81,0,0,1-.57.25H.76a.76.76,0,0,1-.69-.45.73.73,0,0,1,.12-.81l6.34-7-6.34-7A.73.73,0,0,1,.07.45.76.76,0,0,1,.76,0H5.28a.77.77,0,0,1,.57.25L12.64,7.8A.75.75,0,0,1,12.64,8.81Z" style="fill: #ff8c67"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 412 B

@ -0,0 +1,53 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 43.8 45.12">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g>
<g>
<path d="M20,42.54l-.34.21a.62.62,0,0,0-.19-.22.41.41,0,0,0-.23-.06.44.44,0,0,0-.3.1.32.32,0,0,0-.12.25c0,.14.11.25.31.33l.28.12a1.17,1.17,0,0,1,.51.34.8.8,0,0,1,.16.49.87.87,0,0,1-.26.64.88.88,0,0,1-.65.26.85.85,0,0,1-.61-.22,1,1,0,0,1-.3-.61l.43-.1a.75.75,0,0,0,.11.35.44.44,0,0,0,.38.18.42.42,0,0,0,.33-.13.46.46,0,0,0,.14-.34.33.33,0,0,0,0-.15.33.33,0,0,0-.07-.13.65.65,0,0,0-.12-.11l-.19-.09L19,43.53c-.39-.16-.58-.4-.58-.71a.7.7,0,0,1,.24-.54.92.92,0,0,1,.61-.21A.85.85,0,0,1,20,42.54Z" style="fill: #ea202d"/>
<path d="M20.56,43.52a1.33,1.33,0,0,1,.44-1,1.42,1.42,0,0,1,1-.43,1.4,1.4,0,0,1,1,.43,1.42,1.42,0,0,1,.43,1,1.37,1.37,0,0,1-.43,1A1.45,1.45,0,0,1,22,45a1.47,1.47,0,0,1-1-.38A1.38,1.38,0,0,1,20.56,43.52Zm.43,0a1,1,0,0,0,1.79.76,1.1,1.1,0,0,0,0-1.51,1,1,0,0,0-.74-.31,1,1,0,0,0-.75.31A1,1,0,0,0,21,43.53Z" style="fill: #ea202d"/>
<path d="M24.59,42.12v2.43h.83V45H24.16V42.12Z" style="fill: #ea202d"/>
<path d="M26.27,42.12v1.7a.94.94,0,0,0,.12.54.59.59,0,0,0,.5.24.58.58,0,0,0,.5-.24.94.94,0,0,0,.12-.54v-1.7h.43v1.82a1,1,0,0,1-.28.74,1.09,1.09,0,0,1-1.54,0,1,1,0,0,1-.28-.74V42.12Z" style="fill: #ea202d"/>
<path d="M29.5,42.52V45h-.42V42.52h-.65v-.4h1.72v.4Z" style="fill: #ea202d"/>
<path d="M31.07,42.12V45h-.43V42.12Z" style="fill: #ea202d"/>
<path d="M31.72,43.52a1.36,1.36,0,0,1,.43-1,1.48,1.48,0,0,1,2.52,1,1.37,1.37,0,0,1-.43,1,1.49,1.49,0,0,1-2,0A1.38,1.38,0,0,1,31.72,43.52Zm.43,0a1,1,0,0,0,1.79.76,1.1,1.1,0,0,0,0-1.51,1.05,1.05,0,0,0-1.49,0A1,1,0,0,0,32.15,43.53Z" style="fill: #ea202d"/>
<path d="M35.32,45v-3l2.06,2.16v-2h.43v3L35.74,43v2Z" style="fill: #ea202d"/>
<path d="M40.19,42.54l-.35.21a.53.53,0,0,0-.18-.22.49.49,0,0,0-.53,0,.32.32,0,0,0-.12.25c0,.14.1.25.31.33l.28.12a1.17,1.17,0,0,1,.51.34.79.79,0,0,1,.15.49.83.83,0,0,1-.26.64.85.85,0,0,1-.65.26.84.84,0,0,1-.6-.22,1,1,0,0,1-.3-.61l.43-.1a.75.75,0,0,0,.11.35.43.43,0,0,0,.38.18.44.44,0,0,0,.33-.13.45.45,0,0,0,.13-.34.34.34,0,0,0,0-.15.33.33,0,0,0-.07-.13.5.5,0,0,0-.13-.11l-.18-.09-.27-.12c-.39-.16-.58-.4-.58-.71a.7.7,0,0,1,.24-.54.9.9,0,0,1,.61-.21A.85.85,0,0,1,40.19,42.54Z" style="fill: #ea202d"/>
</g>
<g>
<path d="M6.27,34.85a2,2,0,0,0-.68-.8,1.87,1.87,0,0,0-1.1-.31,2.61,2.61,0,0,0-1,.2,2.94,2.94,0,0,0-.84.56,3.13,3.13,0,0,0-.61.85,3.21,3.21,0,0,0-.32,1.09,2.79,2.79,0,0,0,.06,1.09,2.17,2.17,0,0,0,.41.85,1.88,1.88,0,0,0,.7.54,2.21,2.21,0,0,0,1,.2A2.21,2.21,0,0,0,5,38.81,3.09,3.09,0,0,0,5.9,38l1.27.83A4.49,4.49,0,0,1,5.76,40a4,4,0,0,1-2,.48,4,4,0,0,1-1.61-.31,3.51,3.51,0,0,1-1.23-.85,3.31,3.31,0,0,1-.74-1.29A3.59,3.59,0,0,1,0,36.44a4.56,4.56,0,0,1,1.49-2.93,4.62,4.62,0,0,1,1.4-.84,4.48,4.48,0,0,1,1.68-.31,3.55,3.55,0,0,1,1.9.48,3.46,3.46,0,0,1,1.17,1.21Z" style="fill: #221f1f"/>
<path d="M13,40.27H8.05l1.71-7.68h1.7l-1.41,6.32h3.21Z" style="fill: #221f1f"/>
<path d="M22.61,38.07a4.41,4.41,0,0,1-1,1.28,4.66,4.66,0,0,1-1.36.85,4.46,4.46,0,0,1-1.64.3,3.88,3.88,0,0,1-1.58-.32,3.5,3.5,0,0,1-1.2-.87A3.27,3.27,0,0,1,15.13,38,3.76,3.76,0,0,1,15,36.44a4.68,4.68,0,0,1,.49-1.63,4.47,4.47,0,0,1,1-1.29,4.32,4.32,0,0,1,1.37-.85,4.27,4.27,0,0,1,1.64-.31,3.88,3.88,0,0,1,1.58.32,3.66,3.66,0,0,1,1.2.88A3.41,3.41,0,0,1,23,34.85a3.83,3.83,0,0,1,.13,1.59A4.68,4.68,0,0,1,22.61,38.07Zm-1.24-2.68a2.3,2.3,0,0,0-.36-.86,1.78,1.78,0,0,0-.67-.57,2,2,0,0,0-1-.22,2.22,2.22,0,0,0-1,.22,2.75,2.75,0,0,0-.82.57,3.07,3.07,0,0,0-.57.86,3.41,3.41,0,0,0-.29,1,3,3,0,0,0,0,1,2.33,2.33,0,0,0,.36.85,2,2,0,0,0,.66.58,2.13,2.13,0,0,0,1,.21,2.36,2.36,0,0,0,1-.21,2.78,2.78,0,0,0,.81-.58,3,3,0,0,0,.58-.85,3.43,3.43,0,0,0,.29-1A3.06,3.06,0,0,0,21.37,35.39Z" style="fill: #221f1f"/>
<path d="M31.43,37.67a3.65,3.65,0,0,1-.45,1.1,3.4,3.4,0,0,1-.78.91,3.48,3.48,0,0,1-1.09.6,4.11,4.11,0,0,1-1.4.22,3.32,3.32,0,0,1-1.41-.28,2.65,2.65,0,0,1-1.59-1.84,2.94,2.94,0,0,1,0-1.32c.19-.88.34-1.61.46-2.18s.22-1,.28-1.32.11-.54.14-.68,0-.24.05-.29h1.73l-1,4.65a1.63,1.63,0,0,0,0,.66A1.43,1.43,0,0,0,27.07,39a1.58,1.58,0,0,0,.76.17,2.08,2.08,0,0,0,.71-.13,2.42,2.42,0,0,0,.58-.35,2.33,2.33,0,0,0,.43-.51,2,2,0,0,0,.25-.61l1.11-4.93h1.73Z" style="fill: #221f1f"/>
<path d="M40.42,38a4.08,4.08,0,0,1-1,1.21A4.28,4.28,0,0,1,38.1,40a4.91,4.91,0,0,1-1.64.27H32.87l1.7-7.68h2.65a4.34,4.34,0,0,1,1.6.29,3.28,3.28,0,0,1,1.2.8,3.25,3.25,0,0,1,.73,1.21,3.45,3.45,0,0,1,.14,1.55A4.48,4.48,0,0,1,40.42,38Zm-1.29-2.57a2.11,2.11,0,0,0-.36-.79,1.83,1.83,0,0,0-.67-.52,2.18,2.18,0,0,0-1-.19H36l-1.11,5h1.62a2.45,2.45,0,0,0,1-.19,3,3,0,0,0,.83-.53,3.11,3.11,0,0,0,.6-.79,3,3,0,0,0,.29-1A2.93,2.93,0,0,0,39.13,35.45Z" style="fill: #221f1f"/>
</g>
<path d="M32,16.82s-.42-2.31-3.9-2.31a4.61,4.61,0,0,0-3.47-4.22s-.59-4.16-3.25-5.11L30.49,7.5s1.69,0,1.53,2.95Z" style="fill: #ea202d"/>
<path d="M19.12,4.45,2.64,0S.27-.34.21,1.81s0,12.27,0,12.27S2.53,10.29,8.64,11c0,0,1.11-6.55,7.32-3.55A3.73,3.73,0,0,1,19.12,4.45Z" style="fill: #ea202d"/>
<path d="M19.09,17.82s.37-2.16,2.05-1.58,4.64,2,4.64,2A2.45,2.45,0,0,1,27,20.77l-.3,2.53a1.23,1.23,0,0,1-1.81.95L19.51,22a1.57,1.57,0,0,1-.63-1.76Z" style="fill: #ea202d"/>
<path d="M12.35,19.61s.29-1.22,1.23-.83,2.57,1.28,2.57,1.28a1.4,1.4,0,0,1,.6,1.51L16.49,23a.71.71,0,0,1-1.07.48l-3-1.49a.89.89,0,0,1-.3-1Z" style="fill: #ea202d"/>
<path d="M30,18.45s.29-1.22,1.23-.83,2.58,1.28,2.58,1.28a1.39,1.39,0,0,1,.59,1.52l-.26,1.43a.7.7,0,0,1-1.06.47l-3-1.48a.9.9,0,0,1-.29-1Z" style="fill: #ea202d"/>
<path d="M15.89,11.52s.24-1,1-.7,2.17,1.08,2.17,1.08a1.18,1.18,0,0,1,.51,1.28l-.23,1.21a.59.59,0,0,1-.89.4L16,13.53a.76.76,0,0,1-.25-.87Z" style="fill: #ea202d"/>
<path d="M23.42,13.58s.21-.88.88-.6,1.84.92,1.84.92A1,1,0,0,1,26.57,15l-.19,1a.5.5,0,0,1-.76.34l-2.14-1.07a.64.64,0,0,1-.21-.73Z" style="fill: #ea202d"/>
<path d="M19.52,25s.21-.87.88-.59,1.84.92,1.84.92a1,1,0,0,1,.43,1.08l-.19,1a.5.5,0,0,1-.76.34l-2.13-1.07a.64.64,0,0,1-.22-.73Z" style="fill: #ea202d"/>
<path d="M10.6,13.58s.21-.88.88-.6,1.84.92,1.84.92A1,1,0,0,1,13.75,15l-.19,1a.5.5,0,0,1-.76.34l-2.13-1.07a.64.64,0,0,1-.22-.73Z" style="fill: #ea202d"/>
<path d="M35,27.42s.21-.87.88-.59,1.84.92,1.84.92a1,1,0,0,1,.43,1.08l-.19,1a.5.5,0,0,1-.76.34l-2.13-1.07a.64.64,0,0,1-.21-.73Z" style="fill: #ea202d"/>
<path d="M27.83,27.25s.12-.52.52-.35,1.08.54,1.08.54a.59.59,0,0,1,.26.64l-.12.6a.29.29,0,0,1-.44.2l-1.26-.63a.38.38,0,0,1-.13-.43Z" style="fill: #ea202d"/>
<path d="M7.4,20.08s.12-.51.52-.34S9,20.28,9,20.28a.57.57,0,0,1,.25.63l-.11.61a.3.3,0,0,1-.45.2l-1.25-.63a.38.38,0,0,1-.13-.43Z" style="fill: #ea202d"/>
<path d="M4.19,14.75s.12-.52.51-.35,1.09.54,1.09.54a.59.59,0,0,1,.25.64l-.11.6a.29.29,0,0,1-.45.2l-1.26-.63a.38.38,0,0,1-.12-.43Z" style="fill: #ea202d"/>
<g>
<path d="M2.26,30.72H2a.54.54,0,0,1-.56-.29.52.52,0,0,1-.54.29c-.47,0-.71-.31-.71-.93s.24-.89.71-.89h.75V30c0,.28.12.42.37.42h.22Zm-.94-1.51H.94a.3.3,0,0,0-.3.16.86.86,0,0,0-.08.42.88.88,0,0,0,.08.43.31.31,0,0,0,.3.17.3.3,0,0,0,.3-.17.88.88,0,0,0,.08-.43ZM1,28.33a.21.21,0,0,1-.2.21.21.21,0,0,1,0-.42A.21.21,0,0,1,1,28.33Zm.49,0a.21.21,0,0,1-.19.21.21.21,0,0,1,0-.42A.21.21,0,0,1,1.49,28.33Z" style="fill: #221f1f"/>
<path d="M3.15,30a.69.69,0,0,1-.19.51.63.63,0,0,1-.5.21H2.17v-.33h.27q.36,0,.36-.42V29l.35-.11Zm-.22,1.28a.21.21,0,0,1-.19.21.21.21,0,0,1,0-.42A.21.21,0,0,1,2.93,31.28Z" style="fill: #221f1f"/>
<path d="M4.52,30.72H4.13a.47.47,0,0,1-.49-.52v-2L4,28.12v2.06c0,.13.06.2.18.2h.35Z" style="fill: #221f1f"/>
<path d="M6.92,30.72H4.43v-.33H6.09v-.15A2.07,2.07,0,0,0,6,29.58a.48.48,0,0,0-.49-.34.74.74,0,0,0-.57.31l-.25-.26a1.12,1.12,0,0,1,.82-.39.81.81,0,0,1,.78.44,2.17,2.17,0,0,1,.14.9v.14h.47Z" style="fill: #221f1f"/>
<path d="M10.21,30.72H6.83v-.34h.44v-1l.35-.11v1.13h.74V29.19l.35-.11v1.3h.75V29l.35-.11v1.48h.4Z" style="fill: #221f1f"/>
<path d="M11.07,30a.73.73,0,0,1-.19.51.66.66,0,0,1-.51.21h-.24v-.34h.22c.24,0,.36-.14.36-.41V28.24l.36-.12Z" style="fill: #221f1f"/>
<path d="M11.9,30.72h-.35V28.24l.35-.12Z" style="fill: #221f1f"/>
<path d="M16.2,30.61c0,.59-.34.88-1,.88a1,1,0,0,1-.81-.33,1.8,1.8,0,0,1-.26-.92l.35-.13a1.52,1.52,0,0,0,.16.8.68.68,0,0,0,.56.22.76.76,0,0,0,.46-.1.46.46,0,0,0,.18-.41V28.24l.35-.12Z" style="fill: #221f1f"/>
<path d="M18.52,30.72h-.44a1,1,0,0,1-.24.54.71.71,0,0,1-.54.23.83.83,0,0,1-.43-.1L16.71,31a1.22,1.22,0,0,0,.58.15.48.48,0,0,0,.44-.44h-.29a.77.77,0,0,1-.58-.25.86.86,0,0,1-.19-.58,1.13,1.13,0,0,1,.17-.64.64.64,0,0,1,.57-.3c.47,0,.71.31.71.94,0,.13,0,.29,0,.5h.41Zm-.75-.83a1.21,1.21,0,0,0-.05-.4.3.3,0,0,0-.31-.21c-.25,0-.38.21-.38.61s.13.5.41.5h.33Z" style="fill: #221f1f"/>
<path d="M20,30.72h-.25a.69.69,0,0,1-.52-.22.65.65,0,0,1-.52.22h-.3v-.34h.28c.24,0,.37-.14.37-.41V28.24l.35-.12V30q0,.39.36.39H20Z" style="fill: #221f1f"/>
<path d="M21.9,30.72h-2v-.33h1.62v-.15a2,2,0,0,0-.08-.66.47.47,0,0,0-.49-.34.72.72,0,0,0-.56.31l-.26-.26A1.12,1.12,0,0,1,21,28.9a.79.79,0,0,1,.78.44,2.15,2.15,0,0,1,.15.9Z" style="fill: #221f1f"/>
</g>
<path d="M43.8,33.59a1.3,1.3,0,0,1-.39.95,1.27,1.27,0,0,1-.95.4,1.31,1.31,0,0,1-1-.4,1.28,1.28,0,0,1-.4-1,1.4,1.4,0,0,1,.13-.57,1.47,1.47,0,0,1,.36-.46A1.34,1.34,0,0,1,43,32.36a1.29,1.29,0,0,1,.57.49A1.31,1.31,0,0,1,43.8,33.59Zm-1.35-1.15a1,1,0,0,0-.79.34,1.09,1.09,0,0,0-.33.8,1.12,1.12,0,0,0,.33.82,1.07,1.07,0,0,0,.8.34,1,1,0,0,0,.79-.34,1.1,1.1,0,0,0,.33-.81,1.18,1.18,0,0,0-.13-.53,1,1,0,0,0-.34-.41A1.1,1.1,0,0,0,42.45,32.44Zm.14,1.28.5.65h-.36l-.46-.62v.62H42V32.81h.31a.77.77,0,0,1,.48.12.48.48,0,0,1,.08.62.46.46,0,0,1-.23.16Zm-.32-.22h0c.21,0,.32-.07.32-.22s-.1-.2-.31-.2h-.06Z" style="fill: #808083"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 15 KiB

@ -2,11 +2,10 @@ import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:tangheem/ui/home_screen.dart';
import 'package:tangheem/ui/surah_screen.dart';
import 'package:tangheem/ui/tangheem_screen.dart';
import 'package:tangheem/widgets/common_appbar_widget.dart';
import 'package:tangheem/ui/common_appbar.dart';
import 'package:tangheem/ui/screens/home_screen.dart';
import 'package:tangheem/ui/screens/surah_screen.dart';
import 'package:tangheem/ui/screens/tangheem_screen.dart';
import 'classes/const.dart';
void main() {
@ -26,14 +25,14 @@ class Application extends StatelessWidget {
var className;
switch (settings.name) {
case HomeScreen.routeName:
className = CommonAppbarWidget(showDrawer: true, child: HomeScreen());
className = CommonAppbar(showDrawer: true, child: HomeScreen());
break;
case TangheemScreen.routeName:
className = CommonAppbarWidget(child: TangheemScreen());
className = CommonAppbar(child: TangheemScreen());
break;
case SurahScreen.routeName:
String query = settings.arguments.toString();
className = CommonAppbarWidget(child: SurahScreen(query: query));
className = CommonAppbar(child: SurahScreen(query: query));
break;
}
return goToNavigation(className);

@ -0,0 +1,291 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tangheem/classes/const.dart';
class CommonAppbar extends StatefulWidget {
final bool showDrawer;
final Widget child;
CommonAppbar({Key key, this.showDrawer = false, @required this.child}) : super(key: key);
@override
_CommonAppbarState createState() {
return _CommonAppbarState();
}
}
class _CommonAppbarState extends State<CommonAppbar> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: widget.showDrawer ? _scaffoldKey : null,
drawer: widget.showDrawer ? drawerView() : null,
resizeToAvoidBottomInset: true,
drawerScrimColor: Colors.black.withOpacity(.3),
body: SafeArea(
child: Column(
children: [
Container(
color: Colors.white,
height: 100,
padding: EdgeInsets.only(top: 8, bottom: 8, right: 16),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconButton(
icon: Icon(widget.showDrawer ? Icons.menu : Icons.arrow_back_ios, color: Const.textGrey),
padding: EdgeInsets.only(left: 16),
onPressed: () {
if (widget.showDrawer) {
_scaffoldKey.currentState.openDrawer();
} else {
Navigator.pop(context);
}
},
),
Hero(
tag: "logo",
child: SvgPicture.asset(
"assets/logos/tangheem_logo.svg",
height: 100,
width: 100,
alignment: Alignment.centerRight,
),
)
],
),
),
Expanded(child: Directionality(textDirection: TextDirection.rtl, child: widget.child)),
],
),
),
);
}
Widget drawerView() {
var height = MediaQuery.of(context).padding.top;
return Drawer(
elevation: 0,
child: Container(
color: Colors.white,
child: Column(
children: [
Container(
height: 100 + height,
padding: EdgeInsets.only(left: 0, top: height),
alignment: Alignment.centerLeft,
child: IconButton(
icon: Icon(Icons.clear, color: Const.textGrey),
onPressed: () {
if (_scaffoldKey.currentState.isDrawerOpen) {
Navigator.pop(context);
}
},
),
),
Container(
margin: EdgeInsets.only(top: 8, bottom: 16),
padding: EdgeInsets.only(left: 12, right: 12),
child: Row(
children: [
commonIconButton("assets/icons/accessibility.svg", () {}),
commonIconButton("assets/icons/dark_mode.svg", () {}),
commonIconButton("assets/icons/bookmark.svg", () {}),
commonIconButton("assets/icons/increase_size.svg", () {}),
commonIconButton("assets/icons/reduce_size.svg", () {}),
commonIconButton("assets/icons/notification.svg", () {}),
commonIconButton("assets/icons/user_logged.svg", () {}),
],
),
),
Expanded(
child: ListView(
physics: BouncingScrollPhysics(),
padding: EdgeInsets.only(left: 24, right: 24),
children: [
myListItem("assets/icons/home.svg", "الرئيسية", true),
SizedBox(height: 2),
myListItem("assets/icons/encyclopedia.svg", "موسوعة تنغيم", false),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/about.svg", "التعريف بموسوعة تنغيم", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/browse.svg", "تصفح الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/download.svg", "تنزيل الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/copyrights.svg", "حقوق الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/members.svg", "اللجنة الاستشارية", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
SizedBox(height: 2),
myListItem("assets/icons/read_quran.svg", "اقرأ القرآن الكريم", false),
SizedBox(height: 2),
myListItem("assets/icons/contact.svg", "الاتصال بنا", false),
],
),
),
Container(
margin: EdgeInsets.only(top: 16, bottom: 12),
padding: EdgeInsets.only(left: 32, right: 32),
child: Row(
children: [
commonIconButton("assets/icons/linkedin.svg", () {}, size: 35),
commonIconButton("assets/icons/pinterest.svg", () {}, size: 35),
commonIconButton("assets/icons/whatsapp.svg", () {}, size: 35),
commonIconButton("assets/icons/facebook.svg", () {}, size: 35),
commonIconButton("assets/icons/instgram.svg", () {}, size: 35),
commonIconButton("assets/icons/twitter.svg", () {}, size: 35),
],
),
),
Padding(
padding: EdgeInsets.only(left: 32, right: 32, bottom: 8),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"Powered by Cloud Solutions",
maxLines: 1,
textAlign: TextAlign.right,
style: TextStyle(fontSize: 14),
),
SizedBox(width: 8),
SvgPicture.asset("assets/logos/cloud_logo.svg", width: 30, height: 30)
],
),
)
],
),
),
);
}
Widget commonIconButton(String icon, VoidCallback onPressed, {double size}) {
return Expanded(
child: IconButton(padding: EdgeInsets.zero, icon: SvgPicture.asset(icon, height: size ?? 25, width: size ?? 30), onPressed: onPressed),
);
}
Widget myListItem(String icon, String title, bool isSelected) {
return InkWell(
onTap: () {
Navigator.pop(context);
},
child: Container(
height: 40,
padding: EdgeInsets.only(left: 8, right: 8),
alignment: Alignment.centerRight,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
gradient: isSelected
? LinearGradient(
stops: [0.0, 0.5],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Const.gradientPink, Const.gradientOrange],
)
: null,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
title,
style: TextStyle(fontSize: 14, color: isSelected ? Colors.white : Const.textGrey),
),
SizedBox(width: 8),
SvgPicture.asset(icon, height: 20, width: 20, color: isSelected ? Colors.white : Const.textGrey),
],
),
),
);
}
}

@ -1,134 +0,0 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tangheem/classes/const.dart';
import 'package:tangheem/ui/surah_screen.dart';
import 'package:tangheem/ui/tangheem_screen.dart';
import 'package:tangheem/widgets/common_dropdown_button.dart';
class HomeScreen extends StatefulWidget {
static const String routeName = "/";
HomeScreen({Key key}) : super(key: key);
@override
_HomeScreenState createState() {
return _HomeScreenState();
}
}
class _HomeScreenState extends State<HomeScreen> {
TextEditingController _searchController = TextEditingController();
@override
void initState() {
super.initState();
SystemChannels.textInput.invokeMethod('TextInput.hide');
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.fromLTRB(16, 16, 16, 0),
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"موسوعةالأداء القرآني",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20, color: Const.primaryBlue, height: 1),
),
SizedBox(height: 4),
Text(
"للأساليب اللغوية",
style: TextStyle(fontSize: 20, color: Const.primaryBlue, height: 1),
),
SizedBox(height: 8),
Text(
"تساعدك موسوعة \"تنغيم\" على أداء الأساليب اللغوية القرآنية (كالاستفهام والأمر والنهي والإتمام) بما يخدم معنى الآية. وقد أشرف عليها متخصصون في اللغة العربية والدراسات القرآنية.",
style: TextStyle(fontSize: 14, color: Const.textGrey, height: 1),
),
SizedBox(height: 32),
Row(
children: [
Expanded(
child: CommonDropDownButton("الأسلوب اللغوي", onPressed: () {}),
),
SizedBox(width: 8),
Expanded(
child: CommonDropDownButton("السورة", onPressed: () {}),
)
],
),
SizedBox(height: 16),
CommonDropDownButton(
"ابدأ البحث",
color: Const.secondaryPink,
icon: "assets/icons/go_forward.svg",
widthHeight: 20,
iconColor: Colors.white,
onPressed: () {
FocusScope.of(context).unfocus();
Navigator.pushNamed(context, TangheemScreen.routeName);
},
),
SizedBox(height: 16),
SizedBox(
height: 40,
child: TextField(
controller: _searchController,
style: TextStyle(color: Const.primaryBlack, fontSize: 14),
decoration: InputDecoration(
contentPadding: EdgeInsets.fromLTRB(4, 4, 4, 4),
alignLabelWithHint: true,
fillColor: Colors.white,
filled: true,
hintStyle: TextStyle(color: Const.textHintGrey, fontSize: 12),
hintText: "البحث عن سورة أو آية",
prefixIconConstraints: BoxConstraints(maxHeight: 16),
prefixIcon: Padding(
padding: EdgeInsets.only(right: 6),
child: SvgPicture.asset(
"assets/icons/search.svg",
//color: Const.secondaryOrange,
),
),
suffixIcon: InkWell(
onTap: () {
FocusScope.of(context).unfocus();
Navigator.pushNamed(context, SurahScreen.routeName, arguments: _searchController.text);
},
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
child: Container(
alignment: Alignment.center,
width: 80,
child: Text(
"بحث",
style: TextStyle(fontSize: 14, color: Colors.white),
),
decoration: BoxDecoration(
color: Const.secondaryPink,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(6),
topLeft: Radius.circular(6),
),
),
),
),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(6), borderSide: BorderSide.none),
),
),
)
],
),
);
}
}

@ -0,0 +1,145 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tangheem/classes/const.dart';
import 'package:tangheem/ui/screens/surah_screen.dart';
import 'package:tangheem/ui/screens/tangheem_screen.dart';
import 'package:tangheem/widgets/common_dropdown_button.dart';
class HomeScreen extends StatefulWidget {
static const String routeName = "/";
HomeScreen({Key key}) : super(key: key);
@override
_HomeScreenState createState() {
return _HomeScreenState();
}
}
class _HomeScreenState extends State<HomeScreen> {
TextEditingController _searchController = TextEditingController();
FocusNode _searchFocusNode = FocusNode();
@override
void initState() {
super.initState();
SystemChannels.textInput.invokeMethod('TextInput.hide');
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
child: SingleChildScrollView(
padding: EdgeInsets.fromLTRB(16, 16, 16, 0),
physics: BouncingScrollPhysics(),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
"موسوعةالأداء القرآني",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20, color: Const.primaryBlue, height: 1),
),
SizedBox(height: 4),
Text(
"للأساليب اللغوية",
style: TextStyle(fontSize: 20, color: Const.primaryBlue, height: 1),
),
SizedBox(height: 8),
Text(
"تساعدك موسوعة \"تنغيم\" على أداء الأساليب اللغوية القرآنية (كالاستفهام والأمر والنهي والإتمام) بما يخدم معنى الآية. وقد أشرف عليها متخصصون في اللغة العربية والدراسات القرآنية.",
style: TextStyle(fontSize: 14, color: Const.textGrey, height: 1),
),
SizedBox(height: 32),
Row(
children: [
Expanded(
child: CommonDropDownButton("الأسلوب اللغوي", onPressed: () {}),
),
SizedBox(width: 8),
Expanded(
child: CommonDropDownButton("السورة", onPressed: () {}),
)
],
),
SizedBox(height: 16),
CommonDropDownButton(
"ابدأ البحث",
color: Const.secondaryPink,
icon: "assets/icons/go_forward.svg",
widthHeight: 20,
isExpanded: false,
iconColor: Colors.white,
onPressed: () async {
_searchFocusNode.unfocus();
_searchFocusNode.canRequestFocus = false;
await Navigator.pushNamed(context, TangheemScreen.routeName);
_searchFocusNode.canRequestFocus = true;
},
),
SizedBox(height: 16),
Container(
height: 50,
padding: EdgeInsets.only(top: 4, bottom: 6),
child: TextField(
controller: _searchController,
focusNode: _searchFocusNode,
style: TextStyle(color: Const.primaryBlack, fontSize: 14),
decoration: InputDecoration(
contentPadding: EdgeInsets.fromLTRB(4, 4, 4, 4),
alignLabelWithHint: true,
fillColor: Colors.white,
filled: true,
hintStyle: TextStyle(color: Const.textHintGrey, fontSize: 12),
hintText: "البحث عن سورة أو آية",
prefixIconConstraints: BoxConstraints(maxHeight: 16),
prefixIcon: Padding(
padding: EdgeInsets.only(right: 6),
child: SvgPicture.asset(
"assets/icons/search.svg",
//color: Const.secondaryOrange,
),
),
suffixIcon: InkWell(
onTap: () async {
_searchFocusNode.unfocus();
_searchFocusNode.canRequestFocus = false;
await Navigator.pushNamed(context, SurahScreen.routeName, arguments: _searchController.text);
_searchFocusNode.canRequestFocus = true;
},
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
child: Container(
alignment: Alignment.center,
width: 80,
child: Text(
"بحث",
style: TextStyle(fontSize: 14, color: Colors.white),
),
decoration: BoxDecoration(
color: Const.secondaryPink,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(6),
topLeft: Radius.circular(6),
),
),
),
),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(6), borderSide: BorderSide.none),
),
),
)
],
),
),
);
}
}

@ -73,8 +73,8 @@ class _SurahScreenState extends State<SurahScreen> {
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
nextOptionButton("assets/icons/go_forward.svg", "سورة الفاتحة", () {}),
previousOptionButton("assets/icons/go_forward.svg", "سورة آل عمران", () {}),
nextOptionButton("assets/icons/prev.svg", "سورة الفاتحة", () {}),
previousOptionButton("assets/icons/next.svg", "سورة آل عمران", () {}),
],
),
Expanded(
@ -107,14 +107,14 @@ class _SurahScreenState extends State<SurahScreen> {
SizedBox(height: 8),
Text(
"1 2 3 4 5 6 7 8 9",
style: TextStyle(fontSize: 14, color: Const.textHintGrey),
style: TextStyle(fontSize: 16, color: Const.textHintGrey),
),
SizedBox(height: 4),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
nextOptionButton("assets/icons/go_forward.svg", "الآيات السابقة", () {}),
previousOptionButton("assets/icons/go_forward.svg", "الآيات التالية", () {}),
nextOptionButton("assets/icons/prev_single.svg", "الآيات السابقة", () {}),
previousOptionButton("assets/icons/next_single.svg", "الآيات التالية", () {}),
],
),
],
@ -134,7 +134,7 @@ class _SurahScreenState extends State<SurahScreen> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
SvgPicture.asset(icon, height: 16, width: 16, color: Colors.orange),
SvgPicture.asset(icon, height: 12, width: 12),
SizedBox(width: 4),
Text(
text,
@ -157,7 +157,7 @@ class _SurahScreenState extends State<SurahScreen> {
style: TextStyle(color: Const.textGrey),
),
SizedBox(width: 4),
SvgPicture.asset(icon, height: 16, width: 16, color: Colors.orange),
SvgPicture.asset(icon, height: 12, width: 12),
],
),
);

@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tangheem/classes/const.dart';
import 'package:tangheem/widgets/aya_player_widget.dart';
import 'package:tangheem/widgets/common_dropdown_button.dart';
class TangheemScreen extends StatefulWidget {
static const String routeName = "/tangheem";
@ -145,8 +144,8 @@ class _TangheemScreenState extends State<TangheemScreen> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
nextOptionButton("assets/icons/go_forward.svg", "الآيات السابقة", () {}),
previousOptionButton("assets/icons/go_forward.svg", "الآيات التالية", () {}),
nextOptionButton("assets/icons/prev_single.svg", "الآيات السابقة", () {}),
previousOptionButton("assets/icons/next_single.svg", "الآيات التالية", () {}),
],
),
),
@ -167,7 +166,7 @@ class _TangheemScreenState extends State<TangheemScreen> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
SvgPicture.asset(icon, height: 16, width: 16,color: Colors.orange),
SvgPicture.asset(icon, height: 12, width: 12),
SizedBox(width: 4),
Text(
text,
@ -190,7 +189,7 @@ class _TangheemScreenState extends State<TangheemScreen> {
style: TextStyle(color: Const.textGrey),
),
SizedBox(width: 4),
SvgPicture.asset(icon, height: 16, width: 16,color: Colors.orange),
SvgPicture.asset(icon, height: 12, width: 12),
],
),
);

@ -54,7 +54,7 @@ class _AyaPlayerWidgetState extends State<AyaPlayerWidget> {
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage("https://i.pinimg.com/originals/91/cf/45/91cf453d79f58df425b6b0267603ccb3.jpg"),
image: NetworkImage("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSgswb98Ga7aJjIaNvqUWBsjMkdR18xzp3pyg&usqp=CAU"),
),
borderRadius: BorderRadius.all(
Radius.circular(30.0),

@ -1,267 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:tangheem/classes/const.dart';
class CommonAppbarWidget extends StatefulWidget {
final bool showDrawer;
final Widget child;
CommonAppbarWidget({Key key, this.showDrawer = false, @required this.child}) : super(key: key);
@override
_CommonAppbarWidgetState createState() {
return _CommonAppbarWidgetState();
}
}
class _CommonAppbarWidgetState extends State<CommonAppbarWidget> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: widget.showDrawer ? _scaffoldKey : null,
drawer: widget.showDrawer ? drawerView() : null,
drawerScrimColor: Colors.black.withOpacity(.3),
body: SafeArea(
child: Column(
children: [
Container(
color: Colors.white,
height: 100,
padding: EdgeInsets.only(top: 8, bottom: 8,right: 16),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconButton(
icon: Icon(widget.showDrawer ? Icons.menu : Icons.arrow_back_ios, color: Const.textGrey),
padding: EdgeInsets.only(left: 16),
onPressed: () {
if (widget.showDrawer) {
_scaffoldKey.currentState.openDrawer();
} else {
Navigator.pop(context);
}
},
),
SvgPicture.asset(
"assets/logos/tangheem_logo.svg",
height: 100,
width: 100,
alignment: Alignment.centerRight,
)
],
),
),
Expanded(child: Directionality(textDirection: TextDirection.rtl, child: widget.child)),
],
),
),
);
}
Widget drawerView() {
var height = MediaQuery.of(context).padding.top;
return Drawer(
elevation: 0,
child: Container(
color: Colors.white,
child: Column(
children: [
Container(
height: 100 + height,
padding: EdgeInsets.only(left: 0, top: height),
alignment: Alignment.centerLeft,
child: IconButton(
icon: Icon(Icons.clear, color: Const.textGrey),
onPressed: () {
if (_scaffoldKey.currentState.isDrawerOpen) {
Navigator.pop(context);
}
},
),
),
Container(
margin: EdgeInsets.only(top: 8, bottom: 16),
padding: EdgeInsets.only(left: 12, right: 12),
child: Row(
children: [
commonIconButton("assets/icons/accessibility.svg", () {}),
commonIconButton("assets/icons/dark_mode.svg", () {}),
commonIconButton("assets/icons/bookmark.svg", () {}),
commonIconButton("assets/icons/increase_size.svg", () {}),
commonIconButton("assets/icons/reduce_size.svg", () {}),
commonIconButton("assets/icons/notification.svg", () {}),
commonIconButton("assets/icons/user_logged.svg", () {}),
],
),
),
Expanded(
child: Container(
margin: EdgeInsets.only(left: 24, right: 24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
myListItem("assets/icons/home.svg", "الرئيسية", true),
SizedBox(height: 2),
myListItem("assets/icons/encyclopedia.svg", "موسوعة تنغيم", false),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/about.svg", "التعريف بموسوعة تنغيم", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/browse.svg", "تصفح الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/download.svg", "تنزيل الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/copyrights.svg", "حقوق الموسوعة", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
Container(
width: double.infinity,
child: Row(
children: [
Expanded(
child: myListItem("assets/icons/members.svg", "اللجنة الاستشارية", false),
),
Container(
// width: 35,
height: 40,
margin: EdgeInsets.only(right: 17, left: 10),
// color: Const.primaryBlack,
child: VerticalDivider(color: Const.primaryBlack, thickness: .7, width: 1),
),
],
),
),
SizedBox(height: 2),
myListItem("assets/icons/read_quran.svg", "اقرأ القرآن الكريم", false),
SizedBox(height: 2),
myListItem("assets/icons/contact.svg", "الاتصال بنا", false),
],
),
),
),
Container(
margin: EdgeInsets.only(top: 16, bottom: 0),
padding: EdgeInsets.only(left: 32, right: 32),
child: Row(
children: [
commonIconButton("assets/icons/linkedin.svg", () {}, size: 35),
commonIconButton("assets/icons/pinterest.svg", () {}, size: 35),
commonIconButton("assets/icons/whatsapp.svg", () {}, size: 35),
commonIconButton("assets/icons/facebook.svg", () {}, size: 35),
commonIconButton("assets/icons/instgram.svg", () {}, size: 35),
commonIconButton("assets/icons/twitter.svg", () {}, size: 35),
],
),
),
],
),
),
);
}
Widget commonIconButton(String icon, VoidCallback onPressed, {double size}) {
return Expanded(
child: IconButton(padding: EdgeInsets.zero, icon: SvgPicture.asset(icon, height: size ?? 25, width: size ?? 30), onPressed: onPressed),
);
}
Widget myListItem(String icon, String title, bool isSelected) {
return Container(
height: 40,
padding: EdgeInsets.only(left: 8, right: 8),
alignment: Alignment.centerRight,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
gradient: isSelected
? LinearGradient(
stops: [0.0, 0.5],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Const.gradientPink, Const.gradientOrange],
)
: null,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
title,
style: TextStyle(fontSize: 14, color: isSelected ? Colors.white : Const.textGrey),
),
SizedBox(width: 8),
SvgPicture.asset(icon, height: 20, width: 20, color: isSelected ? Colors.white : Const.textGrey),
],
),
);
}
}

@ -7,10 +7,11 @@ class CommonDropDownButton extends StatelessWidget {
final String icon;
final Color iconColor;
final Color color;
final bool isExpanded;
final VoidCallback onPressed;
final double widthHeight;
CommonDropDownButton(this.text, {Key key, this.onPressed, this.color, this.icon, this.widthHeight, this.iconColor}) : super(key: key);
CommonDropDownButton(this.text, {Key key, this.onPressed, this.isExpanded = true, this.color, this.icon, this.widthHeight, this.iconColor}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -24,17 +25,31 @@ class CommonDropDownButton extends StatelessWidget {
color: color ?? Const.primaryBlue,
borderRadius: BorderRadius.circular(6),
),
padding: EdgeInsets.fromLTRB(8, 8, 16, 8),
padding: EdgeInsets.fromLTRB(8, 8, 8, 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
isExpanded
? Expanded(
child: Text(
text,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 12, color: Colors.white),
),
)
:
Text(
text,
style: TextStyle(fontSize: 13, color: Colors.white),
),
SizedBox(width: 8),
text,
maxLines: 1,
// overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 12, color: Colors.white),
),
SizedBox(width: 4),
SvgPicture.asset(
icon ?? "assets/icons/drop_menu.svg",
width: widthHeight ?? 10,

Loading…
Cancel
Save