@ file : Suppress (" Same Parameter Value ") Ċ Ċ package Ġcom . jav ad ude . movies nav ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . annotation . Menu Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . navigation . Nav Directions Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ abstract Ġclass ĠBase Fragment (@ String Res Ġval Ġtitle Id Ġ: ĠInt , Ġ@ Layout Res Ġval Ġlayout Id Ġ: ĠInt , Ġ@ Menu Res Ġval Ġmenu Id Ġ: ĠInt Ġ= Ġ- 1 ) Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġopen Ġval Ġis TopLevel For Destination Ġ= Ġtrue ĊĠĠĠ Ġval ĠviewModel Ġby Ġactivity ViewModels < Movie ViewModel >() ĊĠĠĠĠĠĠĠ Ġ// ĠNOTE : ĠThis Ġview Ġmodel Ġinstance Ġis Ġscoped Ġto Ġthe Ġ_ activity _, Ġnot Ġthis Ġfragment , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠ Ġso Ġit Ġcan Ġshare Ġdata Ġwith Ġall Ġfragments ĊĠĠĠ Ġprivate Ġval Ġmain Activity Ġ: ĠMainActivity ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġactivity Ġas ĠMainActivity ? ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( title Id Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. title Ġ= ĠgetString ( title Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is TopLevel For Destination ) Ġ{ Ġ// Ġso Ġwe Ġdon 't Ġadd Ġextra Ġ" about " Ġicons Ġon Ġthe Ġtoolbar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġwhen Ġwe Ġhave Ġnested Ġfragments ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( menu Id Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( menu Id , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate ( R . id . action _ global _ about ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ= ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( layout Id , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġfun Ġstart Movie Delete Mode () Ġ= Ġmain Activity ?. start Movie Delete Mode () ĊĠĠĠ Ġfun Ġstart Actor Delete Mode () Ġ= Ġmain Activity ?. start Actor Delete Mode () ĊĠĠĠ Ġfun Ġinvalidate Action Mode () Ġ= Ġmain Activity ?. invalidate Action Mode () ĊĠĠĠ Ġfun Ġdismiss Action Mode () Ġ= Ġmain Activity ?. dismiss Action Mode () ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate (@ Id Res Ġaction Ġ: ĠInt ) Ġ= Ġview ?. find Nav Controller ()?. navigate ( action ) ĊĠĠĠ Ġfun Ġnavigate ( action Ġ: ĠNav Directions ) Ġ= Ġview ?. find Nav Controller ()?. navigate ( action ) ĊĊĠĠĠ Ġ// Ġadding Ġin Ġ" swipe Ġto Ġdelete " Ġcapability ĊĠĠĠ Ġ// ĠNOTE : Ġactivity !! Ġis Ġok Ġhere Ġas Ġon View Created () Ġis Ġonly Ġcalled Ġwhen ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġwe 're Ġattached Ġto Ġan ĠActivity ĊĠĠĠ Ġfun ĠRecyclerView . swipe Left ( action Ġ: Ġ( String ) Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ ĠItem Touch Helper ( Sw iper ( require Activity (), Ġaction )). attach To RecyclerView ( this ) ĊĊ Ċ } Ċ