package Ġcom . qu ittle . a 1 1 y ally . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Xml Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Switch Compat Ċ import Ġcom . qu ittle . a 1 1 y ally . Permissions Manager Ċ import Ġcom . qu ittle . a 1 1 y ally . R Ċ import Ġcom . qu ittle . a 1 1 y ally . preferences . Preference Provider Ċ import Ġcom . qu ittle . a 1 1 y ally . view . Button Switch Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠFEATURE _ SETTINGS _ ACTIVITY _ CLASS Ġ= ĠFeature Settings Activity :: class . java ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġm Preference Provider : ĠPreference Provider ĊĠĠĠ Ġlateinit Ġvar Ġm Permissions Manager : ĠPermissions Manager ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġm Preference Provider Ġ= ĠPreference Provider ( this ) ĊĠĠĠĠĠĠĠ Ġm Permissions Manager Ġ= ĠPermissions Manager ( this ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . main _ activity ) ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Switch Compat >( R . id . service _ check _ box ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġm Preference Provider . getService Enabled () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Preference Provider . on Service Enabled Update ( this :: setChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Checked ChangeListener Ġ{ Ġ_, Ġenabled Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Preference Provider . set Service Enabled ( enabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠsetUp Button Switch As Feature Preferences Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . highlight _ issues , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . xml . highlight _ issues _ preferences , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . highlight _ icon ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠsetUp Button Switch As Feature Preferences Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . display _ content _ descriptions , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . xml . content _ description _ preferences , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . display _ content _ descriptions _ icon ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠNote : ĠThe Ġfeature Ġpreferences Ġscreen Ġhas Ġan Ġissue Ġwhere Ġthe Ġicon Ġappears Ġbelow Ġthe Ġonly ĊĠĠĠĠĠĠĠ Ġ// Ġentry ĊĠĠĠĠĠĠĠ ĠsetUp Button Switch As Feature Preferences Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . linear _ navigation , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . xml . linear _ navigation _ preferences , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . linear _ navigation _ icon ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . open _ un friendly _ activity _ button ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠUn friendly Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . toggle _ app _ selection ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMulti App Selection Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main _ activity _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( menuItem : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( menuItem . itemId Ġ== ĠR . id . learn _ more ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠLearn More Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġm Preference Provider . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġm Preference Provider . on Resume () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! m Permissions Manager . has All Permissions ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠPermissions Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġfunction Ġfor Ġsetting Ġup Ġthe Ġ{@ link ĠButton Switch } es Ġto Ġopen Ġthe Ġpreferences Ġpanel Ġwhen ĊĠĠĠĠ Ġ* Ġclicked . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetUp Button Switch As Feature Preferences Button ( ĊĠĠĠĠĠĠĠ Ġview Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ Xml Res Ġpreferences : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġimage Resource : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < Button Switch >( view Id ). let Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . get Button (). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠFEATURE _ SETTINGS _ ACTIVITY _ CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Feature Settings Activity . EXTRA _ KEY _ IMAGE _ RESOURCE _ ID , Ġimage Resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFeature Settings Activity . EXTRA _ KEY _ PREFER ENCE _ XML _ RESOURCE _ ID , Ġpreferences ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ