package Ġcom . dev indi . wall paper . home Ċ Ċ import Ġandroid . app . Wall paper Manager Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Environment Ċ import Ġandroid . support . annotation . Requires Api Ċ import Ġcom . dev indi . wall paper . settings . model . BooleanField Ċ import Ġcom . dev indi . wall paper . settings . model . Storage Target Field Ċ import Ġcom . dev indi . wall paper . settings . model . Wall paper Mode Ċ import Ġcom . dev indi . wall paper . settings . model . Wall paper Mode Field Ċ import Ġcom . dev indi . wall paper . settings . model . Wall paper Target Field Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . util . Date Ċ Ċ fun Ġcreate Wall paper Handler ( impl : ĠWall paper Manager , Ġstorage : ĠSharedPreferences ): ĠImage Handler Ġ{ ĊĠĠĠ Ġval Ġwall paper Target Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠ ĠWall paper Handler Api N Impl ( impl , ĠWall paper Mode Field ( storage )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠWall paper Handler Impl ( impl ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠComposite Handler ( ĊĠĠĠĠĠĠĠ ĠWall paper Target Field ( storage ), ĊĠĠĠĠĠĠĠ Ġwall paper Target , ĊĠĠĠĠĠĠĠ ĠStorage Target Field ( storage ), ĊĠĠĠĠĠĠĠ ĠExport Image Handler ( Environment . get External Storage Public Directory (" Maps ")) ĊĠĠĠ Ġ) Ċ } Ċ Ċ interface ĠImage Handler Ġ{ ĊĊĠĠĠ Ġfun Ġhandle ( image : ĠBitmap ) Ċ } Ċ Ċ class ĠComposite Handler ( ĊĠĠĠ Ġprivate Ġval Ġwall paper Target Field : ĠBoolean Field , ĊĠĠĠ Ġprivate Ġval Ġwall paper Target : ĠImage Handler , ĊĠĠĠ Ġprivate Ġval Ġstorage Target Field : ĠBoolean Field , ĊĠĠĠ Ġprivate Ġval Ġstorage Target : ĠImage Handler Ċ ) Ġ: ĠImage Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( image : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( wall paper Target Field . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwall paper Target . handle ( image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( storage Target Field . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Target . handle ( image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠWall paper Ġhandler Ġimplementation Ġfor ĠAndroid Ġ 7 . 0 + Ċ Ġ* ĠSetup Ġwall paper Ġto Ġsystem , Ġlock Ġscreen Ġor Ġboth Ċ Ġ*/ Ċ @ Requires Api ( Build . VERSION _ CODES . N ) Ċ class ĠWall paper Handler Api N Impl ( ĊĠĠĠ Ġprivate Ġval Ġimpl : ĠWall paper Manager , ĊĠĠĠ Ġprivate Ġval Ġmode Field : ĠWall paper Mode Field Ċ ) Ġ: ĠImage Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( image : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflag Ġ= Ġwhen Ġ( Wall paper Mode . valueOf ( mode Field . get ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWall paper Mode . SYSTEM Ġ-> ĠWall paper Manager . FLAG _ SYSTEM ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWall paper Mode . LOCK Ġ-> ĠWall paper Manager . FLAG _ LOCK ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWall paper Mode . BOTH Ġ-> ĠWall paper Manager . FLAG _ LOCK Ġor ĠWall paper Manager . FLAG _ SYSTEM ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġimpl . set Bitmap ( image , Ġnull , Ġtrue , Ġflag ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠWall paper Ġhandler Ġimplementation Ġbefore ĠAndroid Ġ 7 . 0 Ċ Ġ* ĠThis Ġimplementation Ġmay Ġbe Ġused Ġon Ġ 7 . 0 + Ġbut Ġtarget Ġparameter Ġwill Ġbe Ġignored Ċ Ġ*/ Ċ class ĠWall paper Handler Impl ( private Ġval Ġimpl : ĠWall paper Manager ) Ġ: ĠImage Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( image : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimpl . set Bitmap ( image ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠUseful Ġfor Ġdebug Ġhandler Ġimplementation Ċ Ġ*/ Ċ class ĠExport Image Handler ( private Ġval Ġtarget Dir : ĠFile ) Ġ: ĠImage Handler Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( image : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! target Dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget File Ġ= ĠFile ( target Dir , Ġ"${ Date (). time }. png ") ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Saving Ġto Ġfile Ġ% s ", Ġtarget File . absolute Path ) ĊĠĠĠĠĠĠĠ Ġtarget File . createNew File () ĊĠĠĠĠĠĠĠ ĠFileOutputStream ( target File ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . compress ( Bitmap . Compress Format . PNG , Ġ 1 0 0 , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }