package Ġme . ros uh . easy watermark . model Ċ Ċ import Ġandroid . content . Context . MODE _ PRIVATE Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroidx . core . content . edit Ċ import Ġme . ros uh . easy watermark . My App Ċ import Ġme . ros uh . easy watermark . R Ċ Ċ class ĠWater Mark Config Ġ{ ĊĠĠĠ Ġvar Ġuri : ĠUri ĊĊĠĠĠ Ġvar Ġtext : ĠString ĊĊĠĠĠ Ġvar Ġtext Size : ĠFloat ĊĊĠĠĠ Ġvar ĠtextColor : ĠInt ĊĊĠĠĠ Ġvar Ġalpha : ĠInt ĊĊĠĠĠ Ġvar Ġh orizon Gap Percent : ĠInt ĊĊĠĠĠ Ġvar Ġvertical Gap Percent : ĠInt ĊĊĠĠĠ Ġvar Ġdegree : ĠFloat ĊĊĠĠĠ Ġvar Ġtext Style : ĠPaint . Style ĊĊĠĠĠ Ġvar Ġicon Uri : ĠUri ĊĊĠĠĠ Ġvar Ġmark Mode : ĠMark Mode ĊĊĠĠĠ Ġvar Ġimage Scale : ĠFloat ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy App . instance . get SharedPreferences ( SP _ NAME , ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri Ġ= ĠUri . parse ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsave Text Ġ= ĠgetString ( SP _ KEY _ TEXT , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( save Text . isNull OrEmpty ()) ĠMy App . instance . getString ( R . string . config _ default _ water _ mark _ text ) Ġelse Ġsave Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġget Float ( SP _ KEY _ TEXT _ SIZE , Ġ 1 8 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Ġ= Ġget Int ( SP _ KEY _ TEXT _ COLOR , ĠColor . parse Color ("# FF B 8 0 0 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġget Int ( SP _ KEY _ ALPHA , Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh orizon Gap Percent Ġ= Ġget Int ( SP _ KEY _ H ORIZ ON _ GAP , Ġ 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Gap Percent Ġ= Ġget Int ( SP _ KEY _ VERTICAL _ GAP , Ġ 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdegree Ġ= Ġget Float ( SP _ KEY _ DEG REE , Ġ 3 1 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Style Ġ= Ġwhen Ġ( getInt ( SP _ KEY _ TEXT _ STYLE , Ġ 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmark Mode Ġ= Ġwhen Ġ( getInt ( SP _ KEY _ MODE , Ġ 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMark Mode . Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMark Mode . Image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Uri Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( getString ( SP _ KEY _ ICON _ URI , Ġ"") Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Scale Ġ= Ġget Float ( SP _ KEY _ TEXT _ SIZE , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave () Ġ{ ĊĠĠĠĠĠĠĠ ĠMy App . instance . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSP _ NAME , ĠMODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ). edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( SP _ KEY _ ICON _ URI , Ġicon Uri . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( SP _ KEY _ TEXT , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Float ( SP _ KEY _ TEXT _ SIZE , Ġtext Size . coerce At Least ( 0 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( SP _ KEY _ TEXT _ COLOR , ĠtextColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( SP _ KEY _ ALPHA , Ġalpha . coerce At Least ( 0 ). coerce At Most ( 2 5 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( SP _ KEY _ H ORIZ ON _ GAP , Ġh orizon Gap Percent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( SP _ KEY _ VERTICAL _ GAP , Ġvertical Gap Percent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Float ( SP _ KEY _ DEG REE , Ġdegree ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSP _ KEY _ TEXT _ STYLE , Ġwhen Ġ( text Style ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPaint . Style . FILL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSP _ KEY _ MODE , Ġwhen Ġ( mark Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMark Mode . Text Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMark Mode . Image Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Float ( SP _ KEY _ IMAGE _ SCALE , Ġimage Scale ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcan Draw Text (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmark Mode Ġ== ĠMark Mode . Text Ġ&& Ġtext . isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcan Draw Icon (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmark Mode Ġ== ĠMark Mode . Image Ġ&& Ġicon Uri . toString (). isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠMark Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠText Ġ: ĠMark Mode () ĊĊĠĠĠĠĠĠĠ Ġobject ĠImage Ġ: ĠMark Mode () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ NAME Ġ= Ġ" sp _ water _ mark _ config " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ TEXT Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ text " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ TEXT _ SIZE Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ text _ size " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ TEXT _ COLOR Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ text _ color " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ TEXT _ STYLE Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ text _ style " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ ALPHA Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ alpha " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ H ORIZ ON _ GAP Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ horizon _ gap " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ VERTICAL _ GAP Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ vertical _ gap " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ DEG REE Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ degree " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ ICON _ URI Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ icon _ uri " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ MODE Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ type " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ CHANGE _ LOG Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ change _ log " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP _ KEY _ IMAGE _ SCALE Ġ= ĠSP _ NAME Ġ+ Ġ"_ key _ image _ scale " ĊĊĠĠĠ Ġ} Ċ }