/* Ċ ĠCopyright Ġ 2 0 2 1 ĠAdobe . ĠAll Ġrights Ġreserved . Ċ ĠThis Ġfile Ġis Ġlicensed Ġto Ġyou Ġ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 Ġhttp :// 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 ĠRE PRESENT ATIONS Ċ ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ċ Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . adobe . marketing . edge . identity . app . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . adobe . marketing . edge . identity . app . R Ċ import Ġcom . adobe . marketing . edge . identity . app . model . Shared ViewModel Ċ import Ġcom . adobe . marketing . mobile .* Ċ import Ġkotlin . random . Random Ċ Ċ class ĠMultiple Identity Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared ViewModel Ġby Ġactivity ViewModels < Shared ViewModel >() ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . fragment _ multiple _ identity , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSetup Ġradio Ġbutton Ġfor ĠEdge ĠIdentity Ġwhich Ġatt aches Ġob serves Ġto Ġchange Ġclick Ġand Ġtext Ġlabel ĊĠĠĠĠĠĠĠ Ġval Ġedge Registered RadioButton Ġ= Ġroot . findViewById < RadioButton >( R . id . radio _ edge _ identity _ registered ) ĊĠĠĠĠĠĠĠ Ġedge Registered RadioButton . isChecked Ġ= Ġshared ViewModel . is Edge Identity Registered . value Ġ?: Ġtrue ĊĠĠĠĠĠĠĠ Ġedge Registered RadioButton . text Ġ= Ġshared ViewModel . edge Identity Registered Text . value ĊĠĠĠĠĠĠĠ Ġshared ViewModel . is Edge Identity Registered . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedge Registered RadioButton . isChecked Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġshared ViewModel . edge Identity Registered Text . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedge Registered RadioButton . text Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSetup Ġradio Ġbutton Ġfor Ġdirect ĠIdentity Ġwhich Ġatt aches Ġob serves Ġto Ġchange Ġclick Ġand Ġtext Ġlabel ĊĠĠĠĠĠĠĠ Ġval Ġdirect Registered RadioButton Ġ= Ġroot . findViewById < RadioButton >( R . id . radio _ direct _ identity _ registered ) ĊĠĠĠĠĠĠĠ Ġdirect Registered RadioButton . isChecked Ġ= Ġshared ViewModel . is Direct Identity Registered . value Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġdirect Registered RadioButton . text Ġ= Ġshared ViewModel . direct Identity Registered Text . value ĊĠĠĠĠĠĠĠ Ġshared ViewModel . is Direct Identity Registered . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirect Registered RadioButton . isChecked Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġshared ViewModel . direct Identity Registered Text . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirect Registered RadioButton . text Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdirect Registered RadioButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThere Ġis Ġno ĠAPI Ġto Ġunregister Ġan Ġextension , Ġso Ġonly Ġhandle Ġregistration Ġcase ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( shared ViewModel . is Direct Identity Registered . value Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcom . adobe . marketing . mobile . Identity . register Extension () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared ViewModel . toggle Direct Identity Registration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSend Ġa Ġsample Ġevent Ġto ĠEdge ĊĠĠĠĠĠĠĠ Ġroot . findViewById < Button >( R . id . btn _ edge _ send _ event ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠExperience Event . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . set X dm Schema ( map Of (" eventType " Ġto Ġ" com . adobe . edge . identity ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEdge . send Event ( event . build (), Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠTrigger Ġstate Ġchange Ġbutton , Ġto Ġcause Ġdirect ĠIdentity Ġstate Ġchange Ġevent ĊĠĠĠĠĠĠĠ Ġval Ġtrigger StateChange Button Ġ= Ġroot . findViewById < Button >( R . id . btn _ direct _ trigger _ state _ change ) ĊĠĠĠĠĠĠĠ Ġtrigger StateChange Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġidentifier Ġis Ġthe Ġsame , ĠIdentity Ġwon 't Ġchange Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Id Ġ= ĠRandom . nextInt (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . adobe . marketing . mobile . Identity . sync Identifier (" id Type ", Ġrandom Id , ĠVisitor ID . Authentication State . AUTHENT IC ATED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠClear ĠEdge ĠIdentity Ġpersistence ĊĠĠĠĠĠĠĠ Ġval Ġedge Clear Persistence Ġ= Ġroot . findViewById < Button >( R . id . btn _ edge _ clear _ persistence ) ĊĠĠĠĠĠĠĠ Ġedge Clear Persistence . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= Ġactivity ?. get SharedPreferences (" com . adobe . edge . identity ", ĠContext . MODE _ PRIVATE ) Ġ?: Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Ġ( shared Preferences . edit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠClear Ġdirect ĠIdentity Ġpersistence ĊĠĠĠĠĠĠĠ Ġval Ġdirect Clear Persistence Ġ= Ġroot . findViewById < Button >( R . id . btn _ direct _ clear _ persistence ) ĊĠĠĠĠĠĠĠ Ġdirect Clear Persistence . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= Ġactivity ?. get SharedPreferences (" visitor ID Service DataStore ", ĠContext . MODE _ PRIVATE ) Ġ?: Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Ġ( shared Preferences . edit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġprivacy Ġstatus Ġto ĠOpt - In ĊĠĠĠĠĠĠĠ Ġval Ġprivacy Opt In Button Ġ= Ġroot . findViewById < Button >( R . id . btn _ set _ privacy _ opt in ) ĊĠĠĠĠĠĠĠ Ġprivacy Opt In Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMobile Core . set Privacy Status ( Mobile Privacy Status . OPT _ IN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġprivacy Ġstatus Ġto ĠOpt - Out ĊĠĠĠĠĠĠĠ Ġval Ġprivacy Opt Out Button Ġ= Ġroot . findViewById < Button >( R . id . btn _ set _ privacy _ opt out ) ĊĠĠĠĠĠĠĠ Ġprivacy Opt Out Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMobile Core . set Privacy Status ( Mobile Privacy Status . OPT _ OUT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} Ċ } Ċ