Commit f82262ff authored by Sai Srinivas's avatar Sai Srinivas
Browse files

Splash logo and icon changes

parent 81ba1294
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="in.webgrid.genrentals">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
......
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1397.06 554.67">
<defs>
<style>
.cls-1 {
isolation: isolate;
}
.cls-2 {
fill: #1b82c5;
}
</style>
</defs>
<g class="cls-1">
<g class="cls-1">
<path class="cls-2" d="M124.9,419.17h-13.11l9.92-46.92h-14.15l2.42-11.47h41.49l-2.42,11.47h-14.23l-9.92,46.92Z"/>
<path class="cls-2" d="M181.06,419.17l6.47-30.79c.09-.43.17-.78.17-1.04,0-1.04-.69-1.38-2.16-1.38h-18.03c-1.73,0-2.42.52-2.85,2.42l-6.47,30.79h-12.08l13.11-61.93h12.08l-4.92,23.03c2.24-3.28,4.83-4.74,8.54-4.74h19.15c4.66,0,6.73,1.47,6.73,5.26,0,.95-.09,2.07-.35,3.28l-7.42,35.11h-11.99Z"/>
<path class="cls-2" d="M209.7,419.17c-4.92,0-6.9-1.64-6.9-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.8-8.54,10.09-8.54h29.5c4.4,0,6.12,1.64,6.12,5,0,.95-.09,1.98-.34,3.19l-3.62,17.17h-29.07l1.47-7.25h17.6l1.29-5.87c.09-.43.09-.78.09-1.12,0-.86-.43-1.21-1.81-1.21h-17.34c-1.98,0-2.42.52-2.85,2.42l-4.05,18.8c-.09.52-.17.95-.17,1.29,0,1.04.52,1.29,1.98,1.29h29.41l-2.07,9.92h-35.37Z"/>
<path class="cls-2" d="M313.81,419.17l.95-4.66c-2.16,3.28-4.75,4.66-8.45,4.66h-18.98c-4.57,0-6.81-1.47-6.81-5.26,0-.95.17-2.07.43-3.28l7.42-35.11h12.08l-6.56,30.79c-.09.43-.17.86-.17,1.12,0,1.04.6,1.38,2.07,1.38h17.34c1.81,0,2.5-.6,2.93-2.5l6.56-30.79h12.08l-9.23,43.65h-11.64Z"/>
<path class="cls-2" d="M334.6,419.17l13.11-61.93h12.08l-13.11,61.93h-12.08Z"/>
<path class="cls-2" d="M363.93,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l10.01-47.27h12.08l-2.59,12.16h10.52l-1.98,9.49h-10.52l-4.74,22.34c-.09.43-.17.86-.17,1.12,0,.95.6,1.21,1.9,1.21h7.94l-1.98,9.49h-14.06Z"/>
<path class="cls-2" d="M385.66,419.17l9.23-43.65h12.08l-9.23,43.65h-12.08ZM396.01,370.35l2.76-13.11h12.16l-2.76,13.11h-12.16Z"/>
<path class="cls-2" d="M466.83,419.17l6.47-30.79c.09-.43.17-.78.17-1.12,0-.95-.6-1.29-2.16-1.29h-12.94c-1.81,0-2.5.52-2.85,2.16l-6.56,31.05h-12.08l6.47-30.79c.09-.43.17-.78.17-1.12,0-.95-.6-1.29-2.07-1.29h-13.03c-1.72,0-2.42.52-2.85,2.42l-6.47,30.79h-12.08l9.23-43.65h11.64l-1.04,4.74c2.16-3.28,4.83-4.74,8.54-4.74h14.58c4.4,0,6.56,1.38,6.64,4.74,2.59-3.36,5-4.74,8.71-4.74h14.58c4.57,0,6.73,1.55,6.73,5.35,0,.95-.09,1.98-.35,3.19l-7.42,35.11h-12.08Z"/>
<path class="cls-2" d="M495.3,419.17c-4.4,0-6.21-1.64-6.21-5,0-.86.17-1.98.43-3.19l2.16-10.35c1.38-6.55,3.45-8.37,8.97-8.37h22.17l-1.55,7.42h-15.87c-1.64,0-2.16.43-2.5,2.24l-.95,4.57c-.09.52-.17.86-.17,1.21,0,.86.43,1.12,1.64,1.12h20.18l4.57-21.39c.09-.34.09-.69.09-.95,0-.95-.52-1.47-2.07-1.47h-29.59l1.98-9.49h35.71c5,0,6.9,1.64,6.9,5.18,0,.95-.17,2.07-.43,3.36l-7.42,35.11h-38.04Z"/>
<path class="cls-2" d="M550.33,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l10.01-47.27h12.08l-2.59,12.16h10.52l-1.98,9.49h-10.52l-4.74,22.34c-.09.43-.17.86-.17,1.12,0,.95.6,1.21,1.9,1.21h7.94l-1.98,9.49h-14.06Z"/>
<path class="cls-2" d="M579.31,419.17c-4.92,0-6.9-1.64-6.9-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.79-8.54,10.09-8.54h29.5c4.4,0,6.12,1.64,6.12,5,0,.95-.09,1.98-.35,3.19l-3.62,17.17h-29.07l1.47-7.25h17.6l1.29-5.87c.09-.43.09-.78.09-1.12,0-.86-.43-1.21-1.81-1.21h-17.34c-1.98,0-2.42.52-2.85,2.42l-4.05,18.8c-.09.52-.17.95-.17,1.29,0,1.04.52,1.29,1.98,1.29h29.41l-2.07,9.92h-35.37Z"/>
<path class="cls-2" d="M665.23,419.17l2.16-10.35h14.49c1.72,0,2.33-.52,2.76-2.42l3.8-17.68c.09-.43.09-.78.09-1.12,0-1.04-.43-1.38-1.81-1.38h-18.8l-10.96,51.24h-12.08l13.2-61.93h36.92c5,0,6.9,1.73,6.9,5.26,0,.95-.09,2.07-.34,3.28l-5.61,26.57c-1.29,5.95-4.66,8.54-10.18,8.54h-20.53Z"/>
</g>
<g class="cls-1">
<path class="cls-2" d="M710.59,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.79-8.54,10.01-8.54h29.67c5,0,6.9,1.64,6.9,5.18,0,.95-.17,2.07-.43,3.36l-5.61,26.57c-1.29,5.87-3.8,8.54-10.09,8.54h-29.67ZM742.94,388.38c.09-.43.17-.78.17-1.04,0-1.04-.69-1.38-2.33-1.38h-17.08c-1.81,0-2.42.52-2.76,2.42l-3.71,17.77c-.09.43-.17.78-.17,1.12,0,.86.52,1.21,1.9,1.21h17.08c2.07,0,2.85-.6,3.19-2.33l3.71-17.77Z"/>
<path class="cls-2" d="M798.32,419.17l-2.67-30.28-16.56,30.28h-15.01l-3.02-43.65h13.28l1.12,31.23,16.39-31.23h14.23l2.33,31.14,15.18-31.14h12.77l-22.77,43.65h-15.27Z"/>
</g>
<g class="cls-1">
<path class="cls-2" d="M839.98,419.17c-4.92,0-6.9-1.64-6.9-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.8-8.54,10.09-8.54h29.5c4.4,0,6.12,1.64,6.12,5,0,.95-.09,1.98-.34,3.19l-3.62,17.17h-29.07l1.47-7.25h17.6l1.29-5.87c.09-.43.09-.78.09-1.12,0-.86-.43-1.21-1.81-1.21h-17.34c-1.98,0-2.42.52-2.85,2.42l-4.05,18.8c-.09.52-.17.95-.17,1.29,0,1.04.52,1.29,1.98,1.29h29.41l-2.07,9.92h-35.37Z"/>
<path class="cls-2" d="M885.61,419.17l9.23-43.65h11.73l-1.04,4.74c2.16-3.28,4.74-4.74,8.54-4.74h12.68l-2.24,10.44h-17.42c-1.72,0-2.5.52-2.93,2.42l-6.47,30.79h-12.08Z"/>
<path class="cls-2" d="M948.4,419.17l2.07-10.01h29.93c1.81,0,2.24-.43,2.59-2.07l.95-4.31c.09-.26.09-.52.09-.69,0-.78-.43-1.12-1.73-1.12h-23.38c-3.88,0-5.61-1.64-5.61-4.31,0-.6.09-1.21.26-1.9l2.42-11.64c1.04-5.18,3.62-7.59,9.66-7.59h36.06l-2.07,9.75h-29.76c-1.81,0-2.5.6-2.85,2.33l-.78,3.62c-.09.26-.09.52-.09.78,0,.95.52,1.38,1.81,1.38h23.63c3.97,0,5.69,1.72,5.69,4.4,0,.52-.09,1.12-.17,1.72l-2.59,12.08c-1.12,5.18-3.71,7.59-9.75,7.59h-36.4Z"/>
<path class="cls-2" d="M1009.91,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.79-8.54,10.01-8.54h29.67c5,0,6.9,1.64,6.9,5.18,0,.95-.17,2.07-.43,3.36l-5.61,26.57c-1.29,5.87-3.8,8.54-10.09,8.54h-29.67ZM1042.25,388.38c.09-.43.17-.78.17-1.04,0-1.04-.69-1.38-2.33-1.38h-17.08c-1.81,0-2.42.52-2.76,2.42l-3.71,17.77c-.09.43-.17.78-.17,1.12,0,.86.52,1.21,1.9,1.21h17.08c2.07,0,2.85-.6,3.19-2.33l3.71-17.77Z"/>
<path class="cls-2" d="M1056.74,419.17l13.11-61.93h12.08l-13.11,61.93h-12.08Z"/>
<path class="cls-2" d="M1112.55,419.17l.95-4.66c-2.16,3.28-4.74,4.66-8.45,4.66h-18.98c-4.57,0-6.81-1.47-6.81-5.26,0-.95.17-2.07.43-3.28l7.42-35.11h12.08l-6.56,30.79c-.09.43-.17.86-.17,1.12,0,1.04.6,1.38,2.07,1.38h17.34c1.81,0,2.5-.6,2.93-2.5l6.56-30.79h12.08l-9.23,43.65h-11.65Z"/>
<path class="cls-2" d="M1141.28,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l10.01-47.27h12.08l-2.59,12.16h10.52l-1.98,9.49h-10.52l-4.74,22.34c-.09.43-.17.86-.17,1.12,0,.95.6,1.21,1.9,1.21h7.94l-1.98,9.49h-14.06Z"/>
<path class="cls-2" d="M1163.01,419.17l9.23-43.65h12.08l-9.23,43.65h-12.08ZM1173.37,370.35l2.76-13.11h12.16l-2.76,13.11h-12.16Z"/>
<path class="cls-2" d="M1192.43,419.17c-4.83,0-6.81-1.64-6.81-5.18,0-.95.17-2.07.43-3.36l5.61-26.57c1.21-5.87,3.8-8.54,10.01-8.54h29.67c5,0,6.9,1.64,6.9,5.18,0,.95-.17,2.07-.43,3.36l-5.61,26.57c-1.29,5.87-3.8,8.54-10.09,8.54h-29.67ZM1224.77,388.38c.09-.43.17-.78.17-1.04,0-1.04-.69-1.38-2.33-1.38h-17.08c-1.81,0-2.42.52-2.76,2.42l-3.71,17.77c-.09.43-.17.78-.17,1.12,0,.86.52,1.21,1.9,1.21h17.08c2.07,0,2.85-.6,3.19-2.33l3.71-17.77Z"/>
<path class="cls-2" d="M1273.94,419.17l6.47-30.79c.09-.43.17-.78.17-1.04,0-1.04-.69-1.38-2.16-1.38h-18.03c-1.72,0-2.42.52-2.85,2.42l-6.47,30.79h-12.08l9.23-43.65h11.64l-1.04,4.74c2.16-3.28,4.83-4.74,8.54-4.74h19.58c4.66,0,6.73,1.47,6.73,5.26,0,.95-.09,2.07-.35,3.28l-7.42,35.11h-11.99Z"/>
</g>
</g>
<g class="cls-1">
<g class="cls-1">
<path class="cls-2" d="M671.14,314.09l8.76-42.1c.19-1.14.38-2.09.38-2.86,0-2.29-1.52-3.05-5.33-3.05h-41.72l-10.1,48h-28.95l20-94.29h28.95l-5.33,24.95h39.62c5.52,0,6.86-1.33,8-6.67l4.57-20.95c.19-1.14.38-2.29.38-3.05,0-3.05-1.71-3.81-5.91-3.81h-68.39l5.33-25.14h81.91c13.14,0,18.67,4.76,18.67,14.29,0,2.29-.38,4.76-.95,7.62l-5.91,28c-2.86,13.14-10.86,17.91-19.81,18.86,8,.57,14.48,3.24,14.48,11.24,0,1.33,0,2.67-.38,4.19l-9.33,44.77h-28.95Z"/>
<path class="cls-2" d="M736.66,314.09c-10.86,0-15.24-3.62-15.24-11.43,0-2.09.38-4.57.95-7.43l12.38-58.67c2.67-12.95,8.38-18.86,22.29-18.86h65.15c9.71,0,13.52,3.62,13.52,11.05,0,2.1-.19,4.38-.76,7.05l-8,37.91h-64.2l3.24-16h38.86l2.86-12.95c.19-.95.19-1.71.19-2.48,0-1.9-.95-2.67-4-2.67h-38.29c-4.38,0-5.33,1.14-6.29,5.33l-8.95,41.53c-.19,1.14-.38,2.1-.38,2.86,0,2.29,1.14,2.86,4.38,2.86h64.96l-4.57,21.91h-78.1Z"/>
<path class="cls-2" d="M914.58,314.09l14.29-68c.19-.95.38-1.71.38-2.29,0-2.29-1.52-3.05-4.76-3.05h-39.81c-3.81,0-5.33,1.14-6.29,5.33l-14.29,68h-26.67l20.38-96.39h25.72l-2.29,10.48c4.76-7.24,10.67-10.48,18.86-10.48h43.24c10.29,0,14.86,3.24,14.86,11.62,0,2.1-.19,4.57-.76,7.24l-16.38,77.53h-26.48Z"/>
<path class="cls-2" d="M979.15,314.09c-10.67,0-15.05-3.62-15.05-11.43,0-2.09.38-4.57.95-7.43l22.1-104.39h26.67l-5.71,26.86h23.24l-4.38,20.95h-23.24l-10.48,49.34c-.19.95-.38,1.91-.38,2.48,0,2.1,1.33,2.67,4.19,2.67h17.53l-4.38,20.95h-31.05Z"/>
<path class="cls-2" d="M1042.78,314.09c-9.72,0-13.72-3.62-13.72-11.05,0-1.9.38-4.38.95-7.05l4.76-22.86c3.05-14.48,7.62-18.48,19.81-18.48h48.96l-3.43,16.38h-35.05c-3.62,0-4.76.95-5.52,4.95l-2.1,10.1c-.19,1.14-.38,1.9-.38,2.67,0,1.9.95,2.48,3.62,2.48h44.57l10.1-47.24c.19-.76.19-1.52.19-2.1,0-2.09-1.14-3.24-4.57-3.24h-65.34l4.38-20.95h78.86c11.05,0,15.24,3.62,15.24,11.43,0,2.1-.38,4.57-.95,7.43l-16.38,77.53h-84.01Z"/>
<path class="cls-2" d="M1146.78,314.09l28.96-136.77h26.67l-28.96,136.77h-26.67Z"/>
<path class="cls-2" d="M1193.64,314.09l4.57-22.1h66.1c4,0,4.95-.95,5.71-4.57l2.1-9.52c.19-.57.19-1.14.19-1.52,0-1.71-.95-2.48-3.81-2.48h-51.62c-8.57,0-12.38-3.62-12.38-9.52,0-1.33.19-2.67.57-4.19l5.33-25.72c2.29-11.43,8-16.76,21.33-16.76h79.62l-4.57,21.53h-65.72c-4,0-5.52,1.33-6.29,5.14l-1.71,8c-.19.57-.19,1.14-.19,1.71,0,2.1,1.14,3.05,4,3.05h52.2c8.76,0,12.57,3.81,12.57,9.71,0,1.14-.19,2.48-.38,3.81l-5.71,26.67c-2.48,11.43-8.19,16.76-21.53,16.76h-80.39Z"/>
</g>
</g>
<path class="cls-2" d="M122.39,135.5c-24.96,0-45.19,20.23-45.19,45.19v164.89h454.92c24.96,0,45.19-20.23,45.19-45.19v-164.89H122.39ZM235.8,191.04h-99.03v99.03h66.02v-33.01h-33.01v-33.01h66.02v66.02c0,9.14-3.22,16.92-9.67,23.34-6.45,6.45-14.23,9.67-23.34,9.67h-99.03v-132.04c0-9.14,3.22-16.91,9.67-23.34,6.45-6.48,14.23-9.71,23.34-9.71h99.03v33.05h0ZM385.02,191.04h-99.03v33.01h99.03v33.01h-99.03v33.01h99.03v33.01h-132.04v-132.04c0-9.14,3.22-16.91,9.67-23.34,6.45-6.48,14.23-9.71,23.34-9.71h99.03v33.05h0ZM554.95,323.11h-52.41l-65.5-131.01v131.01h-34.93v-165.93h34.93v.26c7.82.88,14.6,4.21,20.34,9.98,4.75,4.77,6.95,9.72,7.61,11.16,4.34,9.46,25.62,51.49,55.03,109.62v-131.21h34.93v166.13h0Z"/>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1397.06 554.67">
<defs>
<style>
.cls-1 {
font-size: 86.26px;
}
.cls-1, .cls-2 {
font-family: HemiHeadRg-BoldItalic, 'Hemi Head';
font-style: italic;
font-weight: 700;
}
.cls-1, .cls-2, .cls-3 {
fill: #1b82c5;
}
.cls-4 {
letter-spacing: -.01em;
}
.cls-2 {
font-size: 190.49px;
}
</style>
</defs>
<text class="cls-1" transform="translate(95.49 419.17)"><tspan x="0" y="0">The ultimate p</tspan><tspan class="cls-4" x="602.68" y="0">ow</tspan><tspan x="732.41" y="0">er solution</tspan></text>
<g>
<text class="cls-2" transform="translate(583.7 314.09)"><tspan x="0" y="0">Rentals</tspan></text>
<path class="cls-3" d="M122.39,135.5c-24.96,0-45.19,20.23-45.19,45.19v164.89h454.92c24.96,0,45.19-20.23,45.19-45.19v-164.89H122.39ZM235.8,191.04h-99.03v99.03h66.02v-33.01h-33.01v-33.01h66.02v66.02c0,9.14-3.22,16.92-9.67,23.34-6.45,6.45-14.23,9.67-23.34,9.67h-99.03v-132.04c0-9.14,3.22-16.91,9.67-23.34,6.45-6.48,14.23-9.71,23.34-9.71h99.03v33.05ZM385.02,191.04h-99.03v33.01h99.03v33.01h-99.03v33.01h99.03v33.01h-132.04v-132.04c0-9.14,3.22-16.91,9.67-23.34,6.45-6.48,14.23-9.71,23.34-9.71h99.03v33.05ZM554.95,323.11h-52.41l-65.5-131.01v131.01h-34.93v-165.93h34.93v.26c7.82.88,14.6,4.21,20.34,9.98,4.75,4.77,6.95,9.72,7.61,11.16,4.34,9.46,25.62,51.49,55.03,109.62v-131.21h34.93v166.13Z"/>
</g>
</svg>
\ No newline at end of file
...@@ -103,7 +103,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> { ...@@ -103,7 +103,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> {
), ),
const SizedBox(height: 12), const SizedBox(height: 12),
// Latest Bill Card // Latest Bill Card
if (latest != null) if (latest != null)
InkResponse( InkResponse(
onTap: () { onTap: () {
...@@ -112,7 +112,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> { ...@@ -112,7 +112,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> {
MaterialPageRoute(builder: (context) => BillDetailScreen( MaterialPageRoute(builder: (context) => BillDetailScreen(
sessionId: widget.sessionId, sessionId: widget.sessionId,
accId: widget.accId, accId: widget.accId,
billId: latest.id.toString(), billId: latest.orderId.toString(),
)) ))
); );
}, },
...@@ -175,26 +175,26 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> { ...@@ -175,26 +175,26 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> {
], ],
), ),
// Pending // Pending
if(latest.billPaid == "No") // if(latest.billPaid == "No")
InkResponse( // InkResponse(
onTap: () => showPaymentBottomSheet(context, payBill: "1299", payTotal: "4218"), // onTap: () => showPaymentBottomSheet(context, payBill: "1299", payTotal: "4218"),
child: Container( // child: Container(
padding: const EdgeInsets.symmetric( // padding: const EdgeInsets.symmetric(
horizontal: 12, vertical: 8), // horizontal: 12, vertical: 8),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: const Color(0xE0008CDE), // color: const Color(0xE0008CDE),
borderRadius: BorderRadius.circular(14), // borderRadius: BorderRadius.circular(14),
), // ),
child: const Text( // child: const Text(
"Pay Now", // "Pay Now",
style: TextStyle( // style: TextStyle(
color: Colors.white, // color: Colors.white,
fontSize: 14, // fontSize: 14,
fontWeight: FontWeight.w500, // fontWeight: FontWeight.w500,
), // ),
), // ),
), // ),
), // ),
], ],
), ),
), ),
...@@ -295,7 +295,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> { ...@@ -295,7 +295,7 @@ class _BillDetailListScreenState extends State<BillDetailListScreen> {
MaterialPageRoute(builder: (context) => BillDetailScreen( MaterialPageRoute(builder: (context) => BillDetailScreen(
sessionId: widget.sessionId, sessionId: widget.sessionId,
accId: widget.accId, accId: widget.accId,
billId: bill.id.toString(), billId: bill.orderId.toString(),
)), )),
); );
}, },
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Notifier/BillProvider.dart'; import '../../Notifier/BillProvider.dart';
import '../../Utility/AppColors.dart'; import '../../Utility/AppColors.dart';
...@@ -38,8 +37,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -38,8 +37,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
builder: (context, provider, _) { builder: (context, provider, _) {
if (provider.isDetailsLoading) { if (provider.isDetailsLoading) {
return const Scaffold( return const Scaffold(
body: Center(child: CircularProgressIndicator() body: Center(child: CircularProgressIndicator()),
),
); );
} }
final details = provider.billDetails; final details = provider.billDetails;
...@@ -54,6 +52,8 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -54,6 +52,8 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
); );
} }
final bool isPaid = details.billPaid == "Yes";
return SafeArea( return SafeArea(
top: false, top: false,
child: Scaffold( child: Scaffold(
...@@ -89,26 +89,26 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -89,26 +89,26 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
// Green Tick Circle // Status Icon
Container( Container(
height: 70, height: 70,
width: 70, width: 70,
decoration: const BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFDFF8E1), color: isPaid ? const Color(0xFFDFF8E1) : const Color(0xFFFFEBEB),
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: const Icon( child: Icon(
Icons.check_circle, isPaid ? Icons.check_circle : Icons.access_time_filled,
color: Colors.green, color: isPaid ? Colors.green : Colors.redAccent,
size: 50, size: isPaid ? 50 : 40,
), ),
), ),
const SizedBox(height: 16), const SizedBox(height: 16),
// Bill Paid Title // Status Title
const Text( Text(
"Bill Paid", isPaid ? "Bill Paid" : "Bill Pending",
style: TextStyle( style: const TextStyle(
fontSize: 24, fontSize: 24,
fontFamily: "Poppins", fontFamily: "Poppins",
fontStyle: FontStyle.normal, fontStyle: FontStyle.normal,
...@@ -118,7 +118,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -118,7 +118,7 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
const SizedBox(height: 6), const SizedBox(height: 6),
// Total Amount // Total Amount
Text( Text(
"₹${details.totalPrice ?? "0"}", "₹${details.totalPrice ?? "0"}",
style: const TextStyle( style: const TextStyle(
...@@ -134,8 +134,8 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -134,8 +134,8 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
const SizedBox(height: 10), const SizedBox(height: 10),
// Payment Details // Payment Details
Align( const Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: Text( child: Text(
"Payment Details", "Payment Details",
...@@ -148,21 +148,11 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -148,21 +148,11 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
_buildRow("Date", "${details.paidDate ?? ''}", _buildRow("Date", "${details.paidDate ?? ''}", highlight: true),
highlight: true),
// _buildRow(
// "Date",
// details.billDate != null
// ? DateFormat("d MMM, yyyy").format(
// DateTime.parse(details.billDate!),
// )
// : "-",
// ),
const SizedBox(height: 14), const SizedBox(height: 14),
// Product Details // Product Details
Align( const Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: Text( child: Text(
"Products", "Products",
...@@ -170,14 +160,13 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -170,14 +160,13 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
fontSize: 14, fontSize: 14,
fontFamily: "Plus Jakarta Sans", fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.grey.shade800, color: Colors.black87,
), ),
), ),
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
_buildRow(details.product ?? "N/A", "₹${details.basicPrice ?? "0"}"), _buildRow(details.product ?? "N/A", "₹${details.basicPrice ?? "0"}"),
const SizedBox(height: 8), const SizedBox(height: 8),
_buildRow("Sub Total", "₹${details.basicPrice ?? "0"}"), _buildRow("Sub Total", "₹${details.basicPrice ?? "0"}"),
...@@ -195,65 +184,289 @@ class _BillDetailScreenState extends State<BillDetailScreen> { ...@@ -195,65 +184,289 @@ class _BillDetailScreenState extends State<BillDetailScreen> {
), ),
const SizedBox(height: 40), const SizedBox(height: 40),
],
),
),
bottomNavigationBar: _buildBottomButtons(provider, isPaid),
),
);
},
);
}
// Download Button /// Conditional Bottom Buttons based on payment status
Widget _buildBottomButtons(BillProvider provider, bool isPaid) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
decoration: BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
blurRadius: 10,
offset: const Offset(0, -2),
),
],
),
child: Row(
children: [
// Pay Now Button (only if not paid)
if (!isPaid) ...[
Expanded(
child: ElevatedButton(
onPressed: () {
_showPayNowDialog();
},
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.buttonColor,
foregroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 16),
elevation: 0,
),
child: const Text(
"Pay Now",
style: TextStyle(
fontSize: 16,
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w600,
),
),
),
),
const SizedBox(width: 12),
],
// Download Receipt Button
Expanded(
child: ElevatedButton.icon(
onPressed: provider.isDownloading
? null
: () {
provider.downloadBill(
context,
widget.sessionId,
widget.billId,
widget.accId,
);
},
icon: provider.isDownloading
? const SizedBox(
width: 18,
height: 18,
child: CircularProgressIndicator(
color: Colors.white,
strokeWidth: 2,
),
)
: const Icon(Icons.download, size: 20, color: Colors.white,),
label: Text(
provider.isDownloading
? "Downloading..."
: "Download Receipt",
style: const TextStyle(
fontSize: 16,
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.amountText,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 16),
),
),
),
],
),
);
}
], /// Pay Now Dialog
void _showPayNowDialog() {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
title: Column(
children: [
Container(
width: 60,
height: 60,
decoration: BoxDecoration(
color: AppColors.buttonColor.withOpacity(0.1),
shape: BoxShape.circle,
),
child: Icon(
Icons.payment_rounded,
color: AppColors.buttonColor,
size: 30,
),
),
const SizedBox(height: 16),
const Text(
"Pay Now",
style: TextStyle(
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w700,
fontSize: 20,
color: Colors.black87,
),
), ),
],
),
content: const Text(
"Proceed with payment for this bill?",
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: "Plus Jakarta Sans",
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.grey,
), ),
bottomNavigationBar: Padding( ),
padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 14), actions: [
child: SizedBox( Row(
width: double.infinity, children: [
child: ElevatedButton.icon( // Cancel Button
onPressed: provider.isDownloading Expanded(
? null child: OutlinedButton(
: () { onPressed: () => Navigator.pop(context),
provider.downloadBill( style: OutlinedButton.styleFrom(
context, backgroundColor: Colors.transparent,
widget.sessionId, foregroundColor: Colors.grey[600],
widget.billId, side: BorderSide(
widget.accId, color: Colors.grey[300]!,
); width: 1.5,
}, ),
icon: provider.isDownloading shape: RoundedRectangleBorder(
? const SizedBox( borderRadius: BorderRadius.circular(12),
width: 18, ),
height: 18, padding: const EdgeInsets.symmetric(vertical: 14),
child: CircularProgressIndicator(
color: Colors.white,
strokeWidth: 2,
), ),
) child: const Text(
: const Icon(Icons.download, color: Colors.white), "Cancel",
label: Text( style: TextStyle(
provider.isDownloading fontFamily: "Plus Jakarta Sans",
? "Downloading..." fontWeight: FontWeight.w600,
: "Download Receipt", fontSize: 14,
style: const TextStyle( ),
fontSize: 16,
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w600,
color: Colors.white,
), ),
), ),
style: ElevatedButton.styleFrom( ),
backgroundColor: AppColors.amountText, const SizedBox(width: 12),
shape: RoundedRectangleBorder( // Proceed Button
borderRadius: BorderRadius.circular(50), Expanded(
child: ElevatedButton(
onPressed: () {
Navigator.pop(context);
_processPayment();
},
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.buttonColor,
foregroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 14),
),
child: const Text(
"Proceed",
style: TextStyle(
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w600,
fontSize: 14,
color: Colors.white,
),
), ),
padding: const EdgeInsets.symmetric(vertical: 14),
), ),
), ),
), ],
), ),
), ],
); );
}, },
); );
} }
/// Process Payment Method
void _processPayment() {
// Show loading
showDialog(
context: context,
barrierDismissible: false,
builder: (context) => Center(
child: Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
CircularProgressIndicator(
color: AppColors.buttonColor,
strokeWidth: 3,
),
const SizedBox(height: 16),
const Text(
"Processing Payment...",
style: TextStyle(
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w500,
),
),
],
),
),
),
);
// Simulate payment processing
Future.delayed(const Duration(seconds: 2), () {
Navigator.pop(context); // Close loading
// Show success message
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
backgroundColor: Colors.green,
content: Row(
children: [
const Icon(Icons.check_circle, color: Colors.white, size: 20),
const SizedBox(width: 8),
const Text(
"Payment Successful!",
style: TextStyle(
fontFamily: "Plus Jakarta Sans",
fontWeight: FontWeight.w500,
),
),
],
),
duration: const Duration(seconds: 3),
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
),
);
// Refresh bill details
final provider = Provider.of<BillProvider>(context, listen: false);
provider.fetchBillDetails(widget.sessionId, widget.accId, widget.billId);
});
}
/// Helper Row Widget /// Helper Row Widget
Widget _buildRow(String title, String value, Widget _buildRow(String title, String value,
{bool isBold = false, bool highlight = false}) { {bool isBold = false, bool highlight = false}) {
......
...@@ -301,18 +301,18 @@ class _DashboardScreenState extends State<DashboardScreen> { ...@@ -301,18 +301,18 @@ class _DashboardScreenState extends State<DashboardScreen> {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
), ),
InkResponse( // InkResponse(
onTap: () => showPaymentBottomSheet(context), // onTap: () => showPaymentBottomSheet(context),
child: Text( // child: Text(
"Pay Now", // "Pay Now",
style: TextStyle( // style: TextStyle(
fontFamily: "Poppins", // fontFamily: "Poppins",
color: Color(0xFF008CDE), // color: Color(0xFF008CDE),
fontSize: 14, // fontSize: 14,
fontWeight: FontWeight.w500, // fontWeight: FontWeight.w500,
), // ),
), // ),
), // ),
], ],
), ),
const SizedBox(height: 12), const SizedBox(height: 12),
......
...@@ -146,7 +146,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -146,7 +146,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
Future<void> _initConnectivity() async { Future<void> _initConnectivity() async {
try { try {
// Initial connectivity check // Initial connectivity check
await _checkConnectivity(); _checkConnectivity();
// Use periodic checks instead of stream // Use periodic checks instead of stream
_connectivityTimer = Timer.periodic(const Duration(seconds: 3), (timer) { _connectivityTimer = Timer.periodic(const Duration(seconds: 3), (timer) {
...@@ -165,12 +165,16 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -165,12 +165,16 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
final results = await connectivity.checkConnectivity(); final results = await connectivity.checkConnectivity();
final hasInternet = results.any((element) => element == ConnectivityResult.wifi || element == ConnectivityResult.mobile); final hasInternet = results.any((element) => element == ConnectivityResult.wifi || element == ConnectivityResult.mobile);
print("netwrok results: $results");
print("Device has internet $hasInternet");
// Method 2: Fallback with socket test // Method 2: Fallback with socket test
if (hasInternet) { if (hasInternet) {
try { try {
final result = await InternetAddress.lookup('google.com'); final result = await InternetAddress.lookup('google.com');
print("lookup result:$result");
final socketCheck = result.isNotEmpty && result[0].rawAddress.isNotEmpty; final socketCheck = result.isNotEmpty && result[0].rawAddress.isNotEmpty;
print("socketCheck $socketCheck");
_updateConnectionStatus(socketCheck); _updateConnectionStatus(socketCheck);
} catch (e) { } catch (e) {
_updateConnectionStatus(false); _updateConnectionStatus(false);
...@@ -236,9 +240,9 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -236,9 +240,9 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
begin: Alignment.topCenter, begin: Alignment.topCenter,
end: Alignment.bottomCenter, end: Alignment.bottomCenter,
colors: [ colors: [
Color(0xFFF5F8FC), Color(0xFF1487C9),
Color(0xFFE3F2FD), Color(0xFF1487C9),
Color(0xFFB3E5FC), Color(0xFF1487C9),
], ],
stops: [0.0, 0.6, 1.0], stops: [0.0, 0.6, 1.0],
), ),
...@@ -304,25 +308,27 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -304,25 +308,27 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
child: Opacity( child: Opacity(
opacity: _fadeAnimation.value, opacity: _fadeAnimation.value,
child: Container( child: Container(
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(15),
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, borderRadius: BorderRadius.circular(20),
color: Colors.white, color: const Color(0xFF1487C9),
shape: BoxShape.rectangle,
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: const Color(0xFF26BAE7).withOpacity(0.3), color: Color(0xFF1487C9),
blurRadius: 20, blurRadius: 10,
spreadRadius: 2,
offset: const Offset(0, 5), offset: const Offset(0, 5),
), ),
], ],
), ),
child: RotationTransition( child: RotationTransition(
turns: _rotationAnimation, turns: _rotationAnimation,
child: SvgPicture.network( child: SvgPicture.asset(
"https://genrentals.in/assets/img/logo-black.svg", "assets/svg/new_svg_icon.svg",
height: 80, color: Colors.white,
), height: 125,
width: 125,
),
), ),
), ),
), ),
...@@ -360,27 +366,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -360,27 +366,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
const SizedBox(height: 10), const SizedBox(height: 10),
// Tagline with animation
AnimatedBuilder(
animation: _controller,
builder: (context, child) {
return Opacity(
opacity: _fadeAnimation.value,
child: Transform.translate(
offset: _slideAnimation.value * 30,
child: const Text(
"Premium Equipment Rentals",
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Color(0xFF666666),
letterSpacing: 0.5,
),
),
),
);
},
),
const SizedBox(height: 50), const SizedBox(height: 50),
...@@ -407,7 +393,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -407,7 +393,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
gradient: const LinearGradient( gradient: const LinearGradient(
colors: [ colors: [
Color(0xFF26BAE7), Color(0xFF26BAE7),
Color(0xFF4FC3F7), Color(0xFFc4ebfc),
], ],
), ),
borderRadius: BorderRadius.circular(2), borderRadius: BorderRadius.circular(2),
...@@ -419,6 +405,41 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -419,6 +405,41 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
); );
}, },
), ),
const SizedBox(height: 80),
// Tagline with animation
AnimatedBuilder(
animation: _controller,
builder: (context, child) {
return Opacity(
opacity: _fadeAnimation.value,
child: Transform.translate(
offset: _slideAnimation.value * 30,
child: Column(
children: [
Text(
"Powered by",
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w500,
color: Color(0xAAFFFFFF),
letterSpacing: 0.5,
),
),
Text(
"Avantect Web Grid",
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Color(0xDDFFFFFF),
letterSpacing: 0.5,
),
),
],
),
),
);
},
),
], ],
), ),
), ),
......
...@@ -346,18 +346,18 @@ class _TransactionsScreenState extends State<TransactionsScreen> { ...@@ -346,18 +346,18 @@ class _TransactionsScreenState extends State<TransactionsScreen> {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
), ),
InkResponse( // InkResponse(
onTap: () => showPaymentBottomSheet(context), // onTap: () => showPaymentBottomSheet(context),
child: Text( // child: Text(
"Pay Now", // "Pay Now",
style: TextStyle( // style: TextStyle(
fontFamily: "Poppins", // fontFamily: "Poppins",
color: Color(0xFF008CDE), // color: Color(0xFF008CDE),
fontSize: 14, // fontSize: 14,
fontWeight: FontWeight.w500, // fontWeight: FontWeight.w500,
), // ),
), // ),
), // ),
], ],
), ),
const SizedBox(height: 12), const SizedBox(height: 12),
......
...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev ...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+1 version: 1.0.1+1
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
......
{ {
"name": "gen_rentals", "name": "gen_rentals",
"short_name": "gen_rentals", "short_name": "gen_rentals",
"start_url": ".", "start_url": "/",
"display": "standalone", "display": "standalone",
"background_color": "#0175C2", "background_color": "#0175C2",
"theme_color": "#0175C2", "theme_color": "#0175C2",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment