/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 2 0 ĠOpen ĠFood ĠF acts Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġopen food facts . github . scr ach x . open food . features . shared . views Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġopen food facts . github . scr ach x . open food . R Ċ import Ġopen food facts . github . scr ach x . open food . databinding . Dialog Product Question Binding Ċ Ċ class ĠQuestion Dialog ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠDialog Product Question Binding . inflate ( LayoutInflater . from ( context )) ĊĠĠĠ Ġprivate Ġval Ġdialog Ġ= ĠDialog ( context , ĠR . style . Question Dialog ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Window Feature ( android . view . Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Amb iguity Feedback Icon Ġ= ĠResources Compat . get Drawable ( ĊĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠ ĠR . drawable . ic _ help _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠ Ġcontext . theme ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġm Amb iguity Feedback Text Ġ= Ġcontext . resources . getString ( R . string . product _ question _ amb iguous _ response ) ĊĊĠĠĠ Ġprivate Ġval Ġm Negative Feedback Icon Ġ= ĠResources Compat . get Drawable ( ĊĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠ ĠR . drawable . ic _ cancel _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠ Ġcontext . theme ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġm Negative Feedback Text Ġ= Ġcontext . resources . getString ( R . string . product _ question _ negative _ response ) ĊĊĠĠĠ Ġprivate Ġval Ġm Positive Feedback Icon Ġ= ĠResources Compat . get Drawable ( ĊĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠ ĠR . drawable . ic _ check _ circle _ black _ 2 4 dp , ĊĠĠĠĠĠĠĠ Ġcontext . theme ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġm Positive Feedback Text Ġ= Ġcontext . resources . getString ( R . string . product _ question _ positive _ response ) ĊĊĊĠĠĠ Ġ@ Color Res ĊĠĠĠ Ġvar ĠbackgroundColor Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġquestion : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġvalue : ĠString ? Ġ= Ġnull ĊĊĊĠĠĠ Ġvar Ġon Positive Feedback : Ġ(( Question Dialog ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Negative Feedback : Ġ(( Question Dialog ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Amb iguity Feedback : Ġ(( Question Dialog ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Cancel Listener : Ġ(( Question Dialog ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . window ?. setLayout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context . resources . display Metrics . width Pixels Ġ* Ġ 0 . 9 0 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context . resources . display Metrics . height Pixels Ġ* Ġ 0 . 5 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinitiate Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . post ive Feedback Layout . setOnClickListener Ġ{ Ġon Positive Feedback ?. invoke ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . negative Feedback Layout . setOnClickListener Ġ{ Ġon Negative Feedback ?. invoke ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . amb iguity Feedback Layout . setOnClickListener Ġ{ Ġon Amb iguity Feedback ?. invoke ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . setOn Cancel Listener Ġ{ Ġon Cancel Listener ?. invoke ( this ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġinitiate Listeners () ĊĠĠĠĠĠĠĠ Ġbinding . review Question . text Ġ= Ġquestion ĊĠĠĠĠĠĠĠ Ġbinding . review Value . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġbinding . positive Feedback Text . text Ġ= Ġm Positive Feedback Text ĊĠĠĠĠĠĠĠ Ġbinding . post ive Feedback Icon . setImage Drawable ( m Positive Feedback Icon ) ĊĠĠĠĠĠĠĠ Ġbinding . negative Feedback Text . text Ġ= Ġm Negative Feedback Text ĊĠĠĠĠĠĠĠ Ġbinding . negative Feedback Icon . setImage Drawable ( m Negative Feedback Icon ) ĊĠĠĠĠĠĠĠ Ġbinding . amb iguity Feedback Text . text Ġ= Ġm Amb iguity Feedback Text ĊĠĠĠĠĠĠĠ Ġbinding . amb iguity Feedback Icon . setImage Drawable ( m Amb iguity Feedback Icon ) ĊĠĠĠĠĠĠĠ Ġbinding . feedback Body Layout . setBackground Resource ( backgroundColor ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġdismiss () Ġ= Ġdialog . dismiss () Ċ } Ċ Ċ inline Ġfun Ġshow Question Dialog ( context : ĠContext , Ġdialog Action : ĠQuestion Dialog . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġdialog Ġ= ĠQuestion Dialog ( context ) ĊĠĠĠ Ġdialog . dialog Action () ĊĠĠĠ Ġdialog . show () Ċ } Ċ