package Ġcom . su dden h 4 x . rating dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . google . android . play . core . review . Review Manager Ċ import Ġcom . google . android . play . core . review . Review ManagerFactory Ċ import Ġcom . su dden h 4 x . rating dialog . buttons . Confirm Button ClickListener Ċ import Ġcom . su dden h 4 x . rating dialog . buttons . Custom Feedback Button ClickListener Ċ import Ġcom . su dden h 4 x . rating dialog . buttons . Rate Dialog ClickListener Ċ import Ġcom . su dden h 4 x . rating dialog . dialog . Dialog Options Ċ import Ġcom . su dden h 4 x . rating dialog . dialog . Rate Dialog Fragment Ċ import Ġcom . su dden h 4 x . rating dialog . logging . Rating Logger Ċ import Ġcom . su dden h 4 x . rating dialog . preferences . Conditions Checker Ċ import Ġcom . su dden h 4 x . rating dialog . preferences . Mail Settings Ċ import Ġcom . su dden h 4 x . rating dialog . preferences . Preference Util Ċ import Ġcom . su dden h 4 x . rating dialog . preferences . Rating Threshold Ċ import Ġcom . su dden h 4 x . rating dialog . utils . Feedback Utils Ċ import Ġio . mock k . Runs Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . mock k . just Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . mock k Object Ċ import Ġio . mock k . mock k Static Ċ import Ġio . mock k . spy k Ċ import Ġio . mock k . un mock k All Ċ import Ġio . mock k . verify Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Assertions . assertFalse Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ class ĠApp Rating Test Ġ{ ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġactivity : ĠAppCompatActivity ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġdialog Options : ĠDialog Options ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠRating Logger . is Logging Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġdialog Options Ġ= ĠDialog Options () ĊĠĠĠĠĠĠĠ Ġun mock k All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` icon Ġdrawable Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġmock k < Drawable >() ĊĠĠĠĠĠĠĠ Ġget Builder (). setIcon Drawable ( drawable ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . icon Drawable ). isEqualTo ( drawable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rate Ġlater Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Rate Later ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . rate Later Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rate Ġlater Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Rate Later Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . rate Later Button . rate Dialog ClickListener ). isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rate Ġnever Ġbutton Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). show Rate Never Button ( INT _ RES _ ID , Ġclick Listener ) ĊĠĠĠĠĠĠĠ Ġdialog Options . rate Never Button . let Ġ{ Ġbutton Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( button ?. text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( button ?. rate Dialog ClickListener ). isEqualTo ( click Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` count Ġof Ġlater Ġbutton Ġclicks Ġto Ġshow Ġnever Ġbutton Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). show Rate Never Button After N Times ( INT _ RES _ ID , Ġclick Listener , Ġ 4 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . count Of Later Button Click sTo Show Never Button ). isEqualTo ( 4 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` title Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). setTitle Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . title Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġtheme Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Custom Theme ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Theme ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` message Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). setMessage Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . message Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` confirm Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Confirm ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . confirm Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` confirm Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Confirm Button ClickListener ( confirm Button ClickListener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . confirm Button . confirm Button ClickListener ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Button ClickListener ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` full Ġstar Ġrating Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Show Only Full St ars ( true ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . show Only Full St ars ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` store Ġrating Ġtitle Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Store Rating Title Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . store Rating Title Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` store Ġrating Ġmessage Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Store Rating Message Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . store Rating Message Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rate Ġnow Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Rate Now ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . rate Now Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rate Ġnow Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). overwrite Rate Now Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . rate Now Button . rate Dialog ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` additional Ġrate Ġnow Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Additional Rate Now Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . additional Rate Now Button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` feedback Ġtitle Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Feedback Title Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . feedback Title Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` no Ġfeedback Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set No Feedback ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . no Feedback Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` no Ġfeedback Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set No Feedback Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . no Feedback Button . rate Dialog ClickListener ). isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mail Ġfeedback Ġmessage Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Mail Feedback Message Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . mail Feedback Message Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mail Ġsettings Ġare Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Mail Settings For Feedback Dialog ( mail Settings ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . mail Settings ). isEqualTo ( mail Settings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mail Ġfeedback Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Mail Feedback ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . mail Feedback Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mail Ġfeedback Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). overwrite Mail Feedback Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . mail Feedback Button . rate Dialog ClickListener ). isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` additional Ġmail Ġfeedback Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Additional Mail Feedback Button ClickListener ( click Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . additional Mail Feedback Button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( click Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġfeedback Ġenabled Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Use Custom Feedback ( true ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . use Custom Feedback ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġfeedback Ġmessage Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Custom Feedback Message Text Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Feedback Message Text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġfeedback Ġbutton Ġtext Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Custom Feedback ButtonText Id ( INT _ RES _ ID ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Feedback Button . text Id ). isEqualTo ( INT _ RES _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġfeedback Ġbutton Ġclick Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Feedback Button ClickListener ( custom Feedback Button ClickListener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Feedback Button . custom Feedback Button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( custom Feedback Button ClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` rating Ġthreshold Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Rating Threshold ( Rating Threshold . FO UR _ AND _ A _ HALF ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . rating Threshold ). isEqualTo ( Rating Threshold . FO UR _ AND _ A _ HALF ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cancel able Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Cancel able ( true ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . cancel able ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġcondition Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Custom Condition ( custom Condition ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Condition ?. invoke ()). isEqualTo ( custom Condition ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġcondition Ġto Ġshow Ġagain Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Custom Condition To Show Again ( custom Condition ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . custom Condition To Show Again ?. invoke ()). isEqualTo ( custom Condition ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` count App Launch Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . count App Launch ). isTrue () ĊĠĠĠĠĠĠĠ Ġget Builder (). dont Count This As App Launch () ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . count App Launch ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠPreference Util Calls Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Mock K ( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġshared Preferences : ĠSharedPreferences ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Object ( Preference Util ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠPreference Util . get Preferences ( activity ) Ġ} Ġreturns Ġshared Preferences ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` reset Ġtriggers Ġreset Ġof ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Rating . reset ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . reset ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` minimum Ġlaunch Ġtimes Ġis Ġset Ġcorrectly Ġinto ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). setMinimum Launch Times ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . setMinimum Launch Times ( activity , Ġ 1 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` minimum Ġlaunch Ġtimes Ġto Ġshow Ġagain Ġis Ġset Ġcorrectly Ġinto ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). setMinimum Days To Show Again ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . setMinimum Days To Show Again ( activity , Ġ 1 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` minimum Ġdays Ġis Ġset Ġcorrectly Ġinto ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). setMinimum Days ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . setMinimum Days ( activity , Ġ 1 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` minimum Ġdays Ġto Ġshow Ġagain Ġis Ġset Ġcorrectly Ġinto ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). setMinimum Days To Show Again ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . setMinimum Days To Show Again ( activity , Ġ 1 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` is Ġdialog Ġagreed Ġcalls Ġcorrect Ġmethod Ġof ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Rating . is Dialog Ag reed ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . is Dialog Ag reed ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` was Ġlater Ġbutton Ġclicked Ġcalls Ġcorrect Ġmethod Ġof ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Rating . was Later Button Clicked ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . was Later Button Clicked ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` was Ġnever Ġbutton Ġclicked Ġcalls Ġcorrect Ġmethod Ġof ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Rating . was Never Button Clicked ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . is DoNot Show Again ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` get Ġnumber Ġof Ġlater Ġbutton Ġclicks Ġcalls Ġcorrect Ġmethod Ġof ĠPreference Util `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Rating . getNumberOf Later Button Click s ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĠPreference Util . getNumberOf Later Button Click s ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` logging Ġenabled Ġis Ġset Ġcorrectly Ġinto ĠRating Logger `() Ġ{ ĊĠĠĠĠĠĠĠ Ġget Builder (). set Logging Enabled ( false ) ĊĠĠĠĠĠĠĠ ĠassertThat ( Rating Logger . is Logging Enabled ). isEqualTo ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` debug Ġis Ġset Ġcorrectly Ġinto ĠRating Logger `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġget Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . set Debug ( true ) ĊĠĠĠĠĠĠĠ ĠassertThat ( builder . isDebug ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠUse Google In App Review Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Mock K ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġreview M anger : ĠReview Manager ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Static ( Review ManagerFactory :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠReview ManagerFactory . create ( any ()) Ġ} Ġreturns Ġreview M anger ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` sets Ġuse Google In App Review Ġto Ġtrue Ġwithin Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( dialog Options . use Google In App Review ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). use Google In App Review () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( dialog Options . use Google In App Review ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` creates Ġreview Ġmanager `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġget Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( builder . review M anger ). isNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . use Google In App Review () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( builder . review M anger ). isEqualTo ( review M anger ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` google Ġin - app Ġreview Ġcomplete Ġlistener Ġis Ġset Ġcorrectly Ġinto Ġdialog Options `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomplete Listener : Ġ( Boolean ) Ġ-> ĠUnit Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġget Builder (). set Google In App Review Complete Listener ( complete Listener ) ĊĠĠĠĠĠĠĠ ĠassertThat ( dialog Options . google In App Review Complete Listener ). isEqualTo ( complete Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠCreate Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` returns Ġnull Ġif Ġuse Google In App Review Ġis Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . use Google In App Review Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Builder (). create () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` returns Ġnew ĠRating Dialog Fragment Ġif Ġuse Google In App Review Ġis Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . use Google In App Review Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Object ( Rate Dialog Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrating Dialog Fragment : ĠRate Dialog Fragment Ġ= Ġmock k () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠRate Dialog Fragment . newInstance ( any ()) Ġ} Ġreturns Ġrating Dialog Fragment ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Builder (). create () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( rating Dialog Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠShow Now Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġapp Rating Builder : ĠApp Rating . Builder ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` calls Ġshow Google In App Review Ġif Ġuse Google In App Review Ġis Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . use Google In App Review Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder . show Now () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġapp Rating Builder . show Google In App Review () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` creates Ġand Ġshows Ġnew ĠRating Dialog Fragment Ġif Ġuse Google In App Review Ġis Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . use Google In App Review Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Object ( Rate Dialog Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrating Dialog Fragment : ĠRate Dialog Fragment Ġ= Ġmock k ( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsupport FragmentManager : ĠFragment Manager Ġ= Ġmock k () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠRate Dialog Fragment . newInstance ( any ()) Ġ} Ġreturns Ġrating Dialog Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġactivity . support FragmentManager Ġ} Ġreturns Ġsupport FragmentManager ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder . show Now () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrating Dialog Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġapp Rating Builder . show Google In App Review () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Verified ( rating Dialog Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠShow If Me ets Conditions Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Awesome App Rating Dialog " ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Object ( Preference Util ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Object ( Conditions Checker ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠPreference Util . increase Launch Times ( any ()) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠConditions Checker . should ShowDialog ( activity , Ġdialog Options ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support FragmentManager . find Fragment By Tag ( TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` returns Ġimmediately Ġfalse Ġif Ġdialog Ġis Ġcurrently Ġvisible `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support FragmentManager . find Fragment By Tag ( TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġreturns Ġmock k () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget Builder (). show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġapp Rating Builder . show Now () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isFalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` in creases Ġlaunch Ġtimes `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠPreference Util . increase Launch Times ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` does n 't Ġincrease Ġlaunch Ġtimes Ġif Ġcount App Launch Ġis Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Options . count App Launch Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Builder (). show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠPreference Util . increase Launch Times ( activity ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` calls Ġshow Ġnow Ġif Ġconditions Ġare Ġmet `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠConditions Checker . should ShowDialog ( activity , Ġdialog Options ) Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapp Rating Builder . show Now () Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder . show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġapp Rating Builder . show Now () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` returns Ġtrue Ġif Ġconditions Ġare Ġmet `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠConditions Checker . should ShowDialog ( activity , Ġdialog Options ) Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapp Rating Builder . show Now () Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapp Rating Builder . show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isTrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` calls Ġshow Ġnow Ġif Ġis Debug Ġis Ġtrue `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()). apply Ġ{ Ġis Debug Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapp Rating Builder . show Now () Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder . show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġapp Rating Builder . show Now () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` does n 't Ġcall Ġshow Ġnow Ġif Ġconditions Ġaren 't Ġmet `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Rating Builder . show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġapp Rating Builder . show Now () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` returns Ġfalse Ġif Ġconditions Ġaren 't Ġmet `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Rating Builder Ġ= Ġspy k ( get Builder ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġapp Rating Builder . show If Me ets Conditions () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result ). isFalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` open Ġmail Ġfeedback Ġcalls Ġcorrect Ġfunction Ġof ĠFeedback Utils `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock k Object ( Feedback Utils ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠFeedback Utils . open Mail Feedback ( any (), Ġany ()) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġmock k < Context >() ĊĠĠĠĠĠĠĠ ĠApp Rating . open Mail Feedback ( context , Ġmail Settings ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠFeedback Utils . open Mail Feedback ( context , Ġmail Settings ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` open Ġplay Ġstore Ġlisting Ġcalls Ġcorrect Ġfunction Ġof ĠFeedback Utils `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock k Object ( Feedback Utils ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠFeedback Utils . open Play Store Listing ( any ()) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġmock k < Context >() ĊĠĠĠĠĠĠĠ ĠApp Rating . open Play Store Listing ( context ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠFeedback Utils . open Play Store Listing ( context ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Builder () Ġ= ĠApp Rating . Builder ( activity , Ġdialog Options ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINT _ RES _ ID Ġ= Ġ 4 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġclick Listener Ġ= ĠRate Dialog ClickListener Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfirm Button ClickListener Ġ= ĠConfirm Button ClickListener Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcustom Feedback Button ClickListener Ġ= ĠCustom Feedback Button ClickListener Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcustom Condition : Ġ() Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmail Settings Ġ= ĠMail Settings (" mail Address ", Ġ" subject ", Ġ" message ", Ġ" error Toast ") ĊĠĠĠ Ġ} Ċ } Ċ