├── ios ├── Flutter │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── AppFrameworkInfo.plist ├── Runner │ ├── Runner-Bridging-Header.h │ ├── Assets.xcassets │ │ ├── LaunchImage.imageset │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ ├── README.md │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-50x50@1x.png │ │ │ ├── Icon-App-50x50@2x.png │ │ │ ├── Icon-App-57x57@1x.png │ │ │ ├── Icon-App-57x57@2x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-72x72@1x.png │ │ │ ├── Icon-App-72x72@2x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── Contents.json │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard │ └── Info.plist ├── Runner.xcworkspace │ └── contents.xcworkspacedata ├── Runner.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme └── .gitignore ├── .gitattributes ├── assets ├── icon.png ├── logo.png ├── github.png ├── flags │ ├── ad.png │ ├── ae.png │ ├── af.png │ ├── ag.png │ ├── ai.png │ ├── al.png │ ├── am.png │ ├── an.png │ ├── ao.png │ ├── aq.png │ ├── ar.png │ ├── as.png │ ├── at.png │ ├── au.png │ ├── aw.png │ ├── ax.png │ ├── az.png │ ├── ba.png │ ├── bb.png │ ├── bd.png │ ├── be.png │ ├── bf.png │ ├── bg.png │ ├── bh.png │ ├── bi.png │ ├── bj.png │ ├── bl.png │ ├── bm.png │ ├── bn.png │ ├── bo.png │ ├── bq.png │ ├── br.png │ ├── bs.png │ ├── bt.png │ ├── bv.png │ ├── bw.png │ ├── by.png │ ├── bz.png │ ├── ca.png │ ├── cc.png │ ├── cd.png │ ├── cf.png │ ├── cg.png │ ├── ch.png │ ├── ci.png │ ├── ck.png │ ├── cl.png │ ├── cm.png │ ├── cn.png │ ├── co.png │ ├── cr.png │ ├── cu.png │ ├── cv.png │ ├── cw.png │ ├── cx.png │ ├── cy.png │ ├── cz.png │ ├── de.png │ ├── dj.png │ ├── dk.png │ ├── dm.png │ ├── do.png │ ├── dz.png │ ├── ec.png │ ├── ee.png │ ├── eg.png │ ├── eh.png │ ├── er.png │ ├── es.png │ ├── et.png │ ├── eu.png │ ├── fi.png │ ├── fj.png │ ├── fk.png │ ├── fm.png │ ├── fo.png │ ├── fr.png │ ├── ga.png │ ├── gb.png │ ├── gd.png │ ├── ge.png │ ├── gf.png │ ├── gg.png │ ├── gh.png │ ├── gi.png │ ├── gl.png │ ├── gm.png │ ├── gn.png │ ├── gp.png │ ├── gq.png │ ├── gr.png │ ├── gs.png │ ├── gt.png │ ├── gu.png │ ├── gw.png │ ├── gy.png │ ├── hk.png │ ├── hm.png │ ├── hn.png │ ├── hr.png │ ├── ht.png │ ├── hu.png │ ├── id.png │ ├── ie.png │ ├── il.png │ ├── im.png │ ├── in.png │ ├── io.png │ ├── iq.png │ ├── ir.png │ ├── is.png │ ├── it.png │ ├── je.png │ ├── jm.png │ ├── jo.png │ ├── jp.png │ ├── ke.png │ ├── kg.png │ ├── kh.png │ ├── ki.png │ ├── km.png │ ├── kn.png │ ├── kp.png │ ├── kr.png │ ├── kw.png │ ├── ky.png │ ├── kz.png │ ├── la.png │ ├── lb.png │ ├── lc.png │ ├── li.png │ ├── lk.png │ ├── lr.png │ ├── ls.png │ ├── lt.png │ ├── lu.png │ ├── lv.png │ ├── ly.png │ ├── ma.png │ ├── mc.png │ ├── md.png │ ├── me.png │ ├── mf.png │ ├── mg.png │ ├── mh.png │ ├── mk.png │ ├── ml.png │ ├── mm.png │ ├── mn.png │ ├── mo.png │ ├── mp.png │ ├── mq.png │ ├── mr.png │ ├── ms.png │ ├── mt.png │ ├── mu.png │ ├── mv.png │ ├── mw.png │ ├── mx.png │ ├── my.png │ ├── mz.png │ ├── na.png │ ├── nc.png │ ├── ne.png │ ├── nf.png │ ├── ng.png │ ├── ni.png │ ├── nl.png │ ├── no.png │ ├── np.png │ ├── nr.png │ ├── nu.png │ ├── nz.png │ ├── om.png │ ├── pa.png │ ├── pe.png │ ├── pf.png │ ├── pg.png │ ├── ph.png │ ├── pk.png │ ├── pl.png │ ├── pm.png │ ├── pn.png │ ├── pr.png │ ├── ps.png │ ├── pt.png │ ├── pw.png │ ├── py.png │ ├── qa.png │ ├── re.png │ ├── ro.png │ ├── rs.png │ ├── ru.png │ ├── rw.png │ ├── sa.png │ ├── sb.png │ ├── sc.png │ ├── sd.png │ ├── se.png │ ├── sg.png │ ├── sh.png │ ├── si.png │ ├── sj.png │ ├── sk.png │ ├── sl.png │ ├── sm.png │ ├── sn.png │ ├── so.png │ ├── sr.png │ ├── ss.png │ ├── st.png │ ├── sv.png │ ├── sx.png │ ├── sy.png │ ├── sz.png │ ├── tc.png │ ├── td.png │ ├── tf.png │ ├── tg.png │ ├── th.png │ ├── tj.png │ ├── tk.png │ ├── tl.png │ ├── tm.png │ ├── tn.png │ ├── to.png │ ├── tr.png │ ├── tt.png │ ├── tv.png │ ├── tw.png │ ├── tz.png │ ├── ua.png │ ├── ug.png │ ├── um.png │ ├── us.png │ ├── uy.png │ ├── uz.png │ ├── va.png │ ├── vc.png │ ├── ve.png │ ├── vg.png │ ├── vi.png │ ├── vn.png │ ├── vu.png │ ├── wf.png │ ├── ws.png │ ├── xk.png │ ├── ye.png │ ├── yt.png │ ├── za.png │ ├── zm.png │ ├── zw.png │ ├── gb-eng.png │ ├── gb-nir.png │ ├── gb-sct.png │ └── gb-wls.png ├── usa_flag.png ├── corona_virus.png ├── symptoms │ ├── cough.png │ ├── headache.png │ ├── symptoms.png │ ├── high_fever.png │ └── sore_throat.png └── prevention │ ├── face_mask.png │ ├── cover_cough.png │ ├── wash_hands.png │ └── avoid_contact.png ├── readme ├── all.png ├── home.png ├── icon.png ├── credit.png ├── deaths.png ├── search.png ├── confirmed.png ├── prevention.png └── symptoms.png ├── android ├── gradle.properties ├── .gitignore ├── app │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values │ │ │ │ │ └── styles.xml │ │ │ │ └── drawable │ │ │ │ │ └── launch_background.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── corona_virus │ │ │ │ │ └── MainActivity.kt │ │ │ └── AndroidManifest.xml │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ └── profile │ │ │ └── AndroidManifest.xml │ └── build.gradle ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── settings.gradle └── build.gradle ├── lib ├── values │ ├── case_types.dart │ ├── page_content.dart │ └── country_flag_codes.dart ├── screens │ ├── summery.dart │ ├── loading_screen.dart │ ├── home_page.dart │ ├── root_page.dart │ ├── link_details_screen.dart │ ├── view_all_screen.dart │ ├── details_screen.dart │ └── credit_screen.dart ├── widgets │ ├── graph_loader.dart │ ├── custom_back_button.dart │ ├── rotating_virus.dart │ ├── top_country_bar.dart │ ├── navigation_bar.dart │ ├── page_indicator.dart │ ├── details_screen_top_bar.dart │ ├── detail_card.dart │ ├── details_screen_case_type_bar.dart │ ├── dial_select_button_bar.dart │ ├── details_screen_graph.dart │ ├── custom_bottom_navigation_bar.dart │ ├── topic_page_view.dart │ ├── small_graph.dart │ ├── circle_dial.dart │ └── country_list_item.dart ├── models │ ├── page_view_model.dart │ └── summary_each_country.dart ├── functions │ ├── gradient_clipper.dart │ ├── line_painter.dart │ ├── get_offsets.dart │ └── curve_painter.dart ├── providers │ ├── country_details_provider.dart │ └── home_provider.dart ├── main.dart └── section │ ├── top_country_list.dart │ └── home_data_chart.dart ├── .metadata ├── .gitignore ├── LICENSE ├── README.md ├── test └── widget_test.dart ├── pubspec.yaml └── pubspec.lock /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/icon.png -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/logo.png -------------------------------------------------------------------------------- /readme/all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/all.png -------------------------------------------------------------------------------- /readme/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/home.png -------------------------------------------------------------------------------- /readme/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/icon.png -------------------------------------------------------------------------------- /assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/github.png -------------------------------------------------------------------------------- /readme/credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/credit.png -------------------------------------------------------------------------------- /readme/deaths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/deaths.png -------------------------------------------------------------------------------- /readme/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/search.png -------------------------------------------------------------------------------- /assets/flags/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ad.png -------------------------------------------------------------------------------- /assets/flags/ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ae.png -------------------------------------------------------------------------------- /assets/flags/af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/af.png -------------------------------------------------------------------------------- /assets/flags/ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ag.png -------------------------------------------------------------------------------- /assets/flags/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ai.png -------------------------------------------------------------------------------- /assets/flags/al.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/al.png -------------------------------------------------------------------------------- /assets/flags/am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/am.png -------------------------------------------------------------------------------- /assets/flags/an.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/an.png -------------------------------------------------------------------------------- /assets/flags/ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ao.png -------------------------------------------------------------------------------- /assets/flags/aq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/aq.png -------------------------------------------------------------------------------- /assets/flags/ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ar.png -------------------------------------------------------------------------------- /assets/flags/as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/as.png -------------------------------------------------------------------------------- /assets/flags/at.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/at.png -------------------------------------------------------------------------------- /assets/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/au.png -------------------------------------------------------------------------------- /assets/flags/aw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/aw.png -------------------------------------------------------------------------------- /assets/flags/ax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ax.png -------------------------------------------------------------------------------- /assets/flags/az.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/az.png -------------------------------------------------------------------------------- /assets/flags/ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ba.png -------------------------------------------------------------------------------- /assets/flags/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bb.png -------------------------------------------------------------------------------- /assets/flags/bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bd.png -------------------------------------------------------------------------------- /assets/flags/be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/be.png -------------------------------------------------------------------------------- /assets/flags/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bf.png -------------------------------------------------------------------------------- /assets/flags/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bg.png -------------------------------------------------------------------------------- /assets/flags/bh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bh.png -------------------------------------------------------------------------------- /assets/flags/bi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bi.png -------------------------------------------------------------------------------- /assets/flags/bj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bj.png -------------------------------------------------------------------------------- /assets/flags/bl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bl.png -------------------------------------------------------------------------------- /assets/flags/bm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bm.png -------------------------------------------------------------------------------- /assets/flags/bn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bn.png -------------------------------------------------------------------------------- /assets/flags/bo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bo.png -------------------------------------------------------------------------------- /assets/flags/bq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bq.png -------------------------------------------------------------------------------- /assets/flags/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/br.png -------------------------------------------------------------------------------- /assets/flags/bs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bs.png -------------------------------------------------------------------------------- /assets/flags/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bt.png -------------------------------------------------------------------------------- /assets/flags/bv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bv.png -------------------------------------------------------------------------------- /assets/flags/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bw.png -------------------------------------------------------------------------------- /assets/flags/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/by.png -------------------------------------------------------------------------------- /assets/flags/bz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/bz.png -------------------------------------------------------------------------------- /assets/flags/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ca.png -------------------------------------------------------------------------------- /assets/flags/cc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cc.png -------------------------------------------------------------------------------- /assets/flags/cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cd.png -------------------------------------------------------------------------------- /assets/flags/cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cf.png -------------------------------------------------------------------------------- /assets/flags/cg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cg.png -------------------------------------------------------------------------------- /assets/flags/ch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ch.png -------------------------------------------------------------------------------- /assets/flags/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ci.png -------------------------------------------------------------------------------- /assets/flags/ck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ck.png -------------------------------------------------------------------------------- /assets/flags/cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cl.png -------------------------------------------------------------------------------- /assets/flags/cm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cm.png -------------------------------------------------------------------------------- /assets/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cn.png -------------------------------------------------------------------------------- /assets/flags/co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/co.png -------------------------------------------------------------------------------- /assets/flags/cr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cr.png -------------------------------------------------------------------------------- /assets/flags/cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cu.png -------------------------------------------------------------------------------- /assets/flags/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cv.png -------------------------------------------------------------------------------- /assets/flags/cw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cw.png -------------------------------------------------------------------------------- /assets/flags/cx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cx.png -------------------------------------------------------------------------------- /assets/flags/cy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cy.png -------------------------------------------------------------------------------- /assets/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/cz.png -------------------------------------------------------------------------------- /assets/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/de.png -------------------------------------------------------------------------------- /assets/flags/dj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/dj.png -------------------------------------------------------------------------------- /assets/flags/dk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/dk.png -------------------------------------------------------------------------------- /assets/flags/dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/dm.png -------------------------------------------------------------------------------- /assets/flags/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/do.png -------------------------------------------------------------------------------- /assets/flags/dz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/dz.png -------------------------------------------------------------------------------- /assets/flags/ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ec.png -------------------------------------------------------------------------------- /assets/flags/ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ee.png -------------------------------------------------------------------------------- /assets/flags/eg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/eg.png -------------------------------------------------------------------------------- /assets/flags/eh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/eh.png -------------------------------------------------------------------------------- /assets/flags/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/er.png -------------------------------------------------------------------------------- /assets/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/es.png -------------------------------------------------------------------------------- /assets/flags/et.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/et.png -------------------------------------------------------------------------------- /assets/flags/eu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/eu.png -------------------------------------------------------------------------------- /assets/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fi.png -------------------------------------------------------------------------------- /assets/flags/fj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fj.png -------------------------------------------------------------------------------- /assets/flags/fk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fk.png -------------------------------------------------------------------------------- /assets/flags/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fm.png -------------------------------------------------------------------------------- /assets/flags/fo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fo.png -------------------------------------------------------------------------------- /assets/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/fr.png -------------------------------------------------------------------------------- /assets/flags/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ga.png -------------------------------------------------------------------------------- /assets/flags/gb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gb.png -------------------------------------------------------------------------------- /assets/flags/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gd.png -------------------------------------------------------------------------------- /assets/flags/ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ge.png -------------------------------------------------------------------------------- /assets/flags/gf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gf.png -------------------------------------------------------------------------------- /assets/flags/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gg.png -------------------------------------------------------------------------------- /assets/flags/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gh.png -------------------------------------------------------------------------------- /assets/flags/gi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gi.png -------------------------------------------------------------------------------- /assets/flags/gl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gl.png -------------------------------------------------------------------------------- /assets/flags/gm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gm.png -------------------------------------------------------------------------------- /assets/flags/gn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gn.png -------------------------------------------------------------------------------- /assets/flags/gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gp.png -------------------------------------------------------------------------------- /assets/flags/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gq.png -------------------------------------------------------------------------------- /assets/flags/gr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gr.png -------------------------------------------------------------------------------- /assets/flags/gs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gs.png -------------------------------------------------------------------------------- /assets/flags/gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gt.png -------------------------------------------------------------------------------- /assets/flags/gu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gu.png -------------------------------------------------------------------------------- /assets/flags/gw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gw.png -------------------------------------------------------------------------------- /assets/flags/gy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gy.png -------------------------------------------------------------------------------- /assets/flags/hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/hk.png -------------------------------------------------------------------------------- /assets/flags/hm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/hm.png -------------------------------------------------------------------------------- /assets/flags/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/hn.png -------------------------------------------------------------------------------- /assets/flags/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/hr.png -------------------------------------------------------------------------------- /assets/flags/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ht.png -------------------------------------------------------------------------------- /assets/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/hu.png -------------------------------------------------------------------------------- /assets/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/id.png -------------------------------------------------------------------------------- /assets/flags/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ie.png -------------------------------------------------------------------------------- /assets/flags/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/il.png -------------------------------------------------------------------------------- /assets/flags/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/im.png -------------------------------------------------------------------------------- /assets/flags/in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/in.png -------------------------------------------------------------------------------- /assets/flags/io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/io.png -------------------------------------------------------------------------------- /assets/flags/iq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/iq.png -------------------------------------------------------------------------------- /assets/flags/ir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ir.png -------------------------------------------------------------------------------- /assets/flags/is.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/is.png -------------------------------------------------------------------------------- /assets/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/it.png -------------------------------------------------------------------------------- /assets/flags/je.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/je.png -------------------------------------------------------------------------------- /assets/flags/jm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/jm.png -------------------------------------------------------------------------------- /assets/flags/jo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/jo.png -------------------------------------------------------------------------------- /assets/flags/jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/jp.png -------------------------------------------------------------------------------- /assets/flags/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ke.png -------------------------------------------------------------------------------- /assets/flags/kg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kg.png -------------------------------------------------------------------------------- /assets/flags/kh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kh.png -------------------------------------------------------------------------------- /assets/flags/ki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ki.png -------------------------------------------------------------------------------- /assets/flags/km.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/km.png -------------------------------------------------------------------------------- /assets/flags/kn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kn.png -------------------------------------------------------------------------------- /assets/flags/kp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kp.png -------------------------------------------------------------------------------- /assets/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kr.png -------------------------------------------------------------------------------- /assets/flags/kw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kw.png -------------------------------------------------------------------------------- /assets/flags/ky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ky.png -------------------------------------------------------------------------------- /assets/flags/kz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/kz.png -------------------------------------------------------------------------------- /assets/flags/la.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/la.png -------------------------------------------------------------------------------- /assets/flags/lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lb.png -------------------------------------------------------------------------------- /assets/flags/lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lc.png -------------------------------------------------------------------------------- /assets/flags/li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/li.png -------------------------------------------------------------------------------- /assets/flags/lk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lk.png -------------------------------------------------------------------------------- /assets/flags/lr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lr.png -------------------------------------------------------------------------------- /assets/flags/ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ls.png -------------------------------------------------------------------------------- /assets/flags/lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lt.png -------------------------------------------------------------------------------- /assets/flags/lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lu.png -------------------------------------------------------------------------------- /assets/flags/lv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/lv.png -------------------------------------------------------------------------------- /assets/flags/ly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ly.png -------------------------------------------------------------------------------- /assets/flags/ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ma.png -------------------------------------------------------------------------------- /assets/flags/mc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mc.png -------------------------------------------------------------------------------- /assets/flags/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/md.png -------------------------------------------------------------------------------- /assets/flags/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/me.png -------------------------------------------------------------------------------- /assets/flags/mf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mf.png -------------------------------------------------------------------------------- /assets/flags/mg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mg.png -------------------------------------------------------------------------------- /assets/flags/mh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mh.png -------------------------------------------------------------------------------- /assets/flags/mk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mk.png -------------------------------------------------------------------------------- /assets/flags/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ml.png -------------------------------------------------------------------------------- /assets/flags/mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mm.png -------------------------------------------------------------------------------- /assets/flags/mn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mn.png -------------------------------------------------------------------------------- /assets/flags/mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mo.png -------------------------------------------------------------------------------- /assets/flags/mp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mp.png -------------------------------------------------------------------------------- /assets/flags/mq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mq.png -------------------------------------------------------------------------------- /assets/flags/mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mr.png -------------------------------------------------------------------------------- /assets/flags/ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ms.png -------------------------------------------------------------------------------- /assets/flags/mt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mt.png -------------------------------------------------------------------------------- /assets/flags/mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mu.png -------------------------------------------------------------------------------- /assets/flags/mv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mv.png -------------------------------------------------------------------------------- /assets/flags/mw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mw.png -------------------------------------------------------------------------------- /assets/flags/mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mx.png -------------------------------------------------------------------------------- /assets/flags/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/my.png -------------------------------------------------------------------------------- /assets/flags/mz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/mz.png -------------------------------------------------------------------------------- /assets/flags/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/na.png -------------------------------------------------------------------------------- /assets/flags/nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nc.png -------------------------------------------------------------------------------- /assets/flags/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ne.png -------------------------------------------------------------------------------- /assets/flags/nf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nf.png -------------------------------------------------------------------------------- /assets/flags/ng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ng.png -------------------------------------------------------------------------------- /assets/flags/ni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ni.png -------------------------------------------------------------------------------- /assets/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nl.png -------------------------------------------------------------------------------- /assets/flags/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/no.png -------------------------------------------------------------------------------- /assets/flags/np.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/np.png -------------------------------------------------------------------------------- /assets/flags/nr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nr.png -------------------------------------------------------------------------------- /assets/flags/nu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nu.png -------------------------------------------------------------------------------- /assets/flags/nz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/nz.png -------------------------------------------------------------------------------- /assets/flags/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/om.png -------------------------------------------------------------------------------- /assets/flags/pa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pa.png -------------------------------------------------------------------------------- /assets/flags/pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pe.png -------------------------------------------------------------------------------- /assets/flags/pf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pf.png -------------------------------------------------------------------------------- /assets/flags/pg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pg.png -------------------------------------------------------------------------------- /assets/flags/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ph.png -------------------------------------------------------------------------------- /assets/flags/pk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pk.png -------------------------------------------------------------------------------- /assets/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pl.png -------------------------------------------------------------------------------- /assets/flags/pm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pm.png -------------------------------------------------------------------------------- /assets/flags/pn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pn.png -------------------------------------------------------------------------------- /assets/flags/pr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pr.png -------------------------------------------------------------------------------- /assets/flags/ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ps.png -------------------------------------------------------------------------------- /assets/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pt.png -------------------------------------------------------------------------------- /assets/flags/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/pw.png -------------------------------------------------------------------------------- /assets/flags/py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/py.png -------------------------------------------------------------------------------- /assets/flags/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/qa.png -------------------------------------------------------------------------------- /assets/flags/re.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/re.png -------------------------------------------------------------------------------- /assets/flags/ro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ro.png -------------------------------------------------------------------------------- /assets/flags/rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/rs.png -------------------------------------------------------------------------------- /assets/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ru.png -------------------------------------------------------------------------------- /assets/flags/rw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/rw.png -------------------------------------------------------------------------------- /assets/flags/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sa.png -------------------------------------------------------------------------------- /assets/flags/sb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sb.png -------------------------------------------------------------------------------- /assets/flags/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sc.png -------------------------------------------------------------------------------- /assets/flags/sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sd.png -------------------------------------------------------------------------------- /assets/flags/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/se.png -------------------------------------------------------------------------------- /assets/flags/sg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sg.png -------------------------------------------------------------------------------- /assets/flags/sh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sh.png -------------------------------------------------------------------------------- /assets/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/si.png -------------------------------------------------------------------------------- /assets/flags/sj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sj.png -------------------------------------------------------------------------------- /assets/flags/sk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sk.png -------------------------------------------------------------------------------- /assets/flags/sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sl.png -------------------------------------------------------------------------------- /assets/flags/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sm.png -------------------------------------------------------------------------------- /assets/flags/sn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sn.png -------------------------------------------------------------------------------- /assets/flags/so.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/so.png -------------------------------------------------------------------------------- /assets/flags/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sr.png -------------------------------------------------------------------------------- /assets/flags/ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ss.png -------------------------------------------------------------------------------- /assets/flags/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/st.png -------------------------------------------------------------------------------- /assets/flags/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sv.png -------------------------------------------------------------------------------- /assets/flags/sx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sx.png -------------------------------------------------------------------------------- /assets/flags/sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sy.png -------------------------------------------------------------------------------- /assets/flags/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/sz.png -------------------------------------------------------------------------------- /assets/flags/tc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tc.png -------------------------------------------------------------------------------- /assets/flags/td.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/td.png -------------------------------------------------------------------------------- /assets/flags/tf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tf.png -------------------------------------------------------------------------------- /assets/flags/tg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tg.png -------------------------------------------------------------------------------- /assets/flags/th.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/th.png -------------------------------------------------------------------------------- /assets/flags/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tj.png -------------------------------------------------------------------------------- /assets/flags/tk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tk.png -------------------------------------------------------------------------------- /assets/flags/tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tl.png -------------------------------------------------------------------------------- /assets/flags/tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tm.png -------------------------------------------------------------------------------- /assets/flags/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tn.png -------------------------------------------------------------------------------- /assets/flags/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/to.png -------------------------------------------------------------------------------- /assets/flags/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tr.png -------------------------------------------------------------------------------- /assets/flags/tt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tt.png -------------------------------------------------------------------------------- /assets/flags/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tv.png -------------------------------------------------------------------------------- /assets/flags/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tw.png -------------------------------------------------------------------------------- /assets/flags/tz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/tz.png -------------------------------------------------------------------------------- /assets/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ua.png -------------------------------------------------------------------------------- /assets/flags/ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ug.png -------------------------------------------------------------------------------- /assets/flags/um.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/um.png -------------------------------------------------------------------------------- /assets/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/us.png -------------------------------------------------------------------------------- /assets/flags/uy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/uy.png -------------------------------------------------------------------------------- /assets/flags/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/uz.png -------------------------------------------------------------------------------- /assets/flags/va.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/va.png -------------------------------------------------------------------------------- /assets/flags/vc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/vc.png -------------------------------------------------------------------------------- /assets/flags/ve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ve.png -------------------------------------------------------------------------------- /assets/flags/vg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/vg.png -------------------------------------------------------------------------------- /assets/flags/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/vi.png -------------------------------------------------------------------------------- /assets/flags/vn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/vn.png -------------------------------------------------------------------------------- /assets/flags/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/vu.png -------------------------------------------------------------------------------- /assets/flags/wf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/wf.png -------------------------------------------------------------------------------- /assets/flags/ws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ws.png -------------------------------------------------------------------------------- /assets/flags/xk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/xk.png -------------------------------------------------------------------------------- /assets/flags/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/ye.png -------------------------------------------------------------------------------- /assets/flags/yt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/yt.png -------------------------------------------------------------------------------- /assets/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/za.png -------------------------------------------------------------------------------- /assets/flags/zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/zm.png -------------------------------------------------------------------------------- /assets/flags/zw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/zw.png -------------------------------------------------------------------------------- /assets/usa_flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/usa_flag.png -------------------------------------------------------------------------------- /readme/confirmed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/confirmed.png -------------------------------------------------------------------------------- /readme/prevention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/prevention.png -------------------------------------------------------------------------------- /readme/symptoms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/readme/symptoms.png -------------------------------------------------------------------------------- /assets/corona_virus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/corona_virus.png -------------------------------------------------------------------------------- /assets/flags/gb-eng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gb-eng.png -------------------------------------------------------------------------------- /assets/flags/gb-nir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gb-nir.png -------------------------------------------------------------------------------- /assets/flags/gb-sct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gb-sct.png -------------------------------------------------------------------------------- /assets/flags/gb-wls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/flags/gb-wls.png -------------------------------------------------------------------------------- /assets/symptoms/cough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/symptoms/cough.png -------------------------------------------------------------------------------- /assets/symptoms/headache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/symptoms/headache.png -------------------------------------------------------------------------------- /assets/symptoms/symptoms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/symptoms/symptoms.png -------------------------------------------------------------------------------- /assets/prevention/face_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/prevention/face_mask.png -------------------------------------------------------------------------------- /assets/symptoms/high_fever.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/symptoms/high_fever.png -------------------------------------------------------------------------------- /assets/symptoms/sore_throat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/symptoms/sore_throat.png -------------------------------------------------------------------------------- /assets/prevention/cover_cough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/prevention/cover_cough.png -------------------------------------------------------------------------------- /assets/prevention/wash_hands.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/prevention/wash_hands.png -------------------------------------------------------------------------------- /assets/prevention/avoid_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/assets/prevention/avoid_contact.png -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /lib/values/case_types.dart: -------------------------------------------------------------------------------- 1 | Map caseTypes = { 2 | 'confirmed' : 'Confirmed', 3 | 'recovered' : 'Recovered', 4 | 'deaths' : 'Deaths' 5 | }; -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noobcoder17/covid-19/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 0b8abb4724aa590dd0f429683339b1e045a1594d 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /lib/screens/summery.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Summery extends StatefulWidget { 4 | @override 5 | _SummeryState createState() => _SummeryState(); 6 | } 7 | 8 | class _SummeryState extends State { 9 | @override 10 | Widget build(BuildContext context) { 11 | return Container( 12 | child: Center(child: Text("Summery"),), 13 | 14 | ); 15 | } 16 | } -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /lib/widgets/graph_loader.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //widgets 4 | import 'rotating_virus.dart'; 5 | 6 | class GraphLoader extends StatelessWidget { 7 | @override 8 | Widget build(BuildContext context) { 9 | return Container( 10 | width: MediaQuery.of(context).size.width, 11 | height: 275, 12 | child: Center( 13 | child: RotationVirus(), 14 | ), 15 | ); 16 | } 17 | } -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/models/page_view_model.dart: -------------------------------------------------------------------------------- 1 | class SubContent { 2 | final String title; 3 | final String details; 4 | final String imagePath; 5 | 6 | SubContent({this.title, this.details, this.imagePath}); 7 | } 8 | 9 | class PageContent { 10 | final String pageHeading; 11 | final String heading1; 12 | final String heading2; 13 | final String heading3; 14 | final List content; 15 | 16 | PageContent({this.pageHeading, this.heading1, this.heading2, this.heading3, this.content}); 17 | } -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/corona_virus/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.corona_virus 2 | 3 | import androidx.annotation.NonNull; 4 | import io.flutter.embedding.android.FlutterActivity 5 | import io.flutter.embedding.engine.FlutterEngine 6 | import io.flutter.plugins.GeneratedPluginRegistrant 7 | 8 | class MainActivity: FlutterActivity() { 9 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { 10 | GeneratedPluginRegistrant.registerWith(flutterEngine); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /lib/screens/loading_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //widgets 4 | import '../widgets/rotating_virus.dart'; 5 | 6 | class LoadingScreen extends StatefulWidget { 7 | @override 8 | _LoadingScreenState createState() => _LoadingScreenState(); 9 | } 10 | 11 | class _LoadingScreenState extends State{ 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | return Container( 16 | color: Colors.white, 17 | child: Center( 18 | child: RotationVirus(), 19 | ), 20 | ); 21 | } 22 | } -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /lib/functions/gradient_clipper.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class GradientClipper extends CustomClipper{ 4 | List offsets; 5 | GradientClipper({ 6 | @required this.offsets 7 | }); 8 | 9 | @override 10 | Path getClip(Size size) { 11 | double width = size.width; 12 | double height = size.height; 13 | Path path = new Path(); 14 | path.moveTo(0, height); 15 | path.addPolygon(offsets, false); 16 | path.lineTo(width, height); 17 | path.lineTo(0, height); 18 | path.close(); 19 | return path; 20 | } 21 | @override 22 | bool shouldReclip(CustomClipper oldClipper) { 23 | return true; 24 | } 25 | } -------------------------------------------------------------------------------- /lib/widgets/custom_back_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CustomBackButton extends StatelessWidget { 4 | final Color color; 5 | CustomBackButton({this.color}); 6 | @override 7 | Widget build(BuildContext context) { 8 | return GestureDetector( 9 | onTap: (){ 10 | Navigator.of(context).pop(); 11 | }, 12 | child: Container( 13 | padding: EdgeInsets.all(8), 14 | decoration: BoxDecoration( 15 | border: Border.all(color: color), 16 | borderRadius: BorderRadius.circular(4) 17 | ), 18 | child: Icon(Icons.arrow_back_ios,size: 18,color: color,), 19 | ), 20 | ); 21 | } 22 | } -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /lib/functions/line_painter.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class LinePainter extends CustomPainter { 4 | final Color color; 5 | final List offsets; 6 | final double lineWidth; 7 | LinePainter({ 8 | @required this.color, 9 | @required this.offsets, 10 | @required this.lineWidth 11 | }); 12 | @override 13 | void paint(Canvas canvas, Size size) { 14 | Path path = new Path(); 15 | path.addPolygon(offsets, false); 16 | Paint paint = Paint()..color=color..strokeWidth=lineWidth..style=PaintingStyle.stroke..strokeCap=StrokeCap.round; 17 | canvas.drawPath(path, paint); 18 | } 19 | 20 | @override 21 | bool shouldRepaint(CustomPainter oldDelegate) { 22 | return true; 23 | } 24 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | /build/ 32 | 33 | # Web related 34 | lib/generated_plugin_registrant.dart 35 | 36 | # Exceptions to above rules. 37 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 38 | -------------------------------------------------------------------------------- /lib/widgets/rotating_virus.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class RotationVirus extends StatefulWidget { 4 | @override 5 | _RotationVirusState createState() => _RotationVirusState(); 6 | } 7 | 8 | class _RotationVirusState extends State with SingleTickerProviderStateMixin { 9 | AnimationController _animationController; 10 | 11 | @override 12 | void initState() { 13 | super.initState(); 14 | _animationController = AnimationController( 15 | vsync: this, 16 | duration: Duration(seconds: 3), 17 | )..repeat(); 18 | } 19 | 20 | @override 21 | void dispose() { 22 | _animationController.dispose(); 23 | super.dispose(); 24 | } 25 | @override 26 | Widget build(BuildContext context) { 27 | return RotationTransition( 28 | turns: _animationController, 29 | child: Image.asset('assets/corona_virus.png',width: 40,), 30 | ); 31 | } 32 | } -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /lib/widgets/top_country_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //screen 4 | import '../screens/view_all_screen.dart'; 5 | 6 | class TopCountryBar extends StatelessWidget { 7 | @override 8 | Widget build(BuildContext context) { 9 | return Container( 10 | padding: EdgeInsets.fromLTRB(30, 0, 10, 0), 11 | child: Row( 12 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 13 | children: [ 14 | Text("Top Country",style: TextStyle(color: Color(0xff026c5d),fontSize: 18,fontWeight: FontWeight.w500),), 15 | FlatButton( 16 | color: Colors.white, 17 | textColor: Color(0xff026c5d), 18 | splashColor: Color(0xffe9f4f3), 19 | child: Text("View All"), 20 | onPressed: (){ 21 | Navigator.of(context).pushNamed(ViewAll.routeName); 22 | }, 23 | ) 24 | ], 25 | ), 26 | ); 27 | } 28 | } -------------------------------------------------------------------------------- /lib/widgets/navigation_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'custom_bottom_navigation_bar.dart'; 3 | 4 | class NavigationBar extends StatelessWidget { 5 | final int index; 6 | final void Function(int i) onTap; 7 | NavigationBar({ 8 | @required this.index, 9 | this.onTap 10 | }); 11 | @override 12 | Widget build(BuildContext context) { 13 | return CustomBottomNavigationBar( 14 | onTap: onTap, 15 | currentIndex: index, 16 | items: [ 17 | CustomBottomNavigationBarItem( 18 | icon: Icon(Icons.outlined_flag), 19 | title: "Home", 20 | ), 21 | // CustomBottomNavigationBarItem( 22 | // icon: Icon(Icons.library_books), 23 | // title: "Details", 24 | // ), 25 | // CustomBottomNavigationBarItem( 26 | // icon: Icon(Icons.attach_money), 27 | // title: "Details", 28 | // ), 29 | CustomBottomNavigationBarItem( 30 | icon: Icon(Icons.info), 31 | title: "Info", 32 | ), 33 | ], 34 | ); 35 | } 36 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 noobcoder17 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
⭐ COVID-19 ⭐
4 |

5 |

6 | Built with ❤︎ by 7 | Akash Debnath 8 |

9 |

This project is made using Flutter framework.In this app you can check the daily count of covid-19 cases of every country.They are shown in a form of 3 graphs, confirmed, recovered and death cases. The api used to get the data can be found here

10 | 11 |
12 |

The UI is taken from Dribbble

13 | 14 | 15 |

16 | 17 | 18 | 19 |

20 |

21 | 22 | 23 | 24 |

25 |

26 | 27 | 28 |

-------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:corona_virus/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /lib/functions/get_offsets.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | int min(List data){ 4 | int m = data[0]; 5 | for(int i=0;i data){ 14 | int m = data[0]; 15 | for(int i=0;im){ 17 | m = data[i]; 18 | } 19 | } 20 | return m; 21 | } 22 | 23 | List getOffsets(List data,Size size){ 24 | int i; 25 | List offsetsList = []; 26 | int n = data.length; 27 | double widthFactor = size.width/(n-1); 28 | List differances = []; 29 | List percentage = []; 30 | int mi = min(data); 31 | for(i=0;i indicators = []; 16 | for(int i=0;i data){ 31 | String code = data["CountryCode"]; 32 | code = code.toLowerCase(); 33 | String countryName = flagCodes[code.toUpperCase()]; 34 | 35 | return SummaryEachCountry( 36 | country: countryName, 37 | slug: data['Slug'], 38 | code : code, 39 | flagPath: 'assets/flags/'+code+'.png', 40 | newConfirmed: data["NewConfirmed"], 41 | totalConfirmed: data['TotalConfirmed'], 42 | newDeaths: data['NewDeaths'], 43 | totalDeaths: data['TotalDeaths'], 44 | newRecovered: data['NewRecovered'], 45 | totalRecovered: data['TotalRecovered'], 46 | isIncreasing: data["NewConfirmed"]>0? true : false 47 | ); 48 | } 49 | } -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | corona_virus 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /lib/providers/country_details_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:http/http.dart' as http; 3 | import 'dart:convert'; 4 | 5 | class CountryDetailsProvider extends ChangeNotifier { 6 | String slug; 7 | String country; 8 | String code; 9 | bool isIniting = true; 10 | Map timeLine; 11 | int total = 0; 12 | bool increasing = false; 13 | CountryDetailsProvider({this.slug,this.country,this.code}) { 14 | initData('confirmed'); 15 | } 16 | 17 | String get getCountry { 18 | return country; 19 | } 20 | String get getCountryCode { 21 | return code; 22 | } 23 | int get getCount{ 24 | return total; 25 | } 26 | bool get isIncreasing { 27 | return increasing; 28 | } 29 | List get points { 30 | List temp = []; 31 | timeLine.forEach((key,value){ 32 | temp.add(value); 33 | }); 34 | return temp; 35 | } 36 | 37 | Future initData(String caseType) async{ 38 | final res = await http.get('https://api.covid19api.com/total/country/$slug/status/$caseType'); 39 | List data = json.decode(res.body); 40 | Map tempTimeLine = {}; 41 | int tempTotal = 0; 42 | int prevTotal = 0; 43 | data.forEach((each){ 44 | prevTotal = tempTotal; 45 | tempTotal = each['Cases']; 46 | String date = each['Date']; 47 | if(tempTimeLine.containsKey(date)){ 48 | tempTimeLine[date] += each['Cases']; 49 | }else{ 50 | tempTimeLine[date] = each['Cases']; 51 | } 52 | }); 53 | if(tempTotal-prevTotal>0){ 54 | increasing = true; 55 | } 56 | timeLine = tempTimeLine; 57 | total = tempTotal; 58 | isIniting = false; 59 | notifyListeners(); 60 | } 61 | } -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/services.dart'; 3 | import 'package:provider/provider.dart'; 4 | 5 | //screen 6 | import './screens/root_page.dart'; 7 | import './screens/details_screen.dart'; 8 | import './screens/view_all_screen.dart'; 9 | import './screens/link_details_screen.dart'; 10 | 11 | //providers 12 | import './providers/home_provider.dart'; 13 | 14 | 15 | void main(){ 16 | WidgetsFlutterBinding.ensureInitialized(); 17 | SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp,DeviceOrientation.portraitDown]); 18 | SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( 19 | statusBarColor: Color(0xff008e7b), 20 | statusBarIconBrightness: Brightness.light 21 | )); 22 | runApp(MyApp()); 23 | } 24 | 25 | class MyApp extends StatelessWidget { 26 | @override 27 | Widget build(BuildContext context) { 28 | return MultiProvider( 29 | providers: [ 30 | ChangeNotifierProvider( 31 | create: (BuildContext ctx)=>HomeProvider(), 32 | ) 33 | ], 34 | child:MaterialApp( 35 | //showPerformanceOverlay: true, 36 | debugShowCheckedModeBanner: false, 37 | title: 'Corona Virus', 38 | theme: ThemeData( 39 | pageTransitionsTheme: PageTransitionsTheme( 40 | builders: { 41 | TargetPlatform.android : CupertinoPageTransitionsBuilder() 42 | } 43 | ) 44 | ), 45 | home: RootPage(), 46 | routes: { 47 | DetailsScreen.routeName : (BuildContext ct)=>DetailsScreen(), 48 | ViewAll.routeName :(BuildContext ct)=>ViewAll(), 49 | LinkDetailsScreen.routeName : (BuildContext ct)=>LinkDetailsScreen() 50 | }, 51 | ), 52 | ); 53 | } 54 | } -------------------------------------------------------------------------------- /lib/screens/home_page.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //sections 4 | import '../section/home_data_chart.dart'; 5 | import '../section/top_country_list.dart'; 6 | 7 | //widgets 8 | import '../widgets/topic_page_view.dart'; 9 | import '../widgets/dial_select_button_bar.dart'; 10 | import '../widgets/top_country_bar.dart'; 11 | 12 | 13 | 14 | class HomePage extends StatefulWidget { 15 | @override 16 | _HomePageState createState() => _HomePageState(); 17 | } 18 | 19 | class _HomePageState extends State { 20 | int selectedDialIndex; 21 | 22 | @override 23 | void initState() { 24 | super.initState(); 25 | selectedDialIndex=0; 26 | } 27 | 28 | 29 | 30 | @override 31 | Widget build(BuildContext context) { 32 | return Container( 33 | padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), 34 | width: MediaQuery.of(context).size.width, 35 | child: SingleChildScrollView( 36 | child: Column( 37 | crossAxisAlignment: CrossAxisAlignment.center, 38 | children: [ 39 | SizedBox(height: 30,), 40 | TopicPageView(), 41 | HomeDataChart(selectedDialIndex: selectedDialIndex,), 42 | DialSelectButtonBar( 43 | selectedButtonIndex:selectedDialIndex, 44 | onTap : (int i){ 45 | setState(() { 46 | selectedDialIndex=i; 47 | }); 48 | } 49 | ), 50 | Padding( 51 | padding: const EdgeInsets.symmetric(vertical: 10), 52 | child: TopCountryBar(), 53 | ), 54 | TopCountryList(), 55 | SizedBox(height: 30,) 56 | ], 57 | ), 58 | ), 59 | ); 60 | } 61 | } 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /lib/screens/root_page.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | 4 | //provider 5 | import '../providers/home_provider.dart'; 6 | 7 | //pages 8 | import 'home_page.dart'; 9 | import 'summery.dart'; 10 | import 'loading_screen.dart'; 11 | import 'credit_screen.dart'; 12 | 13 | //widgets 14 | import '../widgets/navigation_bar.dart'; 15 | 16 | 17 | class RootPage extends StatefulWidget { 18 | @override 19 | _RootPageState createState() => _RootPageState(); 20 | } 21 | 22 | class _RootPageState extends State { 23 | bool isLoading = false; 24 | bool homeDataLoded = false; 25 | 26 | @override 27 | void initState() { 28 | super.initState(); 29 | if(homeDataLoded==false){ 30 | initData(); 31 | } 32 | } 33 | 34 | void initData() async { 35 | setState(() { 36 | isLoading = true; 37 | }); 38 | try { 39 | await Provider.of(context,listen: false).getData(); 40 | }catch(e){ 41 | showDialog( 42 | context: context, 43 | builder: (BuildContext ctx){ 44 | return AlertDialog( 45 | title: Text(e.toString()), 46 | ); 47 | } 48 | ); 49 | } 50 | setState(() { 51 | isLoading = false; 52 | }); 53 | } 54 | 55 | int currentPageIndex = 0; 56 | List pages = [HomePage(),CreditScreen(),Summery()]; 57 | @override 58 | Widget build(BuildContext context) { 59 | return Scaffold( 60 | backgroundColor: Colors.white, 61 | body: isLoading ? LoadingScreen() : pages[currentPageIndex], 62 | bottomNavigationBar: NavigationBar( 63 | onTap: (int i){ 64 | setState(() { 65 | currentPageIndex=i; 66 | }); 67 | }, 68 | index: currentPageIndex 69 | ) 70 | ); 71 | } 72 | } -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 9 | 10 | 15 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /lib/widgets/details_screen_top_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:intl/intl.dart'; 3 | 4 | //widgets 5 | import '../widgets/custom_back_button.dart'; 6 | 7 | class DetailsScreenTopBar extends StatelessWidget { 8 | final formatter = new NumberFormat("#,###"); 9 | final String country; 10 | final String code; 11 | final int count; 12 | final bool isIncreasing; 13 | 14 | DetailsScreenTopBar({ 15 | this.country, 16 | this.code, 17 | this.count, 18 | this.isIncreasing 19 | }); 20 | 21 | @override 22 | Widget build(BuildContext context) { 23 | return Container( 24 | height: 150, 25 | child: Stack( 26 | children: [ 27 | Align( 28 | alignment: Alignment(-0.85, -0.5), 29 | child: CustomBackButton(color: Colors.white70,) 30 | ), 31 | Align( 32 | alignment: Alignment(0,-0.5), 33 | child: Row( 34 | mainAxisSize: MainAxisSize.min, 35 | children: [ 36 | Image.asset('assets/flags/'+code+'.png',width: 25,), 37 | SizedBox(width: 15,), 38 | Text(country,style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w600),) 39 | ], 40 | ), 41 | ), 42 | Align( 43 | alignment: Alignment(0.2,0.4), 44 | child: Row( 45 | mainAxisSize: MainAxisSize.min, 46 | children: [ 47 | Text(formatter.format(count),style: TextStyle(color: Colors.white,fontSize: 40,fontWeight: FontWeight.bold),), 48 | SizedBox(width: 10,), 49 | Icon(isIncreasing ? Icons.arrow_upward : Icons.arrow_downward,color: Colors.white,) 50 | ], 51 | ), 52 | ) 53 | ], 54 | ), 55 | ); 56 | } 57 | } -------------------------------------------------------------------------------- /lib/widgets/detail_card.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DetailCard extends StatelessWidget { 4 | final String title; 5 | final String details; 6 | final String imagePath; 7 | final void Function() onTap; 8 | final bool isSelected; 9 | 10 | const DetailCard({this.title, this.details, this.imagePath, this.onTap,this.isSelected}); 11 | 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | return GestureDetector( 16 | onTap: onTap, 17 | child: Card( 18 | elevation: isSelected ? 3 : 0, 19 | shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), 20 | child: Container( 21 | width: 150, 22 | height: 150*(3/2), 23 | padding: EdgeInsets.fromLTRB(20, 20, 20, 10), 24 | decoration: BoxDecoration( 25 | color: isSelected? 26 | //Color(0xffffc960) : 27 | Color(0xffe9f4f3): 28 | Colors.white, 29 | borderRadius: BorderRadius.circular(15), 30 | border: Border.all(color: Color(0xffe9f4f3),width: 1), 31 | ), 32 | child: Stack( 33 | children: [ 34 | Column( 35 | crossAxisAlignment: CrossAxisAlignment.start, 36 | mainAxisSize: MainAxisSize.min, 37 | children: [ 38 | Text(title,style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold,color: isSelected ?Color(0xff057163):Colors.black),), 39 | SizedBox(height: 5,), 40 | Text(details,style: TextStyle(color: isSelected ?Color(0xff057163):Colors.black),), 41 | ], 42 | ), 43 | Align( 44 | alignment: Alignment.bottomLeft, 45 | child: Image.asset(imagePath,height: 80,)) 46 | ], 47 | ), 48 | ), 49 | ), 50 | ); 51 | } 52 | } -------------------------------------------------------------------------------- /lib/widgets/details_screen_case_type_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | ///values 4 | import '../values/case_types.dart'; 5 | 6 | class DetailsScreenCaseTypebar extends StatelessWidget { 7 | final String caseType; 8 | final void Function(String,BuildContext) onChange; 9 | DetailsScreenCaseTypebar({this.caseType,this.onChange}); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Padding( 14 | padding: const EdgeInsets.symmetric(horizontal: 20), 15 | child: Row( 16 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 17 | crossAxisAlignment: CrossAxisAlignment.center, 18 | children: [ 19 | Text("Total ${caseTypes[caseType]} Cases",style: TextStyle(color: Color(0xff006d5f),fontSize: 19,fontWeight: FontWeight.w500),), 20 | Container( 21 | padding: const EdgeInsets.symmetric(horizontal: 5), 22 | decoration: BoxDecoration( 23 | color: Color(0xffe9f4f3), 24 | borderRadius: BorderRadius.circular(5) 25 | ), 26 | child: DropdownButtonHideUnderline( 27 | child: DropdownButton( 28 | icon: Icon(Icons.arrow_drop_down,color: Color(0xff006d5f),), 29 | style: TextStyle(color: Color(0xff006d5f),fontSize: 13,fontWeight: FontWeight.w500), 30 | value: caseType, 31 | items: >[ 32 | DropdownMenuItem(child: Text("Confirmed"),value: "confirmed",), 33 | DropdownMenuItem(child: Text("Recovered"),value: "recovered",), 34 | DropdownMenuItem(child: Text("Deaths"),value: "deaths",) 35 | ], 36 | onChanged: (String x){ 37 | onChange(x,context); 38 | } 39 | ), 40 | ), 41 | ) 42 | ], 43 | ), 44 | ); 45 | } 46 | } -------------------------------------------------------------------------------- /lib/widgets/dial_select_button_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DialSelectButtonBar extends StatelessWidget { 4 | final List titles = ["Active","Dead","Recovered"]; 5 | final int selectedButtonIndex; 6 | final void Function(int i) onTap; 7 | DialSelectButtonBar({ 8 | @required this.selectedButtonIndex, 9 | @required this.onTap 10 | }); 11 | @override 12 | Widget build(BuildContext context) { 13 | List buttonList = []; 14 | for(int i=0;i<3;i++){ 15 | buttonList.add( 16 | DialSelectButton( 17 | isSelected: selectedButtonIndex==i ? true :false, 18 | title: titles[i], 19 | onTap: (){ 20 | onTap(i); 21 | }, 22 | ) 23 | ); 24 | } 25 | return Container( 26 | padding: EdgeInsets.fromLTRB(45, 20, 45, 0), 27 | child: Row( 28 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 29 | children: buttonList 30 | ), 31 | ); 32 | } 33 | } 34 | 35 | class DialSelectButton extends StatelessWidget { 36 | final bool isSelected; 37 | final String title; 38 | final void Function() onTap; 39 | DialSelectButton({ 40 | @required this.isSelected, 41 | @required this.title, 42 | this.onTap, 43 | }); 44 | @override 45 | Widget build(BuildContext context) { 46 | return GestureDetector( 47 | onTap: onTap, 48 | child: AnimatedContainer( 49 | duration: Duration(milliseconds: 300), 50 | padding: EdgeInsets.symmetric(horizontal: 10,vertical: 12) , 51 | decoration: BoxDecoration( 52 | color: isSelected ? Color(0xffe9f4f3): Colors.white, 53 | borderRadius: BorderRadius.circular(10) 54 | ), 55 | child: Text( 56 | title, 57 | style: TextStyle( 58 | color: isSelected? Color(0xff026c5d):Color(0xff88bdb3), 59 | fontSize: 16, 60 | fontWeight: FontWeight.w500 61 | ), 62 | ), 63 | ), 64 | ); 65 | } 66 | } -------------------------------------------------------------------------------- /lib/section/top_country_list.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | 4 | //models 5 | import '../models/summary_each_country.dart'; 6 | 7 | //providers 8 | import '../providers/home_provider.dart'; 9 | 10 | //widgets 11 | import '../widgets/country_list_item.dart'; 12 | 13 | 14 | final List colordata = [ 15 | ItemColorData( 16 | backgroundColor: Color(0xff008e7b), 17 | gradientColor: Color(0xff009a88), 18 | lineColor: Color(0xff5bc8b7) 19 | ), 20 | ItemColorData( 21 | backgroundColor: Color(0xffff775e), 22 | gradientColor: Color(0xffff8d77), 23 | lineColor: Color(0xffffc4b7) 24 | ), 25 | ItemColorData( 26 | backgroundColor: Color(0xfff2d65d), 27 | gradientColor: Color(0xfff2d65d), 28 | lineColor: Color(0xfffeedb2) 29 | ), 30 | ItemColorData( 31 | backgroundColor: Color(0xff6078ff), 32 | gradientColor:Color(0xff758aff), 33 | lineColor: Color(0xffe7e9fb) 34 | ) 35 | ]; 36 | 37 | class TopCountryList extends StatelessWidget { 38 | final double height = 180; 39 | @override 40 | Widget build(BuildContext context) { 41 | 42 | return Container( 43 | height: height, 44 | child: Consumer( 45 | builder: (ctx,provider,_){ 46 | List list = provider.getTopSix; 47 | return ListView.builder( 48 | padding: EdgeInsets.only(left: 20,right: 20), 49 | primary: true, 50 | scrollDirection: Axis.horizontal, 51 | itemCount: list.length, 52 | itemBuilder: (BuildContext ctx,int i){ 53 | return CountryListItem( 54 | height: height, 55 | countryName: list[i].country, 56 | countrySlug: list[i].slug, 57 | countryCode: list[i].code, 58 | value: list[i].totalConfirmed, 59 | flagPath: list[i].flagPath, 60 | isIncreasing: list[i].isIncreasing, 61 | itemColorData: colordata[i%colordata.length], 62 | ); 63 | }, 64 | ); 65 | }, 66 | ), 67 | ); 68 | } 69 | } -------------------------------------------------------------------------------- /lib/widgets/details_screen_graph.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //functions 4 | import '../functions/line_painter.dart'; 5 | import '../functions/get_offsets.dart'; 6 | import '../functions/gradient_clipper.dart'; 7 | 8 | 9 | class DetailsScreenGraph extends StatefulWidget { 10 | final double height; 11 | final double width; 12 | final List points; 13 | final Map colors; 14 | 15 | const DetailsScreenGraph({this.height, this.width,this.points,this.colors}); 16 | 17 | @override 18 | _DetailsScreenGraphState createState() => _DetailsScreenGraphState(); 19 | } 20 | 21 | class _DetailsScreenGraphState extends State { 22 | double value; 23 | @override 24 | void initState() { 25 | super.initState(); 26 | value = widget.points[0].toDouble(); 27 | } 28 | @override 29 | Widget build(BuildContext context) { 30 | Size canvasSize = Size(widget.width,widget.height-55); 31 | List offsets = getOffsets(widget.points,canvasSize); 32 | return Stack( 33 | alignment: Alignment.topCenter, 34 | children: [ 35 | Container( 36 | height: widget.height, 37 | width: widget.width, 38 | ), 39 | ClipPath( 40 | clipper: GradientClipper(offsets: offsets), 41 | child: Container( 42 | height: canvasSize.height+100, 43 | width: canvasSize.width, 44 | decoration: BoxDecoration( 45 | gradient: LinearGradient( 46 | colors: [ 47 | //Color(0xffffb8ba), 48 | widget.colors['gradientStart'], 49 | Colors.white 50 | //Color(0xfffbe7e8) 51 | //lineShadowColor, 52 | //startColor 53 | ], 54 | begin: Alignment.topCenter, 55 | end: Alignment.bottomCenter 56 | ), 57 | ), 58 | ), 59 | ), 60 | CustomPaint( 61 | size: canvasSize, 62 | painter: LinePainter( 63 | color: widget.colors['lineColor'], 64 | offsets: offsets, 65 | lineWidth: 2 66 | ), 67 | ), 68 | ], 69 | ); 70 | } 71 | } -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 28 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.example.corona_virus" 42 | minSdkVersion 16 43 | targetSdkVersion 28 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 47 | } 48 | 49 | buildTypes { 50 | release { 51 | // TODO: Add your own signing config for the release build. 52 | // Signing with the debug keys for now, so `flutter run --release` works. 53 | signingConfig signingConfigs.debug 54 | } 55 | } 56 | } 57 | 58 | flutter { 59 | source '../..' 60 | } 61 | 62 | dependencies { 63 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 64 | testImplementation 'junit:junit:4.12' 65 | androidTestImplementation 'androidx.test:runner:1.1.1' 66 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' 67 | } 68 | -------------------------------------------------------------------------------- /lib/functions/curve_painter.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class CurvePainter extends StatelessWidget { 5 | final Size size; 6 | final Duration duration; 7 | final Color color; 8 | final bool isIncreasing; 9 | CurvePainter({this.size,this.duration,this.color,this.isIncreasing}); 10 | @override 11 | Widget build(BuildContext context) { 12 | return Container( 13 | height: size.height, 14 | width: size.width, 15 | child: Stack( 16 | children: [ 17 | Container(width: size.width,height: size.height,color: Colors.transparent,), 18 | Transform.rotate( 19 | angle: isIncreasing ? -pi/5 : pi/4, 20 | child: TweenAnimationBuilder( 21 | duration: duration, 22 | tween: Tween(begin: 0,end: size.width), 23 | builder: (ct,val,_){ 24 | return TweenAnimationBuilder( 25 | duration: duration, 26 | tween: Tween(begin: 0,end: 2*pi), 27 | builder: (ctx,value,_){ 28 | return CustomPaint( 29 | size: Size(val,size.height), 30 | painter: MyPainter(value,color), 31 | ); 32 | }, 33 | ); 34 | }, 35 | ), 36 | ), 37 | ], 38 | ), 39 | ); 40 | } 41 | } 42 | 43 | class MyPainter extends CustomPainter { 44 | final double value; 45 | final Color color; 46 | MyPainter(this.value,this.color); 47 | @override 48 | void paint(Canvas canvas, Size size) { 49 | List offsets = []; 50 | for(int i=0;i1){ 59 | canvas.drawCircle(offsets[offsets.length-1], 2, circle); 60 | } 61 | canvas.drawPath(path, paint); 62 | } 63 | 64 | @override 65 | bool shouldRepaint(CustomPainter oldDelegate) { 66 | return true; 67 | } 68 | 69 | } -------------------------------------------------------------------------------- /lib/values/page_content.dart: -------------------------------------------------------------------------------- 1 | import '../models/page_view_model.dart'; 2 | 3 | List pageContentList = [ 4 | PageContent( 5 | pageHeading: "4 Symptoms of\nCovid-19", 6 | heading1: 'Covid-19', 7 | heading2: 'Symptoms', 8 | heading3: 'These symptoms may appear 2-14 days after exposure.', 9 | content: [ 10 | SubContent( 11 | title: 'High Fever', 12 | details: 'People who are older with edical conditions such as heart or lung desease..', 13 | imagePath: 'assets/symptoms/high_fever.png', 14 | ), 15 | SubContent( 16 | title: 'Dry Cough', 17 | details: 'It appears to spred form person to person among those in colse contact.', 18 | imagePath: 'assets/symptoms/cough.png', 19 | ), 20 | SubContent( 21 | title: 'Headache', 22 | details: 'Excited or tense, often to the point of holding the breath..', 23 | imagePath: 'assets/symptoms/headache.png', 24 | ), 25 | SubContent( 26 | title: 'Sore Throat', 27 | details: 'The severity of COVID-19 symptoms can range from very mild to severe.', 28 | imagePath: 'assets/symptoms/sore_throat.png', 29 | ) 30 | ] 31 | ), 32 | PageContent( 33 | pageHeading: "Covid-19\nprevention", 34 | heading1: 'Covid-19', 35 | heading2: 'Prevention', 36 | heading3: 'Do these things to prevent Conid-19.', 37 | content: [ 38 | SubContent( 39 | title: 'Wash hands', 40 | details: 'Wash your hands regularly for 20 seconds, with soap and water or alcohol-based hand rub.', 41 | imagePath: 'assets/prevention/wash_hands.png', 42 | ), 43 | SubContent( 44 | title: 'Use mask', 45 | details: 'Always cover your mouth and nose with mask whenever going outside.', 46 | imagePath: 'assets/prevention/face_mask.png', 47 | ), 48 | SubContent( 49 | title: 'Avoid contact', 50 | details: 'Avoid close contact (1 meter or 3 feet) with people who are unwell.', 51 | imagePath: 'assets/prevention/avoid_contact.png', 52 | ), 53 | SubContent( 54 | title: 'Cover cough', 55 | details: 'Cover your nose and mouth with a disposable tissue or flexed elbow when you cough or sneeze', 56 | imagePath: 'assets/prevention/cover_cough.png', 57 | ), 58 | 59 | ] 60 | ), 61 | ]; -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /lib/widgets/custom_bottom_navigation_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | 4 | class CustomBottomNavigationBar extends StatefulWidget { 5 | final List items; 6 | final IconData popUpMenuIcon; 7 | final bool isPopUpEnable; 8 | final int currentIndex; 9 | final void Function(int i) onTap; 10 | CustomBottomNavigationBar({ 11 | this.currentIndex=0, 12 | this.items, 13 | this.isPopUpEnable, 14 | this.popUpMenuIcon, 15 | this.onTap 16 | }); 17 | @override 18 | _CustomBottomNavigationBarState createState() => _CustomBottomNavigationBarState(); 19 | } 20 | 21 | class _CustomBottomNavigationBarState extends State { 22 | 23 | @override 24 | Widget build(BuildContext context) { 25 | List activatedList = []; 26 | for(int i=0;i[ 82 | Icon(icon.icon,color: Color(0xff057163),size: isActive? 17:21,), 83 | isActive ? SizedBox(width: 4,) : SizedBox(width: 0,), 84 | isActive? Text(title,style: TextStyle(fontWeight: FontWeight.w600,color: Color(0xff057163),fontSize: 13),) : SizedBox(width: 0,) 85 | ], 86 | ), 87 | ), 88 | ); 89 | } 90 | } -------------------------------------------------------------------------------- /lib/screens/link_details_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import '../models/page_view_model.dart'; 3 | 4 | //widgets 5 | import '../widgets/detail_card.dart'; 6 | import '../widgets/custom_back_button.dart'; 7 | 8 | class LinkDetailsScreen extends StatefulWidget { 9 | static const routeName = 'link_details_screen'; 10 | @override 11 | _LinkDetailsScreenState createState() => _LinkDetailsScreenState(); 12 | } 13 | 14 | class _LinkDetailsScreenState extends State { 15 | int tileIndex = 0; 16 | @override 17 | Widget build(BuildContext context) { 18 | PageContent pageContent = ModalRoute.of(context).settings.arguments as PageContent; 19 | List list = []; 20 | for(int i=0;i[ 43 | SizedBox(height: 30,), 44 | Align( 45 | alignment: Alignment.centerLeft, 46 | child: Padding( 47 | padding: const EdgeInsets.only(left: 25), 48 | child: CustomBackButton(color: Colors.black,) 49 | ), 50 | ), 51 | Padding( 52 | padding: const EdgeInsets.symmetric(horizontal: 25), 53 | child: Row( 54 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 55 | children: [ 56 | Column( 57 | crossAxisAlignment: CrossAxisAlignment.start, 58 | children: [ 59 | Text(pageContent.heading1,style: TextStyle(fontSize: 16),), 60 | Text(pageContent.heading2,style: TextStyle(fontSize: 23)), 61 | SizedBox(height: 5,), 62 | Text(pageContent.heading3,style: TextStyle(fontSize: 10),) 63 | ], 64 | ), 65 | Hero(tag: 'hero',child: Image.asset('assets/logo.png',height: 100,)) 66 | ], 67 | ), 68 | ), 69 | Wrap( 70 | alignment: WrapAlignment.center, 71 | crossAxisAlignment: WrapCrossAlignment.center, 72 | children: list, 73 | ) 74 | ], 75 | ), 76 | ), 77 | ) 78 | ); 79 | } 80 | } 81 | 82 | 83 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: corona_virus 2 | description: A new Flutter project. 3 | 4 | # The following defines the version and build number for your application. 5 | # A version number is three numbers separated by dots, like 1.2.43 6 | # followed by an optional build number separated by a +. 7 | # Both the version and the builder number may be overridden in flutter 8 | # build by specifying --build-name and --build-number, respectively. 9 | # In Android, build-name is used as versionName while build-number used as versionCode. 10 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning 11 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. 12 | # Read more about iOS versioning at 13 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html 14 | version: 1.0.0+1 15 | 16 | environment: 17 | sdk: ">=2.1.0 <3.0.0" 18 | 19 | dependencies: 20 | flutter: 21 | sdk: flutter 22 | 23 | # The following adds the Cupertino Icons font to your application. 24 | # Use with the CupertinoIcons class for iOS style icons. 25 | cupertino_icons: ^0.1.2 26 | http: ^0.12.0+4 27 | provider: ^4.0.4 28 | intl: ^0.16.1 29 | package_info: ^0.4.0+16 30 | url_launcher: ^5.4.2 31 | flutter_launcher_icons: "^0.7.3" 32 | 33 | dev_dependencies: 34 | flutter_test: 35 | sdk: flutter 36 | 37 | flutter_icons: 38 | android: true 39 | ios: true 40 | image_path: "assets/icon.png" 41 | 42 | 43 | 44 | # For information on the generic Dart part of this file, see the 45 | # following page: https://dart.dev/tools/pub/pubspec 46 | 47 | # The following section is specific to Flutter. 48 | flutter: 49 | 50 | # The following line ensures that the Material Icons font is 51 | # included with your application, so that you can use the icons in 52 | # the material Icons class. 53 | uses-material-design: true 54 | 55 | # To add assets to your application, add an assets section, like this: 56 | assets: 57 | - assets/ 58 | - assets/flags/ 59 | - assets/symptoms/ 60 | - assets/prevention/ 61 | # - images/a_dot_ham.jpeg 62 | 63 | # An image asset can refer to one or more resolution-specific "variants", see 64 | # https://flutter.dev/assets-and-images/#resolution-aware. 65 | 66 | # For details regarding adding assets from package dependencies, see 67 | # https://flutter.dev/assets-and-images/#from-packages 68 | 69 | # To add custom fonts to your application, add a fonts section here, 70 | # in this "flutter" section. Each entry in this list should have a 71 | # "family" key with the font family name, and a "fonts" key with a 72 | # list giving the asset and other descriptors for the font. For 73 | # example: 74 | # fonts: 75 | # - family: Schyler 76 | # fonts: 77 | # - asset: fonts/Schyler-Regular.ttf 78 | # - asset: fonts/Schyler-Italic.ttf 79 | # style: italic 80 | # - family: Trajan Pro 81 | # fonts: 82 | # - asset: fonts/TrajanPro.ttf 83 | # - asset: fonts/TrajanPro_Bold.ttf 84 | # weight: 700 85 | # 86 | # For details regarding fonts from package dependencies, 87 | # see https://flutter.dev/custom-fonts/#from-packages 88 | -------------------------------------------------------------------------------- /lib/section/home_data_chart.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | 4 | //providers 5 | import '../providers/home_provider.dart'; 6 | 7 | //widgets 8 | import '../widgets/circle_dial.dart'; 9 | import '../widgets/small_graph.dart'; 10 | class HomeDataChart extends StatelessWidget { 11 | final List colorList = [ 12 | DialColorData( 13 | labelColor: Color(0xff007a69), 14 | innerCircleColor: Color(0xffe7f2f1), 15 | gradientStartColor: Color(0xffb7efe5), 16 | gradientEndColor: Color(0xff52b9aa) 17 | ), 18 | DialColorData( 19 | labelColor: Color(0xff682429), 20 | innerCircleColor: Color(0xfffbe7e8), 21 | gradientStartColor: Color(0xffffb8ba), 22 | gradientEndColor: Color(0xffff606c) 23 | ), 24 | DialColorData( 25 | labelColor: Color(0xff243268), 26 | innerCircleColor: Color(0xffe7e9fb), 27 | gradientStartColor: Color(0xffb8c4ff), 28 | gradientEndColor: Color(0xff6078ff) 29 | ) 30 | ]; 31 | final int selectedDialIndex; 32 | HomeDataChart({this.selectedDialIndex}); 33 | 34 | @override 35 | Widget build(BuildContext context) { 36 | return Container( 37 | padding: EdgeInsets.fromLTRB(25, 20, 25, 0), 38 | child: Row( 39 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 40 | children: [ 41 | Consumer( 42 | builder: (ct,provider,_){ 43 | double val = provider.getDialValue(selectedDialIndex); 44 | return CircleDial( 45 | radius: 135, 46 | value: val, 47 | dialColorData: colorList[selectedDialIndex], 48 | ); 49 | } 50 | ), 51 | Column( 52 | crossAxisAlignment: CrossAxisAlignment.end, 53 | children: [ 54 | Consumer( 55 | builder: (ct,provider,_){ 56 | return SmallGraphPanel( 57 | label: "Affected", 58 | value: provider.getTotalConfirmed, 59 | icon: Icons.arrow_drop_up, 60 | fontColor: Color(0xff682429), 61 | iconColor: Color(0xffff000f), 62 | startColor: Color(0xfffbe7e8), 63 | lineShadowColor: Color(0xffffb9bb), 64 | lineColor: Color(0xffff4e5d), 65 | ); 66 | } 67 | ), 68 | SizedBox(height: 20,), 69 | Consumer( 70 | builder: (ct,provider,_){ 71 | return SmallGraphPanel( 72 | label: "Active", 73 | value: provider.getTotalActive, 74 | icon: Icons.arrow_drop_up, 75 | fontColor: Color(0xff027c6b), 76 | iconColor: Color(0xff007867), 77 | startColor: Color(0xffe8f3f2), 78 | lineShadowColor: Color(0xffa2dcd1), 79 | lineColor: Color(0xff7dcabd), 80 | ); 81 | } 82 | ), 83 | 84 | ], 85 | ) 86 | ], 87 | ), 88 | ); 89 | } 90 | } -------------------------------------------------------------------------------- /lib/widgets/topic_page_view.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | //values 4 | import '../values/page_content.dart'; 5 | 6 | //screens 7 | import '../screens/link_details_screen.dart'; 8 | 9 | //widgets 10 | import 'page_indicator.dart'; 11 | 12 | 13 | 14 | class TopicPageView extends StatefulWidget { 15 | @override 16 | _TopicPageViewState createState() => _TopicPageViewState(); 17 | } 18 | 19 | class _TopicPageViewState extends State { 20 | PageController _pageController; 21 | int currentPage; 22 | 23 | @override 24 | void initState() { 25 | super.initState(); 26 | _pageController = PageController( 27 | initialPage: 0, 28 | ); 29 | currentPage = 0; 30 | } 31 | 32 | void onPageChanged(int i){ 33 | setState(() { 34 | currentPage = i; 35 | }); 36 | } 37 | 38 | @override 39 | void dispose() { 40 | _pageController.dispose(); 41 | super.dispose(); 42 | } 43 | @override 44 | Widget build(BuildContext context) { 45 | return Container( 46 | width: 310, 47 | height: 140, 48 | child: Stack( 49 | children: [ 50 | Align( 51 | alignment: Alignment.bottomCenter, 52 | child: Container( 53 | width: 310, 54 | height: 120, 55 | decoration: BoxDecoration( 56 | color: Color(0xffe9f4f3), 57 | borderRadius: BorderRadius.circular(20) 58 | ), 59 | ), 60 | ), 61 | Align( 62 | alignment: Alignment(-0.87, 1), 63 | child: Container( 64 | //height: 150, 65 | //width: 90, 66 | child: Hero(tag: "hero",child: Image.asset('assets/logo.png',)), 67 | ), 68 | ), 69 | Container( 70 | child: PageView.builder( 71 | scrollDirection: Axis.vertical, 72 | controller: _pageController, 73 | itemCount: pageContentList.length, 74 | onPageChanged: (int i){ 75 | onPageChanged(i); 76 | }, 77 | itemBuilder: (BuildContext ctx,int i){ 78 | return GestureDetector( 79 | onTap: (){ 80 | Navigator.of(context).pushNamed(LinkDetailsScreen.routeName,arguments: pageContentList[i]); 81 | }, 82 | child: Align( 83 | alignment: Alignment(0.5,0.3), 84 | child: RichText( 85 | text: TextSpan( 86 | style: TextStyle(color: Color(0xff057163),fontWeight: FontWeight.bold), 87 | children: [ 88 | TextSpan(text: pageContentList[i].pageHeading,style: TextStyle(fontSize: 17)), 89 | TextSpan(text:"\n\n"), 90 | TextSpan(text: "Read More",style: TextStyle(fontSize: 13,decoration: TextDecoration.underline)) 91 | ] 92 | ), 93 | ), 94 | ), 95 | ); 96 | } 97 | ), 98 | ), 99 | Align( 100 | alignment: Alignment(0.85,0.3), 101 | child: PageIndicator( 102 | indicatorCount: pageContentList.length, 103 | currentIndex: currentPage, 104 | ) 105 | ) 106 | ], 107 | ), 108 | ); 109 | } 110 | } -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /lib/widgets/small_graph.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:flutter/material.dart'; 3 | 4 | //functions 5 | import '../functions/curve_painter.dart'; 6 | 7 | 8 | class SmallGraphPanel extends StatelessWidget { 9 | final String label; 10 | final IconData icon; 11 | final double value; 12 | final Color startColor; 13 | final Color fontColor; 14 | final Color iconColor; 15 | final Color lineColor; 16 | final Color lineShadowColor; 17 | 18 | SmallGraphPanel({ 19 | @required this.label, 20 | @required this.icon, 21 | @required this.value, 22 | @required this.startColor, 23 | @required this.fontColor, 24 | @required this.iconColor, 25 | @required this.lineColor, 26 | @required this.lineShadowColor 27 | }); 28 | @override 29 | Widget build(BuildContext context) { 30 | return Container( 31 | alignment: Alignment.bottomCenter, 32 | padding: EdgeInsets.symmetric(horizontal: 10,vertical: 10), 33 | decoration: BoxDecoration( 34 | borderRadius: BorderRadius.circular(5), 35 | gradient: LinearGradient( 36 | colors: [ 37 | startColor, 38 | Colors.white 39 | ], 40 | begin: Alignment.centerRight, 41 | end: Alignment.centerLeft 42 | ) 43 | ), 44 | 45 | child: Row( 46 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 47 | crossAxisAlignment: CrossAxisAlignment.center, 48 | children: [ 49 | Column( 50 | mainAxisAlignment: MainAxisAlignment.center, 51 | crossAxisAlignment: CrossAxisAlignment.start, 52 | mainAxisSize: MainAxisSize.min, 53 | children: [ 54 | Row( 55 | children: [ 56 | Text(label,style: TextStyle(fontSize: 10,color: fontColor),), 57 | Icon(icon,size: 16,color: iconColor,) 58 | ], 59 | ), 60 | Text(value.toString()+"k",style: TextStyle(color: fontColor,fontWeight: FontWeight.bold),) 61 | ], 62 | ), 63 | SizedBox(width: 5,), 64 | CurvePainter( 65 | duration: Duration(seconds: 1), 66 | size: Size(40,20), 67 | color: lineColor, 68 | isIncreasing : true 69 | ), 70 | // Stack( 71 | // children: [ 72 | // ClipPath( 73 | // clipper: GradientClipper(offsets: offsets), 74 | // child: Container( 75 | // height: size.height, 76 | // width: size.width, 77 | // decoration: BoxDecoration( 78 | // gradient: LinearGradient( 79 | // colors: [ 80 | // //Color(0xffffb8ba), 81 | // //Color(0xfffbe7e8) 82 | // lineShadowColor, 83 | // startColor 84 | // ], 85 | // begin: Alignment.topCenter, 86 | // end: Alignment.bottomCenter 87 | // ), 88 | // //border: Border(top: BorderSide(color: Colors.red,width: 2)) 89 | // ), 90 | // ), 91 | // ), 92 | // CustomPaint( 93 | // painter: LinePainter( 94 | // color: lineColor, 95 | // offsets: offsets, 96 | // lineWidth: 1 97 | // ), 98 | // size: size, 99 | // ) 100 | // ], 101 | // ) 102 | ], 103 | ), 104 | ); 105 | } 106 | } 107 | 108 | 109 | -------------------------------------------------------------------------------- /lib/providers/home_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:http/http.dart' as http; 3 | import 'dart:convert'; 4 | 5 | import '../models/summary_each_country.dart'; 6 | 7 | class HomeProvider extends ChangeNotifier { 8 | 9 | int _totalConfirmed = 0; 10 | int _totalDead = 0; 11 | int _totalRecovered = 0; 12 | int _totalActive = 0; 13 | List _summeryList = []; 14 | List _topSix = []; 15 | 16 | List get getTopSix { 17 | return _topSix; 18 | } 19 | 20 | double getDialValue(int dialIndex){ 21 | if(dialIndex==0){ 22 | return double.parse((_totalActive/_totalConfirmed).toStringAsPrecision(3)); 23 | }else if(dialIndex==1){ 24 | return double.parse((_totalDead/_totalConfirmed).toStringAsPrecision(3)); 25 | }else{ 26 | return double.parse((_totalRecovered/_totalConfirmed).toStringAsPrecision(3)); 27 | } 28 | } 29 | 30 | double get getTotalConfirmed { 31 | return double.parse((_totalConfirmed/1000).toStringAsPrecision(5)); 32 | } 33 | 34 | int get getTotalDead { 35 | return _totalDead; 36 | } 37 | 38 | int get getTotalRecovered { 39 | return _totalRecovered; 40 | } 41 | 42 | double get getTotalActive { 43 | return double.parse((_totalActive/1000).toStringAsPrecision(5)); 44 | } 45 | 46 | List getSummeryList(String filterKey) { 47 | if(filterKey!=null){ 48 | String key = filterKey.toLowerCase(); 49 | List tempList = []; 50 | _summeryList.forEach((item){ 51 | String name = item.country.toLowerCase(); 52 | if(name.startsWith(key)){ 53 | tempList.add(item); 54 | } 55 | }); 56 | return tempList; 57 | } 58 | return _summeryList; 59 | } 60 | 61 | Future getData() async{ 62 | try { 63 | final response = await http.get("https://api.covid19api.com/summary"); 64 | final Map jsonData = json.decode(response.body); 65 | final List data = jsonData['Countries']; 66 | 67 | List tempSummeryList = []; 68 | List tempTopSix = []; 69 | int tempTotalConfirmed = 0; 70 | int tempTotalDead = 0; 71 | int tempTotalRecovered = 0; 72 | 73 | SummaryEachCountry temp; 74 | 75 | 76 | data.forEach((countrySummary){ 77 | if(countrySummary['Country']!=''){ 78 | temp = new SummaryEachCountry().formMap(countrySummary); 79 | tempSummeryList.add(temp); 80 | tempTotalConfirmed+=temp.totalConfirmed; 81 | tempTotalDead+=temp.totalDeaths; 82 | tempTotalRecovered+=temp.totalRecovered; 83 | if(tempTopSix.isEmpty){ 84 | tempTopSix.add(temp); 85 | }else if(tempTopSix[tempTopSix.length-1].totalConfirmed colordata = [ 13 | ItemColorData( 14 | backgroundColor: Color(0xff008e7b), 15 | gradientColor: Color(0xff009a88), 16 | lineColor: Color(0xff5bc8b7) 17 | ), 18 | ItemColorData( 19 | backgroundColor: Color(0xffff775e), 20 | gradientColor: Color(0xffff8d77), 21 | lineColor: Color(0xffffc4b7) 22 | ), 23 | ItemColorData( 24 | backgroundColor: Color(0xfff2d65d), 25 | gradientColor: Color(0xfff2d65d), 26 | lineColor: Color(0xfffeedb2) 27 | ), 28 | ItemColorData( 29 | backgroundColor: Color(0xff6078ff), 30 | gradientColor:Color(0xff758aff), 31 | lineColor: Color(0xffe7e9fb) 32 | ) 33 | ]; 34 | 35 | class ViewAll extends StatefulWidget { 36 | static const routeName = 'view-all'; 37 | @override 38 | _ViewAllState createState() => _ViewAllState(); 39 | } 40 | 41 | class _ViewAllState extends State { 42 | GlobalKey formKey = GlobalKey(); 43 | String filterKey; 44 | @override 45 | Widget build(BuildContext context) { 46 | return Scaffold( 47 | body: Column( 48 | children: [ 49 | SizedBox(height: 35,), 50 | Padding( 51 | padding: const EdgeInsets.symmetric(horizontal: 20), 52 | child: TextFormField( 53 | cursorColor: Color(0xff52b9aa), 54 | style: TextStyle(color: Color(0xff52b9aa)), 55 | decoration: InputDecoration( 56 | hintText: "Country Name", 57 | enabledBorder: OutlineInputBorder( 58 | borderRadius: BorderRadius.circular(15), 59 | borderSide: BorderSide(color:Color(0xff52b9aa),width: 1.4,style: BorderStyle.solid) 60 | ), 61 | focusedBorder: OutlineInputBorder( 62 | borderRadius: BorderRadius.circular(15), 63 | borderSide: BorderSide(color: Color(0xff52b9aa),width: 1.4,style: BorderStyle.solid) 64 | ), 65 | prefixIcon: Icon(Icons.search,color: Color(0xff52b9aa),size: 17,), 66 | ), 67 | onChanged: (String val){ 68 | setState(() { 69 | filterKey = val; 70 | }); 71 | }, 72 | ), 73 | ), 74 | Expanded( 75 | child: Consumer( 76 | builder: (ctx,provider,_){ 77 | List list = provider.getSummeryList(filterKey); 78 | return GridView.builder( 79 | padding: EdgeInsets.symmetric(horizontal: 30), 80 | gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( 81 | crossAxisCount: 2, 82 | crossAxisSpacing: 12, 83 | childAspectRatio: 2/2.9, 84 | ), 85 | itemCount: list.length, 86 | itemBuilder: (ctx,i){ 87 | return Container( 88 | padding: EdgeInsets.symmetric(vertical: 17), 89 | //color: colordata[i%colordata.length].backgroundColor, 90 | child: CountryListItem( 91 | height: 180, 92 | countryName: list[i].country, 93 | countrySlug: list[i].slug, 94 | countryCode: list[i].code, 95 | value: list[i].totalConfirmed, 96 | flagPath: list[i].flagPath, 97 | isIncreasing: list[i].isIncreasing, 98 | itemColorData: colordata[i%colordata.length], 99 | ), 100 | ); 101 | } 102 | ); 103 | }, 104 | ), 105 | ), 106 | 107 | 108 | ], 109 | ), 110 | 111 | ); 112 | } 113 | } 114 | 115 | -------------------------------------------------------------------------------- /lib/widgets/circle_dial.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'dart:math'; 3 | 4 | class DialColorData { 5 | final Color labelColor; 6 | final Color gradientStartColor; 7 | final Color gradientEndColor; 8 | final Color innerCircleColor; 9 | DialColorData({ 10 | @required this.labelColor, 11 | @required this.innerCircleColor, 12 | @required this.gradientStartColor, 13 | @required this.gradientEndColor 14 | }); 15 | } 16 | 17 | class CircleDial extends StatelessWidget { 18 | final double radius; 19 | final double value; 20 | final DialColorData dialColorData; 21 | 22 | 23 | CircleDial({ 24 | @required this.radius, 25 | @required this.value, 26 | @required this.dialColorData 27 | }); 28 | 29 | @override 30 | Widget build(BuildContext context) { 31 | return Container( 32 | height: radius+25, 33 | width: radius+25, 34 | child: TweenAnimationBuilder( 35 | tween: Tween(begin: 0, end: value), 36 | duration: Duration(seconds: 1), 37 | builder: (ctx, value, _) { 38 | return Stack( 39 | alignment: Alignment.center, 40 | children: [ 41 | Transform.rotate( 42 | angle: -pi / 2, 43 | child: CustomPaint( 44 | painter: MyPainter( 45 | angle: 2*pi*value, 46 | innerCircleColor: dialColorData.innerCircleColor, 47 | gradientStartColor: dialColorData.gradientStartColor, 48 | gradientEndColor: dialColorData.gradientEndColor 49 | ), 50 | size: Size(radius,radius), 51 | ), 52 | ), 53 | Text( 54 | "${getNewValue(value)}%", 55 | style: TextStyle( 56 | fontSize: 16, 57 | fontWeight: FontWeight.bold, 58 | color: dialColorData.labelColor 59 | ), 60 | ), 61 | Align( 62 | alignment: Alignment( 63 | cos(2*pi*value-pi/2), 64 | sin(2*pi*value-pi/2) 65 | ), 66 | child: Card( 67 | elevation: 10, 68 | shape: BeveledRectangleBorder( 69 | borderRadius: BorderRadius.circular(10), 70 | ), 71 | child: Container( 72 | width: 17, 73 | height: 17, 74 | decoration: BoxDecoration( 75 | color: dialColorData.gradientEndColor, 76 | border: Border.all(color: Colors.white, width: 4), 77 | shape: BoxShape.circle, 78 | ), 79 | ), 80 | ), 81 | ) 82 | ], 83 | ); 84 | } 85 | ), 86 | ); 87 | } 88 | } 89 | String getNewValue(double value){ 90 | double val = value*100; 91 | return val.toStringAsPrecision(3); 92 | } 93 | class MyPainter extends CustomPainter { 94 | double angle; 95 | Color gradientStartColor; 96 | Color gradientEndColor; 97 | Color innerCircleColor; 98 | 99 | SweepGradient sweepGradient; 100 | MyPainter({ 101 | this.angle, 102 | this.gradientStartColor, 103 | this.gradientEndColor, 104 | this.innerCircleColor 105 | }){ 106 | sweepGradient = SweepGradient( 107 | colors: [ 108 | gradientStartColor, 109 | gradientEndColor 110 | ], 111 | center: Alignment.center, 112 | startAngle: 0, 113 | endAngle: 2*pi 114 | ); 115 | } 116 | 117 | 118 | @override 119 | void paint(Canvas canvas, Size size) { 120 | Offset center = Offset(size.height / 2, size.width / 2); 121 | double radius = size.height / 2; 122 | 123 | Rect rect = Rect.fromCircle(center: center, radius: radius); 124 | Paint circle1 = Paint()..color = innerCircleColor; 125 | Paint circle2 = Paint()..color = Colors.white; 126 | 127 | Paint arc = Paint() 128 | ..isAntiAlias = true 129 | ..style = PaintingStyle.stroke 130 | ..strokeCap = StrokeCap.round 131 | ..strokeWidth = 5 132 | ..shader = sweepGradient.createShader(rect); 133 | 134 | canvas.drawCircle(center, radius, circle1); 135 | canvas.drawCircle(center, radius / 2, circle2); 136 | 137 | canvas.drawArc(Rect.fromCircle(center: center, radius: radius), 0, angle, false, arc); 138 | } 139 | 140 | @override 141 | bool shouldRepaint(MyPainter oldDelegate) { 142 | return oldDelegate.angle!=angle; 143 | } 144 | } -------------------------------------------------------------------------------- /lib/screens/details_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:provider/provider.dart'; 3 | 4 | //providers 5 | import '../providers/country_details_provider.dart'; 6 | 7 | //loading screen 8 | import 'loading_screen.dart'; 9 | 10 | //widgets 11 | import '../widgets/details_screen_top_bar.dart'; 12 | import '../widgets/details_screen_case_type_bar.dart'; 13 | import '../widgets/details_screen_graph.dart'; 14 | import '../widgets/top_country_bar.dart'; 15 | import '../section/top_country_list.dart'; 16 | import '../widgets/graph_loader.dart'; 17 | 18 | Map> graphColor = { 19 | 'confirmed' : { 20 | 'lineColor' : Color(0xff44b1a0), 21 | 'gradientStart' : Color(0xff74e3cf) 22 | }, 23 | 'deaths' : { 24 | 'lineColor': Color(0xffff606c), 25 | 'gradientStart': Color(0xffdb6e71) 26 | }, 27 | 'recovered' : { 28 | 'lineColor' : Color(0xff6078ff), 29 | 'gradientStart': Color(0xff6678d1), 30 | } 31 | }; 32 | 33 | class DetailsScreen extends StatefulWidget { 34 | static const routeName = '/details_screen'; 35 | @override 36 | _DetailsScreenState createState() => _DetailsScreenState(); 37 | } 38 | 39 | class _DetailsScreenState extends State { 40 | Map routeData; 41 | String currentGraphCaseType = 'confirmed'; 42 | bool isGraphLoading = false; 43 | @override 44 | void initState() { 45 | super.initState(); 46 | } 47 | 48 | void changeCaseType(String caseType,BuildContext ctx) async{ 49 | setState(() { 50 | currentGraphCaseType = caseType; 51 | isGraphLoading = true; 52 | }); 53 | await Provider.of(ctx,listen: false).initData(caseType); 54 | setState(() { 55 | isGraphLoading = false; 56 | }); 57 | } 58 | 59 | @override 60 | Widget build(BuildContext context) { 61 | routeData = ModalRoute.of(context).settings.arguments as Map; 62 | double width = MediaQuery.of(context).size.width; 63 | return ChangeNotifierProvider( 64 | create: (ctx)=>CountryDetailsProvider( 65 | slug: routeData['slug'], 66 | country: routeData['country'], 67 | code : routeData['code'], 68 | ), 69 | lazy: false, 70 | child: Scaffold( 71 | backgroundColor: Color(0xff008e7b), 72 | body: Consumer( 73 | builder: (ctx,consumer,_){ 74 | if(consumer.isIniting){ 75 | return LoadingScreen(); 76 | } 77 | return SingleChildScrollView( 78 | child:Column( 79 | children: [ 80 | DetailsScreenTopBar( 81 | count: consumer.getCount, 82 | country: consumer.country, 83 | isIncreasing: consumer.isIncreasing, 84 | code : consumer.getCountryCode, 85 | ), 86 | Container( 87 | padding: EdgeInsets.fromLTRB(0, 15, 0, 30), 88 | decoration: BoxDecoration( 89 | color: Colors.white, 90 | borderRadius: BorderRadius.vertical(top: Radius.circular(30)) 91 | ), 92 | child: Column( 93 | children: [ 94 | DetailsScreenCaseTypebar( 95 | caseType: currentGraphCaseType, 96 | onChange: changeCaseType, 97 | ), 98 | SizedBox(height: 20,), 99 | isGraphLoading ? GraphLoader() : 100 | consumer.points.length==0? 101 | Container( 102 | height:230, 103 | width:width, 104 | alignment : Alignment.center, 105 | child : Text( 106 | "No $currentGraphCaseType cases till now.", 107 | style : TextStyle(fontSize:20) 108 | ) 109 | ) : 110 | DetailsScreenGraph( 111 | height: 230, 112 | width: width, 113 | points: consumer.points, 114 | colors: graphColor[currentGraphCaseType], 115 | ), 116 | TopCountryBar(), 117 | SizedBox(height: 5,), 118 | TopCountryList() 119 | ], 120 | ), 121 | ) 122 | ], 123 | ), 124 | ); 125 | }, 126 | ), 127 | ), 128 | ); 129 | } 130 | } -------------------------------------------------------------------------------- /lib/screens/credit_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:package_info/package_info.dart'; 3 | import 'package:url_launcher/url_launcher.dart'; 4 | 5 | import 'package:corona_virus/screens/loading_screen.dart'; 6 | 7 | 8 | class CreditScreen extends StatefulWidget { 9 | @override 10 | _CreditScreenState createState() => _CreditScreenState(); 11 | } 12 | 13 | class _CreditScreenState extends State { 14 | PackageInfo packageInfo; 15 | bool gotInfo = false; 16 | 17 | @override 18 | void initState() { 19 | super.initState(); 20 | info(); 21 | } 22 | 23 | void gitHub() async { 24 | const url = 'https://github.com/noobcoder17/covid-19'; 25 | if (await canLaunch(url)) { 26 | await launch(url, forceSafariVC: false,); 27 | } else { 28 | throw 'Could not launch $url'; 29 | } 30 | } 31 | 32 | void info() async { 33 | packageInfo = await PackageInfo.fromPlatform(); 34 | setState(() { 35 | gotInfo=true; 36 | }); 37 | } 38 | void licenses(BuildContext ctx){ 39 | showAboutDialog( 40 | context: ctx, 41 | applicationIcon: Image.asset('assets/logo.png',height: 60,), 42 | applicationName: "COVID-19", 43 | applicationLegalese: "@All Copyright Reserved", 44 | applicationVersion: packageInfo.version, 45 | children: [ 46 | 47 | ] 48 | ); 49 | } 50 | 51 | @override 52 | Widget build(BuildContext context) { 53 | if(gotInfo==false){ 54 | return LoadingScreen(); 55 | } 56 | return Container( 57 | padding: EdgeInsets.fromLTRB(30,50,30,30), 58 | child: Column( 59 | mainAxisAlignment: MainAxisAlignment.spaceBetween, 60 | children: [ 61 | Column( 62 | crossAxisAlignment: CrossAxisAlignment.center, 63 | mainAxisSize: MainAxisSize.min, 64 | children: [ 65 | Image.asset('assets/logo.png',height: 110,), 66 | SizedBox(height: 15,), 67 | Text( 68 | "COVID-19", 69 | style: TextStyle( 70 | color: Color(0xff057163), 71 | fontWeight: FontWeight.w600, 72 | fontSize: 24 73 | ), 74 | ), 75 | Text("Version ${packageInfo.version}",style: TextStyle(color: Color(0xff057163)),), 76 | SizedBox(height: 20,), 77 | OutlineButton( 78 | borderSide: BorderSide(color: Color(0xff026c5d)), 79 | splashColor: Color(0xffe9f4f3), 80 | highlightColor: Color(0xffe9f4f3), 81 | textColor: Color(0xff026c5d), 82 | child: Text("License"), 83 | onPressed:(){licenses(context);}, 84 | ), 85 | SizedBox(height: 10,), 86 | Text( 87 | "Covid-19 is an open source app made with Flutter framework to provide the status of Covid-19 pandemic all over the world. It shows all the affected, recovered and dead count for each country in a form of graph. As it is an open source app feel free to contibute in GitHub.", 88 | style: TextStyle( 89 | fontSize: 15, 90 | color: Color(0xff057163) 91 | ), 92 | textAlign: TextAlign.left, 93 | ), 94 | ], 95 | ), 96 | Column( 97 | mainAxisSize: MainAxisSize.min, 98 | crossAxisAlignment: CrossAxisAlignment.center, 99 | children: [ 100 | GestureDetector( 101 | onTap: gitHub, 102 | child: Container( 103 | padding: EdgeInsets.all(10), 104 | child: Row( 105 | mainAxisAlignment: MainAxisAlignment.center, 106 | children: [ 107 | Image.asset('assets/github.png',height: 25,), 108 | SizedBox(width: 10,), 109 | Text("Fork the project on GitHub",style: TextStyle(fontSize: 20),), 110 | SizedBox(width: 5,), 111 | Icon(Icons.link) 112 | ], 113 | ), 114 | ), 115 | ), 116 | Row( 117 | mainAxisAlignment: MainAxisAlignment.center, 118 | children: [ 119 | Text("Made with "), 120 | Icon(Icons.favorite,color: Colors.red,size: 16,), 121 | Text(" by "), 122 | Text("Akash Debnath",style: TextStyle(fontWeight: FontWeight.bold),) 123 | ], 124 | ) 125 | ], 126 | ), 127 | ], 128 | ), 129 | ); 130 | } 131 | } -------------------------------------------------------------------------------- /lib/widgets/country_list_item.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'dart:math'; 3 | import 'package:intl/intl.dart'; 4 | 5 | //screens 6 | import '../screens/details_screen.dart'; 7 | 8 | class ItemColorData{ 9 | final Color backgroundColor; 10 | final Color lineColor; 11 | final Color gradientColor; 12 | 13 | ItemColorData({this.backgroundColor, this.lineColor, this.gradientColor}); 14 | } 15 | 16 | class CountryListItem extends StatelessWidget { 17 | final formatter = new NumberFormat("#,###"); 18 | final double height; 19 | final ItemColorData itemColorData; 20 | final bool isIncreasing; 21 | final String countryName; 22 | final String countrySlug; 23 | final String countryCode; 24 | final String flagPath; 25 | final int value; 26 | final List last7DayCases; 27 | 28 | CountryListItem({ 29 | this.height, 30 | this.countryName, 31 | this.countrySlug, 32 | this.countryCode, 33 | this.itemColorData, 34 | this.flagPath, 35 | this.isIncreasing=false, 36 | this.value, 37 | this.last7DayCases 38 | }); 39 | 40 | 41 | @override 42 | Widget build(BuildContext context) { 43 | double width = height*(2/3); 44 | Size size = Size(width, height/2); 45 | return GestureDetector( 46 | onTap: (){ 47 | Navigator.of(context).pushNamed( 48 | DetailsScreen.routeName, 49 | arguments: { 50 | 'slug' : countrySlug, 51 | 'country' : countryName, 52 | 'code' : countryCode 53 | } 54 | ); 55 | }, 56 | child: Container( 57 | margin: EdgeInsets.symmetric(horizontal: 12), 58 | width: width, 59 | decoration: BoxDecoration( 60 | color: itemColorData.backgroundColor, 61 | borderRadius: BorderRadius.circular(20) 62 | ), 63 | child: Stack( 64 | children: [ 65 | Align( 66 | alignment: Alignment(0,1), 67 | child: 68 | ClipPath( 69 | clipper: GradientBoxClipper(), 70 | child: 71 | Container( 72 | height: size.height, 73 | decoration: BoxDecoration( 74 | borderRadius: BorderRadius.vertical(bottom: Radius.circular(20)), 75 | gradient: LinearGradient( 76 | colors: [ 77 | itemColorData.gradientColor, 78 | itemColorData.backgroundColor, 79 | ], 80 | begin: Alignment.topCenter, 81 | end: Alignment.bottomCenter 82 | ) 83 | ), 84 | ), 85 | ), 86 | ), 87 | Align( 88 | alignment: Alignment(0,1), 89 | child: CustomPaint( 90 | painter: CustomLinePainter( 91 | color: itemColorData.lineColor, 92 | lineWidth: 1 93 | ), 94 | size: Size(size.width,size.height), 95 | ), 96 | ), 97 | Align( 98 | alignment: Alignment(0,-0.6), 99 | child: Column( 100 | mainAxisSize: MainAxisSize.min, 101 | children: [ 102 | //Image.asset('assets/usa_flag.png',width: 30,), 103 | Image.asset(flagPath,width: 30,), 104 | SizedBox(height: 10,), 105 | Text(countryName,style: TextStyle(color: Colors.white,fontWeight: FontWeight.w500),textAlign: TextAlign.center,), 106 | SizedBox(height: 6,), 107 | Row( 108 | mainAxisAlignment: MainAxisAlignment.center, 109 | children: [ 110 | Text(formatter.format(value),style: TextStyle(color: Colors.white,fontSize: 22,fontWeight: FontWeight.w500),), 111 | SizedBox(width: 3,), 112 | Transform.rotate(angle: isIncreasing? pi/4 : (pi/4)*3,child: Icon(Icons.arrow_upward,color: Colors.white,size: 15,)) 113 | ], 114 | ) 115 | ], 116 | ), 117 | ) 118 | ], 119 | ), 120 | ), 121 | ); 122 | } 123 | } 124 | 125 | Path getClip(Size size) { 126 | double width = size.width; 127 | double height = size.height; 128 | Path path = Path(); 129 | path.moveTo(0, height/2); 130 | path.lineTo(width*0.65, height*0.30); 131 | path.lineTo(width, 0); 132 | return path; 133 | } 134 | 135 | class CustomLinePainter extends CustomPainter { 136 | final Color color; 137 | final double lineWidth; 138 | CustomLinePainter({this.color,this.lineWidth}); 139 | @override 140 | void paint(Canvas canvas, Size size) { 141 | Paint path = Paint()..color=color..strokeWidth=lineWidth..style=PaintingStyle.stroke; 142 | canvas.drawPath(getClip(size), path); 143 | } 144 | 145 | @override 146 | bool shouldRepaint(CustomPainter oldDelegate) { 147 | return false; 148 | } 149 | 150 | } 151 | 152 | class GradientBoxClipper extends CustomClipper{ 153 | @override 154 | Path getClip(Size size) { 155 | double width = size.width; 156 | double height = size.height; 157 | Path path = Path(); 158 | path.moveTo(0, height/2); 159 | path.lineTo(0, height); 160 | path.lineTo(width,height); 161 | path.lineTo(width, 0); 162 | path.lineTo(width*0.65, height*0.30); 163 | path.close(); 164 | return path; 165 | } 166 | 167 | @override 168 | bool shouldReclip(CustomClipper oldClipper) { 169 | return false; 170 | } 171 | 172 | } 173 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | archive: 5 | dependency: transitive 6 | description: 7 | name: archive 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.0.11" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.5.2" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.4.0" 25 | boolean_selector: 26 | dependency: transitive 27 | description: 28 | name: boolean_selector 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.0.5" 32 | charcode: 33 | dependency: transitive 34 | description: 35 | name: charcode 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.2" 39 | collection: 40 | dependency: transitive 41 | description: 42 | name: collection 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.14.11" 46 | convert: 47 | dependency: transitive 48 | description: 49 | name: convert 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "2.1.1" 53 | crypto: 54 | dependency: transitive 55 | description: 56 | name: crypto 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "2.1.3" 60 | cupertino_icons: 61 | dependency: "direct main" 62 | description: 63 | name: cupertino_icons 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "0.1.3" 67 | flutter: 68 | dependency: "direct main" 69 | description: flutter 70 | source: sdk 71 | version: "0.0.0" 72 | flutter_launcher_icons: 73 | dependency: "direct main" 74 | description: 75 | name: flutter_launcher_icons 76 | url: "https://pub.dartlang.org" 77 | source: hosted 78 | version: "0.7.4" 79 | flutter_test: 80 | dependency: "direct dev" 81 | description: flutter 82 | source: sdk 83 | version: "0.0.0" 84 | flutter_web_plugins: 85 | dependency: transitive 86 | description: flutter 87 | source: sdk 88 | version: "0.0.0" 89 | http: 90 | dependency: "direct main" 91 | description: 92 | name: http 93 | url: "https://pub.dartlang.org" 94 | source: hosted 95 | version: "0.12.0+4" 96 | http_parser: 97 | dependency: transitive 98 | description: 99 | name: http_parser 100 | url: "https://pub.dartlang.org" 101 | source: hosted 102 | version: "3.1.4" 103 | image: 104 | dependency: transitive 105 | description: 106 | name: image 107 | url: "https://pub.dartlang.org" 108 | source: hosted 109 | version: "2.1.4" 110 | intl: 111 | dependency: "direct main" 112 | description: 113 | name: intl 114 | url: "https://pub.dartlang.org" 115 | source: hosted 116 | version: "0.16.1" 117 | matcher: 118 | dependency: transitive 119 | description: 120 | name: matcher 121 | url: "https://pub.dartlang.org" 122 | source: hosted 123 | version: "0.12.6" 124 | meta: 125 | dependency: transitive 126 | description: 127 | name: meta 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "1.1.8" 131 | nested: 132 | dependency: transitive 133 | description: 134 | name: nested 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "0.0.4" 138 | package_info: 139 | dependency: "direct main" 140 | description: 141 | name: package_info 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "0.4.0+16" 145 | path: 146 | dependency: transitive 147 | description: 148 | name: path 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "1.6.4" 152 | pedantic: 153 | dependency: transitive 154 | description: 155 | name: pedantic 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "1.8.0+1" 159 | petitparser: 160 | dependency: transitive 161 | description: 162 | name: petitparser 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "2.4.0" 166 | plugin_platform_interface: 167 | dependency: transitive 168 | description: 169 | name: plugin_platform_interface 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "1.0.2" 173 | provider: 174 | dependency: "direct main" 175 | description: 176 | name: provider 177 | url: "https://pub.dartlang.org" 178 | source: hosted 179 | version: "4.0.4" 180 | quiver: 181 | dependency: transitive 182 | description: 183 | name: quiver 184 | url: "https://pub.dartlang.org" 185 | source: hosted 186 | version: "2.0.5" 187 | sky_engine: 188 | dependency: transitive 189 | description: flutter 190 | source: sdk 191 | version: "0.0.99" 192 | source_span: 193 | dependency: transitive 194 | description: 195 | name: source_span 196 | url: "https://pub.dartlang.org" 197 | source: hosted 198 | version: "1.5.5" 199 | stack_trace: 200 | dependency: transitive 201 | description: 202 | name: stack_trace 203 | url: "https://pub.dartlang.org" 204 | source: hosted 205 | version: "1.9.3" 206 | stream_channel: 207 | dependency: transitive 208 | description: 209 | name: stream_channel 210 | url: "https://pub.dartlang.org" 211 | source: hosted 212 | version: "2.0.0" 213 | string_scanner: 214 | dependency: transitive 215 | description: 216 | name: string_scanner 217 | url: "https://pub.dartlang.org" 218 | source: hosted 219 | version: "1.0.5" 220 | term_glyph: 221 | dependency: transitive 222 | description: 223 | name: term_glyph 224 | url: "https://pub.dartlang.org" 225 | source: hosted 226 | version: "1.1.0" 227 | test_api: 228 | dependency: transitive 229 | description: 230 | name: test_api 231 | url: "https://pub.dartlang.org" 232 | source: hosted 233 | version: "0.2.11" 234 | typed_data: 235 | dependency: transitive 236 | description: 237 | name: typed_data 238 | url: "https://pub.dartlang.org" 239 | source: hosted 240 | version: "1.1.6" 241 | url_launcher: 242 | dependency: "direct main" 243 | description: 244 | name: url_launcher 245 | url: "https://pub.dartlang.org" 246 | source: hosted 247 | version: "5.4.2" 248 | url_launcher_macos: 249 | dependency: transitive 250 | description: 251 | name: url_launcher_macos 252 | url: "https://pub.dartlang.org" 253 | source: hosted 254 | version: "0.0.1+4" 255 | url_launcher_platform_interface: 256 | dependency: transitive 257 | description: 258 | name: url_launcher_platform_interface 259 | url: "https://pub.dartlang.org" 260 | source: hosted 261 | version: "1.0.6" 262 | url_launcher_web: 263 | dependency: transitive 264 | description: 265 | name: url_launcher_web 266 | url: "https://pub.dartlang.org" 267 | source: hosted 268 | version: "0.1.1+1" 269 | vector_math: 270 | dependency: transitive 271 | description: 272 | name: vector_math 273 | url: "https://pub.dartlang.org" 274 | source: hosted 275 | version: "2.0.8" 276 | xml: 277 | dependency: transitive 278 | description: 279 | name: xml 280 | url: "https://pub.dartlang.org" 281 | source: hosted 282 | version: "3.5.0" 283 | yaml: 284 | dependency: transitive 285 | description: 286 | name: yaml 287 | url: "https://pub.dartlang.org" 288 | source: hosted 289 | version: "2.2.0" 290 | sdks: 291 | dart: ">=2.5.0 <3.0.0" 292 | flutter: ">=1.12.8 <2.0.0" 293 | -------------------------------------------------------------------------------- /lib/values/country_flag_codes.dart: -------------------------------------------------------------------------------- 1 | // Map flagCodes = { 2 | // "Andorra": "AD", 3 | // "United Arab Emirates": "AE", 4 | // "Afghanistan": "AF", 5 | // "Antigua and Barbuda": "AG", 6 | // "Anguilla": "AI", 7 | // "Albania": "AL", 8 | // "Armenia": "AM", 9 | // "Netherlands Antilles": "AN", 10 | // "Angola": "AO", 11 | // "Antarctica": "AQ", 12 | // "Argentina": "AR", 13 | // "American Samoa": "AS", 14 | // "Austria": "AT", 15 | // "Australia": "AU", 16 | // "Aruba": "AW", 17 | // "Åland Islands": "AX", 18 | // "Azerbaijan": "AZ", 19 | // "Azerbaijan": "AZ", 20 | // "Bosnia and Herzegovina": "BA", 21 | // "Barbados": "BB", 22 | // "Bangladesh": "BD", 23 | // "Belgium": "BE", 24 | // "Burkina Faso": "BF", 25 | // "Bulgaria": "BG", 26 | // "Bahrain": "BH", 27 | // "Burundi": "BI", 28 | // "Benin": "BJ", 29 | // "Saint Barthelemy": "BL", 30 | // "Saint Barthélemy": "BL", 31 | // "Bermuda": "BM", 32 | // //"Brunei Darussalam": "BN", 33 | // "Brunei": "BN", 34 | // //"Bolivia, Plurinational State of": "BO", 35 | // "Bolivia": "BO", 36 | // "Caribbean Netherlands": "BQ", 37 | // "Brazil": "BR", 38 | // "Bahamas": "BS", 39 | // "Bahamas, The": "BS", 40 | // "The Bahamas": "BS", 41 | // "Bhutan": "BT", 42 | // "Bouvet Island": "BV", 43 | // "Botswana": "BW", 44 | // "Belarus": "BY", 45 | // "Belize": "BZ", 46 | // "Canada": "CA", 47 | // "Cocos (Keeling) Islands": "CC", 48 | // "Congo, the Democratic Republic of the": "CD", 49 | // "Congo (Brazzaville)": "CD", 50 | // "Republic of the Congo": "CD", 51 | // "Central African Republic": "CF", 52 | // "Congo": "CG", 53 | // "Congo (Kinshasa)": "CG", 54 | // "Switzerland": "CH", 55 | // "Côte d'Ivoire": "CI", 56 | // "Cote d'Ivoire": "CI", 57 | // "Ivory Coast": "CI", 58 | // "Cook Islands": "CK", 59 | // "Chile": "CL", 60 | // "Cameroon": "CM", 61 | // "China": "CN", 62 | // "Colombia": "CO", 63 | // "Costa Rica": "CR", 64 | // "Cuba": "CU", 65 | // "Cape Verde": "CV", 66 | // "Cabo Verde": "CV", 67 | // "Curaçao": "CW", 68 | // "Curacao": "CW", 69 | // "Christmas Island": "CX", 70 | // "Cyprus": "CY", 71 | // "Czech Republic": "CZ", 72 | // "Czechia": "CZ", 73 | // "Germany": "DE", 74 | // "Djibouti": "DJ", 75 | // "Denmark": "DK", 76 | // "Dominica": "DM", 77 | // "Dominican Republic": "DO", 78 | // "Algeria": "DZ", 79 | // "Ecuador": "EC", 80 | // "Estonia": "EE", 81 | // "Egypt": "EG", 82 | // "Western Sahara": "EH", 83 | // "Eritrea": "ER", 84 | // "Spain": "ES", 85 | // "Ethiopia": "ET", 86 | // "Europe": "EU", 87 | // "Finland": "FI", 88 | // "Fiji": "FJ", 89 | // "Falkland Islands (Malvinas)": "FK", 90 | // "Micronesia, Federated States of": "FM", 91 | // "Faroe Islands": "FO", 92 | // "France": "FR", 93 | // "Gabon": "GA", 94 | // "England": "GB-ENG", 95 | // "Diamond Princess": "GB-ENG", 96 | // "Northern Ireland": "GB-NIR", 97 | // "North Ireland": "GB-NIR", 98 | // "Scotland": "GB-SCT", 99 | // "Wales": "GB-WLS", 100 | // "United Kingdom": "GB", 101 | // "Grenada": "GD", 102 | // "Georgia": "GE", 103 | // "French Guiana": "GF", 104 | // "Guernsey": "GG", 105 | // "Ghana": "GH", 106 | // "Gibraltar": "GI", 107 | // "Greenland": "GL", 108 | // "Gambia": "GM", 109 | // "The Gambia": "GM", 110 | // "Gambia, The": "GM", 111 | // "Guinea": "GN", 112 | // "Guadeloupe": "GP", 113 | // "Equatorial Guinea": "GQ", 114 | // "Greece": "GR", 115 | // "South Georgia and the South Sandwich Islands": "GS", 116 | // "Guatemala": "GT", 117 | // "Guam": "GU", 118 | // "Guinea-Bissau": "GW", 119 | // "Guyana": "GY", 120 | // "Hong Kong": "HK", 121 | // "Hong Kong SAR": "HK", 122 | // "Heard Island and McDonald Islands": "HM", 123 | // "Honduras": "HN", 124 | // "Croatia": "HR", 125 | // "Haiti": "HT", 126 | // "Hungary": "HU", 127 | // "Indonesia": "ID", 128 | // "Ireland": "IE", 129 | // "Republic of Ireland": "IE", 130 | // "Israel": "IL", 131 | // "occupied Palestinian territory": "IL", 132 | // "Isle of Man": "IM", 133 | // "India": "IN", 134 | // "British Indian Ocean Territory": "IO", 135 | // "Iraq": "IQ", 136 | // "Iran (Islamic Republic of)": "IR", 137 | // "Iran": "IR", 138 | // "Iceland": "IS", 139 | // "Italy": "IT", 140 | // "Jersey": "JE", 141 | // "Cruise Ship" : "AQ", 142 | // "Channel Islands": "JE", 143 | // "Jamaica": "JM", 144 | // "Jordan": "JO", 145 | // "Japan": "JP", 146 | // "Kenya": "KE", 147 | // "Kyrgyzstan": "KG", 148 | // "Cambodia": "KH", 149 | // "Kiribati": "KI", 150 | // "Comoros": "KM", 151 | // "Saint Kitts and Nevis": "KN", 152 | // "Korea, Democratic People's Republic of": "KP", 153 | // "Republic of Korea": "KP", 154 | // "Korea, Republic of": "KR", 155 | // "Korea, South": "KR", 156 | // "South Korea": "KR", 157 | // "Kuwait": "KW", 158 | // "Cayman Islands": "KY", 159 | // "Kazakhstan": "KZ", 160 | // "Lao People's Democratic Republic": "LA", 161 | // "Laos": "LA", 162 | // "Lebanon": "LB", 163 | // "Saint Lucia": "LC", 164 | // "Liechtenstein": "LI", 165 | // "Sri Lanka": "LK", 166 | // "Liberia": "LR", 167 | // "Lesotho": "LS", 168 | // "Lithuania": "LT", 169 | // "Luxembourg": "LU", 170 | // "Latvia": "LV", 171 | // "Libya": "LY", 172 | // "Morocco": "MA", 173 | // "Monaco": "MC", 174 | // "Moldova, Republic of": "MD", 175 | // "Republic of Moldova": "MD", 176 | // "Moldova": "MD", 177 | // "Montenegro": "ME", 178 | // "Saint Martin": "MF", 179 | // "St. Martin": "MF", 180 | // "Madagascar": "MG", 181 | // "Marshall Islands": "MH", 182 | // "Macedonia, the former Yugoslav Republic of": "MK", 183 | // "North Macedonia": "MK", 184 | // "Mali": "ML", 185 | // "Myanmar": "MM", 186 | // "Burma": "MM", 187 | // "Mongolia": "MN", 188 | // "Macao": "MO", 189 | // "Macau": "MO", 190 | // "Macao SAR": "MO", 191 | // "Northern Mariana Islands": "MP", 192 | // "Martinique": "MQ", 193 | // "Mauritania": "MR", 194 | // "Montserrat": "MS", 195 | // "Malta": "MT", 196 | // "Mauritius": "MU", 197 | // "Maldives": "MV", 198 | // "Malawi": "MW", 199 | // "Mexico": "MX", 200 | // "Malaysia": "MY", 201 | // "Mozambique": "MZ", 202 | // "Namibia": "NA", 203 | // "New Caledonia": "NC", 204 | // "Niger": "NE", 205 | // "Norfolk Island": "NF", 206 | // "Nigeria": "NG", 207 | // "Nicaragua": "NI", 208 | // "Netherlands": "NL", 209 | // "MS Zaandam": "NL", 210 | // "Norway": "NO", 211 | // "Nepal": "NP", 212 | // "Nauru": "NR", 213 | // "Niue": "NU", 214 | // "New Zealand": "NZ", 215 | // "Oman": "OM", 216 | // "Panama": "PA", 217 | // "Peru": "PE", 218 | // "French Polynesia": "PF", 219 | // "Papua New Guinea": "PG", 220 | // "Philippines": "PH", 221 | // "Pakistan": "PK", 222 | // "Poland": "PL", 223 | // "Saint Pierre and Miquelon": "PM", 224 | // "Pitcairn": "PN", 225 | // "Puerto Rico": "PR", 226 | // "Palestine": "PS", 227 | // "West Bank and Gaza": "PS", 228 | // "Portugal": "PT", 229 | // "Palau": "PW", 230 | // "Paraguay": "PY", 231 | // "Qatar": "QA", 232 | // "Réunion": "RE", 233 | // "Reunion": "RE", 234 | // "Romania": "RO", 235 | // "Serbia": "RS", 236 | // "Russian Federation": "RU", 237 | // "Russia": "RU", 238 | // "Rwanda": "RW", 239 | // "Saudi Arabia": "SA", 240 | // "Solomon Islands": "SB", 241 | // "Seychelles": "SC", 242 | // "Sudan": "SD", 243 | // "Sweden": "SE", 244 | // "Singapore": "SG", 245 | // "Saint Helena, Ascension and Tristan da Cunha": "SH", 246 | // "Slovenia": "SI", 247 | // "Svalbard and Jan Mayen Islands": "SJ", 248 | // "Slovakia": "SK", 249 | // "Sierra Leone": "SL", 250 | // "San Marino": "SM", 251 | // "Senegal": "SN", 252 | // "Somalia": "SO", 253 | // "Suriname": "SR", 254 | // "South Sudan": "SS", 255 | // "Sao Tome and Principe": "ST", 256 | // "El Salvador": "SV", 257 | // "Sint Maarten (Dutch part)": "SX", 258 | // "Syrian Arab Republic": "SY", 259 | // "Syria": "SY", 260 | // "Swaziland": "SZ", 261 | // "Turks and Caicos Islands": "TC", 262 | // "Chad": "TD", 263 | // "French Southern Territories": "TF", 264 | // "Togo": "TG", 265 | // "Thailand": "TH", 266 | // "Tajikistan": "TJ", 267 | // "Tokelau": "TK", 268 | // "Timor-Leste": "TL", 269 | // "East Timor": "TL", 270 | // "Turkmenistan": "TM", 271 | // "Tunisia": "TN", 272 | // "Tonga": "TO", 273 | // "Turkey": "TR", 274 | // "Trinidad and Tobago": "TT", 275 | // "Tuvalu": "TV", 276 | // "Taiwan": "TW", 277 | // "Taiwan*": "TW", 278 | // "Taipei and environs": "TW", 279 | // "Tanzania, United Republic of": "TZ", 280 | // "Tanzania": "TZ", 281 | // "Ukraine": "UA", 282 | // "Uganda": "UG", 283 | // "US Minor Outlying Islands": "UM", 284 | // "United States": "US", 285 | // "US": "US", 286 | // "Uruguay": "UY", 287 | // "Uzbekistan": "UZ", 288 | // "Holy See (Vatican City State)": "VA", 289 | // "Vatican City": "VA", 290 | // "Holy See": "VA", 291 | // "Saint Vincent and the Grenadines": "VC", 292 | // "Venezuela, Bolivarian Republic of": "VE", 293 | // "Venezuela": "VE", 294 | // "Virgin Islands, British": "VG", 295 | // "Virgin Islands, U.S.": "VI", 296 | // "Viet Nam": "VN", 297 | // "Vietnam": "VN", 298 | // "Vanuatu": "VU", 299 | // "Wallis and Futuna Islands": "WF", 300 | // "Kosovo": "XK", 301 | // "Samoa": "WS", 302 | // "Yemen": "YE", 303 | // "Mayotte": "YT", 304 | // "South Africa": "ZA", 305 | // "Eswatini": "ZA", 306 | // "Zambia": "ZM", 307 | // "Zimbabwe": "ZW", 308 | // "Others" : "AQ" 309 | // }; 310 | 311 | Map flagCodes = { 312 | "AD": "Andorra", 313 | "AE": "United Arab Emirates", 314 | "AF": "Afghanistan", 315 | "AG": "Antigua and Barbuda", 316 | "AI": "Anguilla", 317 | "AL": "Albania", 318 | "AM": "Armenia", 319 | "AN": "Netherlands Antilles", 320 | "AO": "Angola", 321 | "AQ": "Antarctica", 322 | "AR": "Argentina", 323 | "AS": "American Samoa", 324 | "AT": "Austria", 325 | "AU": "Australia", 326 | "AW": "Aruba", 327 | "AX": "\u00c5land Islands", 328 | "AZ": "Azerbaijan", 329 | "BA": "Bosnia and Herzegovina", 330 | "BB": "Barbados", 331 | "BD": "Bangladesh", 332 | "BE": "Belgium", 333 | "BF": "Burkina Faso", 334 | "BG": "Bulgaria", 335 | "BH": "Bahrain", 336 | "BI": "Burundi", 337 | "BJ": "Benin", 338 | "BL": "Saint Barthélemy", 339 | "BM": "Bermuda", 340 | "BN": "Brunei Darussalam", 341 | "BO": "Bolivia, Plurinational State of", 342 | "BQ": "Caribbean Netherlands", 343 | "BR": "Brazil", 344 | "BS": "Bahamas", 345 | "BT": "Bhutan", 346 | "BV": "Bouvet Island", 347 | "BW": "Botswana", 348 | "BY": "Belarus", 349 | "BZ": "Belize", 350 | "CA": "Canada", 351 | "CC": "Cocos (Keeling) Islands", 352 | "CD": "Congo, the Democratic Republic of the", 353 | "CF": "Central African Republic", 354 | "CG": "Congo", 355 | "CH": "Switzerland", 356 | "CI": "C\u00f4te d'Ivoire", 357 | "CK": "Cook Islands", 358 | "CL": "Chile", 359 | "CM": "Cameroon", 360 | "CN": "China", 361 | "CO": "Colombia", 362 | "CR": "Costa Rica", 363 | "CU": "Cuba", 364 | "CV": "Cape Verde", 365 | "CW": "Cura\u00e7ao", 366 | "CX": "Christmas Island", 367 | "CY": "Cyprus", 368 | "CZ": "Czech Republic", 369 | "DE": "Germany", 370 | "DJ": "Djibouti", 371 | "DK": "Denmark", 372 | "DM": "Dominica", 373 | "DO": "Dominican Republic", 374 | "DZ": "Algeria", 375 | "EC": "Ecuador", 376 | "EE": "Estonia", 377 | "EG": "Egypt", 378 | "EH": "Western Sahara", 379 | "ER": "Eritrea", 380 | "ES": "Spain", 381 | "ET": "Ethiopia", 382 | "EU": "Europe", 383 | "FI": "Finland", 384 | "FJ": "Fiji", 385 | "FK": "Falkland Islands (Malvinas)", 386 | "FM": "Micronesia, Federated States of", 387 | "FO": "Faroe Islands", 388 | "FR": "France", 389 | "GA": "Gabon", 390 | "GB-ENG": "England", 391 | "GB-NIR": "Northern Ireland", 392 | "GB-SCT": "Scotland", 393 | "GB-WLS": "Wales", 394 | "GB": "United Kingdom", 395 | "GD": "Grenada", 396 | "GE": "Georgia", 397 | "GF": "French Guiana", 398 | "GG": "Guernsey", 399 | "GH": "Ghana", 400 | "GI": "Gibraltar", 401 | "GL": "Greenland", 402 | "GM": "Gambia", 403 | "GN": "Guinea", 404 | "GP": "Guadeloupe", 405 | "GQ": "Equatorial Guinea", 406 | "GR": "Greece", 407 | "GS": "South Georgia and the South Sandwich Islands", 408 | "GT": "Guatemala", 409 | "GU": "Guam", 410 | "GW": "Guinea-Bissau", 411 | "GY": "Guyana", 412 | "HK": "Hong Kong", 413 | "HM": "Heard Island and McDonald Islands", 414 | "HN": "Honduras", 415 | "HR": "Croatia", 416 | "HT": "Haiti", 417 | "HU": "Hungary", 418 | "ID": "Indonesia", 419 | "IE": "Ireland", 420 | "IL": "Israel", 421 | "IM": "Isle of Man", 422 | "IN": "India", 423 | "IO": "British Indian Ocean Territory", 424 | "IQ": "Iraq", 425 | "IR": "Iran, Islamic Republic of", 426 | "IS": "Iceland", 427 | "IT": "Italy", 428 | "JE": "Jersey", 429 | "JM": "Jamaica", 430 | "JO": "Jordan", 431 | "JP": "Japan", 432 | "KE": "Kenya", 433 | "KG": "Kyrgyzstan", 434 | "KH": "Cambodia", 435 | "KI": "Kiribati", 436 | "KM": "Comoros", 437 | "KN": "Saint Kitts and Nevis", 438 | "KP": "Korea, Democratic People's Republic of", 439 | "KR": "Korea, Republic of", 440 | "KW": "Kuwait", 441 | "KY": "Cayman Islands", 442 | "KZ": "Kazakhstan", 443 | "LA": "Lao People's Democratic Republic", 444 | "LB": "Lebanon", 445 | "LC": "Saint Lucia", 446 | "LI": "Liechtenstein", 447 | "LK": "Sri Lanka", 448 | "LR": "Liberia", 449 | "LS": "Lesotho", 450 | "LT": "Lithuania", 451 | "LU": "Luxembourg", 452 | "LV": "Latvia", 453 | "LY": "Libya", 454 | "MA": "Morocco", 455 | "MC": "Monaco", 456 | "MD": "Moldova, Republic of", 457 | "ME": "Montenegro", 458 | "MF": "Saint Martin", 459 | "MG": "Madagascar", 460 | "MH": "Marshall Islands", 461 | "MK": "Macedonia, the former Yugoslav Republic of", 462 | "ML": "Mali", 463 | "MM": "Myanmar", 464 | "MN": "Mongolia", 465 | "MO": "Macao", 466 | "MP": "Northern Mariana Islands", 467 | "MQ": "Martinique", 468 | "MR": "Mauritania", 469 | "MS": "Montserrat", 470 | "MT": "Malta", 471 | "MU": "Mauritius", 472 | "MV": "Maldives", 473 | "MW": "Malawi", 474 | "MX": "Mexico", 475 | "MY": "Malaysia", 476 | "MZ": "Mozambique", 477 | "NA": "Namibia", 478 | "NC": "New Caledonia", 479 | "NE": "Niger", 480 | "NF": "Norfolk Island", 481 | "NG": "Nigeria", 482 | "NI": "Nicaragua", 483 | "NL": "Netherlands", 484 | "NO": "Norway", 485 | "NP": "Nepal", 486 | "NR": "Nauru", 487 | "NU": "Niue", 488 | "NZ": "New Zealand", 489 | "OM": "Oman", 490 | "PA": "Panama", 491 | "PE": "Peru", 492 | "PF": "French Polynesia", 493 | "PG": "Papua New Guinea", 494 | "PH": "Philippines", 495 | "PK": "Pakistan", 496 | "PL": "Poland", 497 | "PM": "Saint Pierre and Miquelon", 498 | "PN": "Pitcairn", 499 | "PR": "Puerto Rico", 500 | "PS": "Palestine", 501 | "PT": "Portugal", 502 | "PW": "Palau", 503 | "PY": "Paraguay", 504 | "QA": "Qatar", 505 | "RE": "Réunion", 506 | "RO": "Romania", 507 | "RS": "Serbia", 508 | "RU": "Russian Federation", 509 | "RW": "Rwanda", 510 | "SA": "Saudi Arabia", 511 | "SB": "Solomon Islands", 512 | "SC": "Seychelles", 513 | "SD": "Sudan", 514 | "SE": "Sweden", 515 | "SG": "Singapore", 516 | "SH": "Saint Helena, Ascension and Tristan da Cunha", 517 | "SI": "Slovenia", 518 | "SJ": "Svalbard and Jan Mayen Islands", 519 | "SK": "Slovakia", 520 | "SL": "Sierra Leone", 521 | "SM": "San Marino", 522 | "SN": "Senegal", 523 | "SO": "Somalia", 524 | "SR": "Suriname", 525 | "SS": "South Sudan", 526 | "ST": "Sao Tome and Principe", 527 | "SV": "El Salvador", 528 | "SX": "Sint Maarten (Dutch part)", 529 | "SY": "Syrian Arab Republic", 530 | "SZ": "Swaziland", 531 | "TC": "Turks and Caicos Islands", 532 | "TD": "Chad", 533 | "TF": "French Southern Territories", 534 | "TG": "Togo", 535 | "TH": "Thailand", 536 | "TJ": "Tajikistan", 537 | "TK": "Tokelau", 538 | "TL": "Timor-Leste", 539 | "TM": "Turkmenistan", 540 | "TN": "Tunisia", 541 | "TO": "Tonga", 542 | "TR": "Turkey", 543 | "TT": "Trinidad and Tobago", 544 | "TV": "Tuvalu", 545 | "TW": "Taiwan", 546 | "TZ": "Tanzania, United Republic of", 547 | "UA": "Ukraine", 548 | "UG": "Uganda", 549 | "UM": "US Minor Outlying Islands", 550 | "US": "United States", 551 | "UY": "Uruguay", 552 | "UZ": "Uzbekistan", 553 | "VA": "Holy See (Vatican City State)", 554 | "VC": "Saint Vincent and the Grenadines", 555 | "VE": "Venezuela, Bolivarian Republic of", 556 | "VG": "Virgin Islands, British", 557 | "VI": "Virgin Islands, U.S.", 558 | "VN": "Viet Nam", 559 | "VU": "Vanuatu", 560 | "WF": "Wallis and Futuna Islands", 561 | "XK": "Kosovo", 562 | "WS": "Samoa", 563 | "YE": "Yemen", 564 | "YT": "Mayotte", 565 | "ZA": "South Africa", 566 | "ZM": "Zambia", 567 | "ZW": "Zimbabwe" 568 | }; --------------------------------------------------------------------------------