package Ġcom . fer n ando ce jas . sample . app Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . fer n ando ce jas . flags . Feature Flag Ċ import Ġcom . fer n ando ce jas . flags . Flag Ċ import Ġcom . fer n ando ce jas . sample . app . extension . invisible Ċ import Ġcom . fer n ando ce jas . sample . app . extension . visible Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . util .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġnavigator Ġ= ĠNavigator () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild Type Ġ= ĠBuild Config . BUILD _ TYPE . toUpperCase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġproduct Flavor Ġ= ĠBuild Config . FL AV OR . toUpperCase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval ĠappName Ġ= ĠgetString ( R . string . app _ name ) ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġ"$ appName : Ġ$ product Flavor Ġ- Ġ$ build Type " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Feature ĠFlags ĠAPI Ġ 1 ĊĠĠĠĠĠĠĠ ĠFlag . Login Ġwhen Activated Ġ{ Ġfeature Login . visible () Ġ} Ġotherwise Ġ{ Ġfeature Login . invisible () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Feature ĠFlags ĠAPI Ġ 2 Ċ // ĠĠĠĠĠĠĠ ĠFeature Flag ( Flag . Registration ) Ġwhen Enabled Ġ{ Ġfeature Registration . visible () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Feature ĠFlags ĠAPI Ġ 3 Ċ // ĠĠĠĠĠĠĠ Ġbtn Search . setOnClickListener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠFeature Flag ( Flag . New Search ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Enabled Ġ{ Ġnavigator . start New Search ( application Context ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Disabled Ġ{ Ġnavigator . start Legacy Search ( application Context ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ