package Ġcom . br illi ances oft . m ush af . ui . library . read Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ab ed . magenta X . android . res o ures . color Of Ċ import Ġcom . ab ed . magenta X . android . res o ures . stringify Ċ import Ġcom . ab ed . magenta X . android . utils . App Preferences Ċ import Ġcom . ab ed . magenta X . android . utils . screen Helpers . Display Metrics . Companion . dp Ċ import Ġcom . ab ed . magenta X . android . view Group . in flater Ċ import Ġcom . ab ed . magenta X . android . views . g one Ċ import Ġcom . ab ed . magenta X . android . views . invisible Ċ import Ġcom . ab ed . magenta X . android . views . listeners . onClick Ċ import Ġcom . ab ed . magenta X . android . views . visible Ċ import Ġcom . br illi ances oft . m ush af . R Ċ import Ġcom . br illi ances oft . m ush af . ui . common . shared Component . M ush af Toast Ċ import Ġcom . br illi ances oft . m ush af . framework . comm en . M ush af Constants Ċ import Ġcom . br illi ances oft . m ush af . framework . data . repo . Repository Ċ import Ġcom . br illi ances oft . m ush af . model . Edition Ċ import Ġcom . br illi ances oft . m ush af . model . Read Translation Ċ import Ġcom . br illi ances oft . m ush af . ui . common . Fonts Ċ import Ġcom . br illi ances oft . m ush af . ui . more . Settings Preferences Constant Ċ import Ġcom . br illi ances oft . m ush af . ui . common . shared Component . Base Activity Ċ import Ġcom . br illi ances oft . m ush af . ui . common . shared Component . User Preferences Ċ import Ġcom . br illi ances oft . m ush af . utils . Text Action Util Ċ import Ġcom . br illi ances oft . m ush af . utils . extensions . setText Size From Type Ċ import Ġcom . br illi ances oft . m ush af . utils . extensions . update Padding Ċ import Ġcom . br illi ances oft . m ush af . utils . to Localized Number Ċ import Ġcom . github . z aw ad z 8 8 . material popup menu . popup Menu Ċ import Ġkotlinx . android . synt hetic . main . item _ library _ read . view .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ${ User } Ġon Ġ${ Date } Ċ Ġ*/ Ċ class ĠRead Library Adapter ( private Ġval Ġdata List : ĠMutable List < Read Translation >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepository : ĠRepository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcoroutine Scope : Coroutine Scope ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Read Library Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtext Size Type Ġ= ĠUser Preferences . get FontSize () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( R . layout . item _ library _ read , Ġparent ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdata List . size ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdata List [ position ] ĊĠĠĠĠĠĠĠ Ġval Ġis Last Position Ġ= Ġdata List . size Ġ- Ġ 1 Ġ== Ġposition ĊĠĠĠĠĠĠĠ Ġholder . bind Data ( data , Ġposition , Ġis Last Position ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt , ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( parent . in flater ( view Type )) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapp Preferences Ġ= ĠApp Preferences () ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Data ( read Translation : ĠRead Translation , Ġposition : ĠInt , Ġis Last Position : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠitemView . context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) ĠitemView . update Padding ( top Ġ= Ġdp ( 6 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠitemView . update Padding ( top Ġ= Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Translation With A ya Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Preferences . getBoolean ( Settings Preferences Constant . Translation With A ya Key , Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Translation With A ya Ġ&& Ġread Translation . edition Info . type Ġ!= ĠEdition . TYPE _ Q UR AN ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . aya _ text . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Translation . q uran ic Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . aya _ text . setText Size From Type ( text Size Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// white Space M agn ifier ( read Translation . q uran ic Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠitemView . aya _ text . g one () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . translation _ ta f se er _ text _ library . type face Ġ= ĠFonts . get Translation Font ( context , read Translation . edition Info . language ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . translation _ ta f se er _ text _ library . text Ġ= Ġread Translation . translation Text ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . translation _ ta f se er _ text _ library . setText Size From Type ( text Size Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View To Book marked ( read Translation . is Book marked ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . aya _ number _ library . text Ġ= Ġread Translation . number In Sur ah . toString (). to Localized Number () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . aya _ number _ library . setText Size From Type ( text Size Type ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ read _ library _ root _ view . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Popup ( read Translation , Ġcontext Ġas ĠBase Activity , position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Last Position ) ĠitemView . divider _ item _ library . invisible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠitemView . divider _ item _ library . visible () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġupdate View To Book marked ( is Book marked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Book marked ) ĠitemView . aya _ number _ library . setTextColor ( color Of ( R . color . color Alert )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠitemView . aya _ number _ library . setTextColor ( color Of ( R . color . color Secondary )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Popup ( read Translation : ĠRead Translation , Ġactivity : ĠBase Activity , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Menu Ġ= Ġpopup Menu Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( User Preferences . is Dark Theme Enabled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠR . style . Widget _ MP M _ Menu _ Dark _ Dark Background ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġstringify ( R . string . share , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshare Text Ġ= Ġconvert Translation To Share ( read Translation , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Action Util . share Text ( activity , Ġshare Text , ĠR . string . share _ translation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss On Select Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshare Text Ġ= Ġconvert Translation To Share ( read Translation , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġstringify ( R . string . copy _ text Ġ, Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Action Util . copy To Clipboard ( activity , Ġshare Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM ush af Toast . make Short ( activity , ĠR . string . text _ copied ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss On Select Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġstringify ( R . string . save _ in _ bookmarks , Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Data Ġ= Ġdata List [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠnewData Ġ= ĠĠ Ġold Data . copy ( is Book marked Ġ= Ġ! old Data . is Book marked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata List [ index ] Ġ= ĠnewData ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Data . is Book marked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM ush af Toast . make Short ( item View . context , ĠR . string . book m ard _ saved ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View To Book marked ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM ush af Toast . make Short ( item View . context , ĠR . string . bookmark _ removed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View To Book marked ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . update Bookmark Status ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Translation . aya Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Translation . edition Info . identifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewData . is Book marked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Menu . show ( activity , ĠitemView . translation _ ta f se er _ text _ library ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġconvert Translation To Share ( read Translation : ĠRead Translation , Ġcontext : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġshare Text Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa ya Number Ġ= Ġ"${ context . getString ( R . string . aya _ number )} : Ġ${ read Translation . number In Sur ah }\ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Number Ġ= Ġ"${ context . getString ( R . string . page )} : Ġ${ read Translation . page }\ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsur ah Name Ġ= Ġ"${ read Translation . sur ah . name }\ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa ya Info Ġ= Ġa ya Number Ġ+ Ġpage Number Ġ+ Ġsur ah Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa ya Text Ġ= Ġ"{ Ġ${ read Translation . q uran ic Text } Ġ}\ n $ aya Info \ n " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Text Ġ+= Ġa ya Text ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( read Translation . edition Info . identifier Ġ!= ĠM ush af Constants . Simple Q uran ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtranslation Text Ġ= Ġ""" Ġ"${ read Translation . translation Text }" Ġ""" Ġ+ Ġ"\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtranslation Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( read Translation . translation Or T af sir Ġ== ĠEdition . TYPE _ TA F SE ER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ stringify ( R . string . ta f se er , Ġcontext )} : Ġ${ read Translation . edition Info . name }\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ stringify ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . translation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) }: Ġ${ read Translation . edition Info . name }\ n " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshare Text Ġ+= Ġtranslation Text Ġ+ Ġtranslation Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Text Ġ+= Ġ" via Ġ@ ${ stringify ( R . string . app _ name , Ġcontext )} Ġfor ĠAndroid " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġshare Text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }