lint-baseline.xml 199 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <issues format="6" by="lint 9.2.1" type="baseline" client="gradle" dependencies="true" name="AGP (9.2.1)" variant="all" version="9.2.1">
  3. <issue
  4. id="EmptySuperCall"
  5. message="No need to call `super.onCleared`; the super method is defined to be empty"
  6. errorLine1=" super.onCleared()"
  7. errorLine2=" ~~~~~~~~~">
  8. <location
  9. file="src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugViewModel.kt"
  10. line="149"
  11. column="15"/>
  12. </issue>
  13. <issue
  14. id="EmptySuperCall"
  15. message="No need to call `super.onCleared`; the super method is defined to be empty"
  16. errorLine1=" super.onCleared()"
  17. errorLine2=" ~~~~~~~~~">
  18. <location
  19. file="src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt"
  20. line="155"
  21. column="15"/>
  22. </issue>
  23. <issue
  24. id="EmptySuperCall"
  25. message="No need to call `super.onCleared`; the super method is defined to be empty"
  26. errorLine1=" super.onCleared()"
  27. errorLine2=" ~~~~~~~~~">
  28. <location
  29. file="src/main/java/io/legado/app/ui/book/changecover/ChangeCoverViewModel.kt"
  30. line="181"
  31. column="15"/>
  32. </issue>
  33. <issue
  34. id="EmptySuperCall"
  35. message="No need to call `super.onCleared`; the super method is defined to be empty"
  36. errorLine1=" super.onCleared()"
  37. errorLine2=" ~~~~~~~~~">
  38. <location
  39. file="src/main/java/io/legado/app/ui/dict/DictViewModel.kt"
  40. line="145"
  41. column="15"/>
  42. </issue>
  43. <issue
  44. id="EmptySuperCall"
  45. message="No need to call `super.onCleared`; the super method is defined to be empty"
  46. errorLine1=" super.onCleared()"
  47. errorLine2=" ~~~~~~~~~">
  48. <location
  49. file="src/main/java/io/legado/app/ui/main/homepage/HomepageViewModel.kt"
  50. line="383"
  51. column="15"/>
  52. </issue>
  53. <issue
  54. id="EmptySuperCall"
  55. message="No need to call `super.onCleared`; the super method is defined to be empty"
  56. errorLine1=" super.onCleared()"
  57. errorLine2=" ~~~~~~~~~">
  58. <location
  59. file="src/main/java/io/legado/app/ui/book/import/local/ImportBookViewModel.kt"
  60. line="850"
  61. column="15"/>
  62. </issue>
  63. <issue
  64. id="EmptySuperCall"
  65. message="No need to call `super.onCleared`; the super method is defined to be empty"
  66. errorLine1=" super.onCleared()"
  67. errorLine2=" ~~~~~~~~~">
  68. <location
  69. file="src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt"
  70. line="2471"
  71. column="15"/>
  72. </issue>
  73. <issue
  74. id="EmptySuperCall"
  75. message="No need to call `super.onCleared`; the super method is defined to be empty"
  76. errorLine1=" super.onCleared()"
  77. errorLine2=" ~~~~~~~~~">
  78. <location
  79. file="src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt"
  80. line="424"
  81. column="15"/>
  82. </issue>
  83. <issue
  84. id="EmptySuperCall"
  85. message="No need to call `super.onCleared`; the super method is defined to be empty"
  86. errorLine1=" super.onCleared()"
  87. errorLine2=" ~~~~~~~~~">
  88. <location
  89. file="src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt"
  90. line="374"
  91. column="15"/>
  92. </issue>
  93. <issue
  94. id="EmptySuperCall"
  95. message="No need to call `super.onCleared`; the super method is defined to be empty"
  96. errorLine1=" override fun onCleared() { session?.cancel(); session = null; super.onCleared() }"
  97. errorLine2=" ~~~~~~~~~">
  98. <location
  99. file="src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugViewModel.kt"
  100. line="99"
  101. column="73"/>
  102. </issue>
  103. <issue
  104. id="EmptySuperCall"
  105. message="No need to call `super.onCleared`; the super method is defined to be empty"
  106. errorLine1=" super.onCleared()"
  107. errorLine2=" ~~~~~~~~~">
  108. <location
  109. file="src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt"
  110. line="345"
  111. column="15"/>
  112. </issue>
  113. <issue
  114. id="InconsistentArrays"
  115. message="Array `screen_direction_title` has an inconsistent number of items (6 in `values/arrays.xml`, 5 in `values-zh-rTW/arrays.xml`)"
  116. errorLine1=" &lt;string-array name=&quot;screen_direction_title&quot;>"
  117. errorLine2=" ^">
  118. <location
  119. file="src/main/res/values/arrays.xml"
  120. line="121"
  121. column="2"
  122. message="Declaration with array size (6)"/>
  123. <location
  124. file="src/main/res/values-zh-rTW/arrays.xml"
  125. line="50"
  126. column="5"
  127. message="Declaration with array size (5)"/>
  128. </issue>
  129. <issue
  130. id="CheckResult"
  131. message="The result of `apply` is not used"
  132. errorLine1=" apply("
  133. errorLine2=" ^">
  134. <location
  135. file="src/main/java/io/legado/app/ui/book/read/sheet/PhotoSheet.kt"
  136. line="66"
  137. column="37"/>
  138. </issue>
  139. <issue
  140. id="CustomViewStyleable"
  141. message="By convention, the custom view (`SimpleCounterView`) and the declare-styleable (`DetailSeekBar`) should have the same name (various editor features rely on this convention)"
  142. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
  143. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
  144. <location
  145. file="src/main/java/io/legado/app/ui/widget/SimpleCounterView.kt"
  146. line="68"
  147. column="64"/>
  148. </issue>
  149. <issue
  150. id="CustomViewStyleable"
  151. message="By convention, the custom view (`SimpleSliderView`) and the declare-styleable (`DetailSeekBar`) should have the same name (various editor features rely on this convention)"
  152. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
  153. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
  154. <location
  155. file="src/main/java/io/legado/app/ui/widget/SimpleSliderView.kt"
  156. line="66"
  157. column="64"/>
  158. </issue>
  159. <issue
  160. id="CustomViewStyleable"
  161. message="By convention, the custom view (`SimpleSliderView`) and the declare-styleable (`SimpleCounterView`) should have the same name (various editor features rely on this convention)"
  162. errorLine1=" val ta = context.obtainStyledAttributes(attrs, R.styleable.SimpleCounterView)"
  163. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  164. <location
  165. file="src/main/java/io/legado/app/ui/widget/SimpleSliderView.kt"
  166. line="74"
  167. column="56"/>
  168. </issue>
  169. <issue
  170. id="DefaultLocale"
  171. message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  172. errorLine1=" this.type = StringUtil.isNotBlank(type) ? type.toLowerCase() : null;"
  173. errorLine2=" ~~~~~~~~~~~">
  174. <location
  175. file="src/main/java/me/ag2s/epublib/domain/GuideReference.java"
  176. line="90"
  177. column="56"/>
  178. </issue>
  179. <issue
  180. id="DefaultLocale"
  181. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  182. errorLine1=" description = String.format(&quot;%.1f dp&quot;, underlineWidth),"
  183. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  184. <location
  185. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  186. line="396"
  187. column="39"/>
  188. </issue>
  189. <issue
  190. id="DefaultLocale"
  191. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  192. errorLine1=" description = String.format(&quot;%.1f dp&quot;, underlineOffset),"
  193. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  194. <location
  195. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  196. line="404"
  197. column="39"/>
  198. </issue>
  199. <issue
  200. id="DefaultLocale"
  201. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  202. errorLine1=" description = String.format(&quot;%.1fx&quot;, bgImageScale),"
  203. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  204. <location
  205. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  206. line="475"
  207. column="39"/>
  208. </issue>
  209. <issue
  210. id="DefaultLocale"
  211. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  212. errorLine1=" description = String.format(&quot;%.0f%%&quot;, left * 100),"
  213. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  214. <location
  215. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  216. line="863"
  217. column="31"/>
  218. </issue>
  219. <issue
  220. id="DefaultLocale"
  221. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  222. errorLine1=" description = String.format(&quot;%.0f%%&quot;, right * 100),"
  223. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  224. <location
  225. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  226. line="870"
  227. column="31"/>
  228. </issue>
  229. <issue
  230. id="DefaultLocale"
  231. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  232. errorLine1=" description = String.format(&quot;%.0f%%&quot;, top * 100),"
  233. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  234. <location
  235. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  236. line="877"
  237. column="31"/>
  238. </issue>
  239. <issue
  240. id="DefaultLocale"
  241. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  242. errorLine1=" description = String.format(&quot;%.0f%%&quot;, bottom * 100),"
  243. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  244. <location
  245. file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
  246. line="884"
  247. column="31"/>
  248. </issue>
  249. <issue
  250. id="DefaultLocale"
  251. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  252. errorLine1=" value = String.format("
  253. errorLine2=" ^">
  254. <location
  255. file="src/main/java/io/legado/app/ui/main/home/HomeScreen.kt"
  256. line="679"
  257. column="33"/>
  258. </issue>
  259. <issue
  260. id="DefaultLocale"
  261. message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  262. errorLine1=" .getByIdOrHref(possibleNcxItemId.toUpperCase());"
  263. errorLine2=" ~~~~~~~~~~~">
  264. <location
  265. file="src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java"
  266. line="412"
  267. column="58"/>
  268. </issue>
  269. <issue
  270. id="DefaultLocale"
  271. message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  272. errorLine1=" + Constants.DEFAULT_TOC_ID.toUpperCase()"
  273. errorLine2=" ~~~~~~~~~~~">
  274. <location
  275. file="src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java"
  276. line="424"
  277. column="56"/>
  278. </issue>
  279. <issue
  280. id="DefaultLocale"
  281. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  282. errorLine1=" String.format(&quot;%.1f万字&quot;, words / 10000f)"
  283. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  284. <location
  285. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordFormatter.kt"
  286. line="11"
  287. column="13"/>
  288. </issue>
  289. <issue
  290. id="DefaultLocale"
  291. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  292. errorLine1=" tvCount.text = String.format(&quot;%.1f%%&quot;, item.progressPercent)"
  293. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  294. <location
  295. file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt"
  296. line="43"
  297. column="36"/>
  298. </issue>
  299. <issue
  300. id="DefaultLocale"
  301. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  302. errorLine1=" tvCount.text = String.format(&quot;%.1f%%&quot;, item.progressPercent)"
  303. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  304. <location
  305. file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt"
  306. line="43"
  307. column="36"/>
  308. </issue>
  309. <issue
  310. id="DefaultLocale"
  311. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  312. errorLine1=" text = String.format(&quot;%.1f%%&quot;, result.progressPercent),"
  313. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  314. <location
  315. file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentScreen.kt"
  316. line="487"
  317. column="32"/>
  318. </issue>
  319. <issue
  320. id="DefaultLocale"
  321. message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  322. errorLine1=" .toLowerCase().endsWith(suffix.toLowerCase());"
  323. errorLine2=" ~~~~~~~~~~~">
  324. <location
  325. file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
  326. line="111"
  327. column="18"/>
  328. </issue>
  329. <issue
  330. id="DefaultLocale"
  331. message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  332. errorLine1=" .toLowerCase().endsWith(suffix.toLowerCase());"
  333. errorLine2=" ~~~~~~~~~~~">
  334. <location
  335. file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
  336. line="111"
  337. column="48"/>
  338. </issue>
  339. <issue
  340. id="DefaultLocale"
  341. message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  342. errorLine1=" .toLowerCase().startsWith(prefix.toLowerCase());"
  343. errorLine2=" ~~~~~~~~~~~">
  344. <location
  345. file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
  346. line="125"
  347. column="18"/>
  348. </issue>
  349. <issue
  350. id="DefaultLocale"
  351. message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  352. errorLine1=" .toLowerCase().startsWith(prefix.toLowerCase());"
  353. errorLine2=" ~~~~~~~~~~~">
  354. <location
  355. file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
  356. line="125"
  357. column="50"/>
  358. </issue>
  359. <issue
  360. id="DefaultLocale"
  361. message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
  362. errorLine1=" else -> String.format(&quot;%.1f MB&quot;, bytes / (1024.0 * 1024.0))"
  363. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  364. <location
  365. file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
  366. line="229"
  367. column="25"/>
  368. </issue>
  369. <issue
  370. id="DefaultLocale"
  371. message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
  372. errorLine1=" sb.append(sTmp.toUpperCase());"
  373. errorLine2=" ~~~~~~~~~~~">
  374. <location
  375. file="src/main/java/me/ag2s/umdlib/tool/UmdUtils.java"
  376. line="64"
  377. column="28"/>
  378. </issue>
  379. <issue
  380. id="NewApi"
  381. message="Call requires API level 33 (current min is 26): `BgEffectPainter`"
  382. errorLine1=" val painter = remember(isOs3Effect) { BgEffectPainter(isOs3Effect) }"
  383. errorLine2=" ~~~~~~~~~~~~~~~">
  384. <location
  385. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectBackground.kt"
  386. line="44"
  387. column="47"/>
  388. </issue>
  389. <issue
  390. id="NewApi"
  391. message="Call requires API level 33 (current min is 26): `updateResolution`"
  392. errorLine1=" painter.updateResolution(size.width, size.height)"
  393. errorLine2=" ~~~~~~~~~~~~~~~~">
  394. <location
  395. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  396. line="157"
  397. column="25"/>
  398. </issue>
  399. <issue
  400. id="NewApi"
  401. message="Call requires API level 33 (current min is 26): `updateBoundIfNeeded`"
  402. errorLine1=" painter.updateBoundIfNeeded(drawHeight, size.height, size.width)"
  403. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  404. <location
  405. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  406. line="158"
  407. column="25"/>
  408. </issue>
  409. <issue
  410. id="NewApi"
  411. message="Call requires API level 33 (current min is 26): `updatePresetIfNeeded`"
  412. errorLine1=" painter.updatePresetIfNeeded(preset)"
  413. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  414. <location
  415. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  416. line="159"
  417. column="25"/>
  418. </issue>
  419. <issue
  420. id="NewApi"
  421. message="Call requires API level 33 (current min is 26): `updateColors`"
  422. errorLine1=" painter.updateColors(preset, colorStage())"
  423. errorLine2=" ~~~~~~~~~~~~">
  424. <location
  425. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  426. line="160"
  427. column="25"/>
  428. </issue>
  429. <issue
  430. id="NewApi"
  431. message="Call requires API level 33 (current min is 26): `updateAnimTime`"
  432. errorLine1=" painter.updateAnimTime(animTime)"
  433. errorLine2=" ~~~~~~~~~~~~~~">
  434. <location
  435. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  436. line="161"
  437. column="25"/>
  438. </issue>
  439. <issue
  440. id="NewApi"
  441. message="Call requires API level 33 (current min is 26): `updatePointsAnim`"
  442. errorLine1=" painter.updatePointsAnim(animTime, preset)"
  443. errorLine2=" ~~~~~~~~~~~~~~~~">
  444. <location
  445. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  446. line="162"
  447. column="25"/>
  448. </issue>
  449. <issue
  450. id="NewApi"
  451. message="Field requires API level 33 (current min is 26): `getBrush`"
  452. errorLine1=" drawRect(painter.brush, alpha = alphaValue)"
  453. errorLine2=" ~~~~~">
  454. <location
  455. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  456. line="164"
  457. column="34"/>
  458. </issue>
  459. <issue
  460. id="TrimLambda"
  461. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  462. errorLine1=" val text = item.text().trim { it &lt;= &apos; &apos; }"
  463. errorLine2=" ~~~~~~~~~~~~~">
  464. <location
  465. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
  466. line="243"
  467. column="49"/>
  468. </issue>
  469. <issue
  470. id="TrimLambda"
  471. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  472. errorLine1=" val rus = rule.trim { it &lt;= &apos; &apos; }"
  473. errorLine2=" ~~~~~~~~~~~~~">
  474. <location
  475. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
  476. line="408"
  477. column="33"/>
  478. </issue>
  479. <issue
  480. id="TrimLambda"
  481. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  482. errorLine1=" ruleStr.substring(5).trim { it &lt;= &apos; &apos; }"
  483. errorLine2=" ~~~~~~~~~~~~~">
  484. <location
  485. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
  486. line="518"
  487. column="39"/>
  488. </issue>
  489. <issue
  490. id="TrimLambda"
  491. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  492. errorLine1=" tmp = ruleStr.substring(start, jsMatcher.start()).trim { it &lt;= &apos; &apos; }"
  493. errorLine2=" ~~~~~~~~~~~~~">
  494. <location
  495. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
  496. line="548"
  497. column="72"/>
  498. </issue>
  499. <issue
  500. id="TrimLambda"
  501. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  502. errorLine1=" tmp = ruleStr.substring(start, webJsMatcher.start()).trim { it &lt;= &apos; &apos; }"
  503. errorLine2=" ~~~~~~~~~~~~~">
  504. <location
  505. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
  506. line="560"
  507. column="75"/>
  508. </issue>
  509. <issue
  510. id="TrimLambda"
  511. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  512. errorLine1=" tmp = ruleStr.substring(start).trim { it &lt;= &apos; &apos; }"
  513. errorLine2=" ~~~~~~~~~~~~~">
  514. <location
  515. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
  516. line="570"
  517. column="49"/>
  518. </issue>
  519. <issue
  520. id="TrimLambda"
  521. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  522. errorLine1=" ruleUrl.replace(matcher.group(), pages[page - 1].trim { it &lt;= &apos; &apos; })"
  523. errorLine2=" ~~~~~~~~~~~~~">
  524. <location
  525. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt"
  526. line="211"
  527. column="75"/>
  528. </issue>
  529. <issue
  530. id="TrimLambda"
  531. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  532. errorLine1=" ruleUrl.replace(matcher.group(), pages.last().trim { it &lt;= &apos; &apos; })"
  533. errorLine2=" ~~~~~~~~~~~~~">
  534. <location
  535. file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt"
  536. line="213"
  537. column="72"/>
  538. </issue>
  539. <issue
  540. id="TrimLambda"
  541. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  542. errorLine1=" .trim { it &lt;= &apos; &apos; }"
  543. errorLine2=" ~~~~~~~~~~~~~">
  544. <location
  545. file="src/main/java/io/legado/app/help/book/BookHelp.kt"
  546. line="819"
  547. column="19"/>
  548. </issue>
  549. <issue
  550. id="TrimLambda"
  551. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  552. errorLine1=" .trim { it &lt;= &apos; &apos; }"
  553. errorLine2=" ~~~~~~~~~~~~~">
  554. <location
  555. file="src/main/java/io/legado/app/help/book/BookHelp.kt"
  556. line="828"
  557. column="19"/>
  558. </issue>
  559. <issue
  560. id="TrimLambda"
  561. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  562. errorLine1=" if (chapterName.trim { it &lt;= &apos; &apos; } != p[0].trim { it &lt;= &apos; &apos; }) {"
  563. errorLine2=" ~~~~~~~~~~~~~">
  564. <location
  565. file="src/main/java/io/legado/app/help/book/ContentHelp.kt"
  566. line="30"
  567. column="30"/>
  568. </issue>
  569. <issue
  570. id="TrimLambda"
  571. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  572. errorLine1=" if (chapterName.trim { it &lt;= &apos; &apos; } != p[0].trim { it &lt;= &apos; &apos; }) {"
  573. errorLine2=" ~~~~~~~~~~~~~">
  574. <location
  575. file="src/main/java/io/legado/app/help/book/ContentHelp.kt"
  576. line="30"
  577. column="57"/>
  578. </issue>
  579. <issue
  580. id="TrimLambda"
  581. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  582. errorLine1=" val key = pairs[0].trim { it &lt;= &apos; &apos; }"
  583. errorLine2=" ~~~~~~~~~~~~~">
  584. <location
  585. file="src/main/java/io/legado/app/help/http/CookieStore.kt"
  586. line="98"
  587. column="37"/>
  588. </issue>
  589. <issue
  590. id="TrimLambda"
  591. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  592. errorLine1=" if (value.isNotBlank() || value.trim { it &lt;= &apos; &apos; } == &quot;null&quot;) {"
  593. errorLine2=" ~~~~~~~~~~~~~">
  594. <location
  595. file="src/main/java/io/legado/app/help/http/CookieStore.kt"
  596. line="100"
  597. column="50"/>
  598. </issue>
  599. <issue
  600. id="TrimLambda"
  601. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  602. errorLine1=" cookieMap[key] = value.trim { it &lt;= &apos; &apos; }"
  603. errorLine2=" ~~~~~~~~~~~~~">
  604. <location
  605. file="src/main/java/io/legado/app/help/http/CookieStore.kt"
  606. line="101"
  607. column="45"/>
  608. </issue>
  609. <issue
  610. id="TrimLambda"
  611. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  612. errorLine1=" return String(data, Charset.forName(charset)).trim { it &lt;= &apos; &apos; }"
  613. errorLine2=" ~~~~~~~~~~~~~">
  614. <location
  615. file="src/main/java/io/legado/app/utils/FileUtils.kt"
  616. line="456"
  617. column="68"/>
  618. </issue>
  619. <issue
  620. id="TrimLambda"
  621. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  622. errorLine1=" val text = StringUtil.releaseBuilder(sb).trim { it &lt;= &apos; &apos; }"
  623. errorLine2=" ~~~~~~~~~~~~~">
  624. <location
  625. file="src/main/java/io/legado/app/utils/JsoupExtensions.kt"
  626. line="37"
  627. column="51"/>
  628. </issue>
  629. <issue
  630. id="TrimLambda"
  631. message="The lambda argument (`{ it &lt;= &apos; &apos; }`) is unnecessary"
  632. errorLine1=" result.append(&quot;\n&quot;).append(url.trim { it &lt;= &apos; &apos; })"
  633. errorLine2=" ~~~~~~~~~~~~~">
  634. <location
  635. file="src/main/java/io/legado/app/receiver/SharedReceiverActivity.kt"
  636. line="51"
  637. column="53"/>
  638. </issue>
  639. <issue
  640. id="UnusedAttribute"
  641. message="Attribute `screenReaderFocusable` is only used in API level 28 and higher (current min is 26)"
  642. errorLine1=" android:screenReaderFocusable=&quot;true&quot;>"
  643. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  644. <location
  645. file="src/main/res/layout/item_theme_card.xml"
  646. line="23"
  647. column="9"/>
  648. </issue>
  649. <issue
  650. id="UnusedAttribute"
  651. message="Attribute `screenReaderFocusable` is only used in API level 28 and higher (current min is 26)"
  652. errorLine1=" android:screenReaderFocusable=&quot;true&quot;>"
  653. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  654. <location
  655. file="src/main/res/layout/view_preference.xml"
  656. line="15"
  657. column="5"/>
  658. </issue>
  659. <issue
  660. id="WrongConstant"
  661. message="Must be one of: BookType.text, BookType.updateError, BookType.audio, BookType.image, BookType.webFile, BookType.local, BookType.archive, BookType.notShelf"
  662. errorLine1=" get() = isType(BookType.video)"
  663. errorLine2=" ~~~~~~~~~~~~~~">
  664. <location
  665. file="src/main/java/io/legado/app/help/book/BookExtensions.kt"
  666. line="54"
  667. column="20"/>
  668. </issue>
  669. <issue
  670. id="WrongConstant"
  671. message="Flag not allowed here"
  672. errorLine1=" const val allBookType = text or image or audio or webFile"
  673. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  674. <location
  675. file="src/main/java/io/legado/app/constant/BookType.kt"
  676. line="65"
  677. column="29"/>
  678. </issue>
  679. <issue
  680. id="WrongConstant"
  681. message="Must be one of: RecyclerView.HORIZONTAL, RecyclerView.VERTICAL"
  682. errorLine1=" return LinearLayoutManager(recyclerView.context, orientation, reverseLayout)"
  683. errorLine2=" ~~~~~~~~~~~">
  684. <location
  685. file="src/main/java/io/legado/app/help/LayoutManager.kt"
  686. line="32"
  687. column="66"/>
  688. </issue>
  689. <issue
  690. id="WrongConstant"
  691. message="Must be one of: RecyclerView.HORIZONTAL, RecyclerView.VERTICAL"
  692. errorLine1=" orientation,"
  693. errorLine2=" ~~~~~~~~~~~">
  694. <location
  695. file="src/main/java/io/legado/app/help/LayoutManager.kt"
  696. line="57"
  697. column="21"/>
  698. </issue>
  699. <issue
  700. id="WrongConstant"
  701. message="Must be one or more of: InputMethodManager.SHOW_IMPLICIT, InputMethodManager.SHOW_FORCED"
  702. errorLine1=" inputMethodManager.showSoftInput(this, InputMethodManager.RESULT_SHOWN)"
  703. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  704. <location
  705. file="src/main/java/io/legado/app/utils/ViewExtensions.kt"
  706. line="72"
  707. column="44"/>
  708. </issue>
  709. <issue
  710. id="AppCompatResource"
  711. message="Should use `app:showAsAction` with the appcompat library with `xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;`"
  712. errorLine1=" android:showAsAction=&quot;always&quot;"
  713. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  714. <location
  715. file="src/main/res/menu/main_my.xml"
  716. line="8"
  717. column="9"/>
  718. </issue>
  719. <issue
  720. id="AndroidGradlePluginVersion"
  721. message="A newer version of com.android.application than 9.2.1 is available: 9.3.1"
  722. errorLine1="agp = &quot;9.2.1&quot;"
  723. errorLine2=" ~~~~~~~">
  724. <location
  725. file="../gradle/libs.versions.toml"
  726. line="21"
  727. column="7"/>
  728. </issue>
  729. <issue
  730. id="AndroidGradlePluginVersion"
  731. message="A newer version of com.android.library than 9.2.1 is available: 9.3.1"
  732. errorLine1="agp = &quot;9.2.1&quot;"
  733. errorLine2=" ~~~~~~~">
  734. <location
  735. file="../gradle/libs.versions.toml"
  736. line="21"
  737. column="7"/>
  738. </issue>
  739. <issue
  740. id="AndroidGradlePluginVersion"
  741. message="A newer version of com.android.test than 9.2.1 is available: 9.3.1"
  742. errorLine1="agp = &quot;9.2.1&quot;"
  743. errorLine2=" ~~~~~~~">
  744. <location
  745. file="../gradle/libs.versions.toml"
  746. line="21"
  747. column="7"/>
  748. </issue>
  749. <issue
  750. id="GradleDependency"
  751. message="A newer version of org.jetbrains.kotlin:kotlin-stdlib than 2.4.0 is available: 2.4.10"
  752. errorLine1="kotlin = &quot;2.4.0&quot;"
  753. errorLine2=" ~~~~~~~">
  754. <location
  755. file="../gradle/libs.versions.toml"
  756. line="15"
  757. column="10"/>
  758. </issue>
  759. <issue
  760. id="GradleDependency"
  761. message="A newer version of com.google.devtools.ksp than 2.3.6 is available: 2.3.10"
  762. errorLine1="ksp = &quot;2.3.6&quot;"
  763. errorLine2=" ~~~~~~~">
  764. <location
  765. file="../gradle/libs.versions.toml"
  766. line="20"
  767. column="7"/>
  768. </issue>
  769. <issue
  770. id="GradleDependency"
  771. message="A newer version of com.google.firebase:firebase-bom than 34.6.0 is available: 34.16.0"
  772. errorLine1="firebaseBom = &quot;34.6.0&quot;"
  773. errorLine2=" ~~~~~~~~">
  774. <location
  775. file="../gradle/libs.versions.toml"
  776. line="28"
  777. column="15"/>
  778. </issue>
  779. <issue
  780. id="GradleDependency"
  781. message="A newer version of androidx.compose.material3:material3 than 1.5.0-alpha23 is available: 1.5.0-alpha24"
  782. errorLine1="material3 = &quot;1.5.0-alpha23&quot;"
  783. errorLine2=" ~~~~~~~~~~~~~~~">
  784. <location
  785. file="../gradle/libs.versions.toml"
  786. line="56"
  787. column="13"/>
  788. </issue>
  789. <issue
  790. id="GradleDependency"
  791. message="A newer version of androidx.media3:media3-datasource-okhttp than 1.8.0 is available: 1.10.1"
  792. errorLine1="media3 = &quot;1.8.0&quot;"
  793. errorLine2=" ~~~~~~~">
  794. <location
  795. file="../gradle/libs.versions.toml"
  796. line="60"
  797. column="10"/>
  798. </issue>
  799. <issue
  800. id="GradleDependency"
  801. message="A newer version of androidx.media3:media3-exoplayer than 1.8.0 is available: 1.10.1"
  802. errorLine1="media3 = &quot;1.8.0&quot;"
  803. errorLine2=" ~~~~~~~">
  804. <location
  805. file="../gradle/libs.versions.toml"
  806. line="60"
  807. column="10"/>
  808. </issue>
  809. <issue
  810. id="GradleDependency"
  811. message="A newer version of com.google.gms.google-services than 4.4.4 is available: 4.5.0"
  812. errorLine1="google-services = { id = &quot;com.google.gms.google-services&quot;, version = &quot;4.4.4&quot; }"
  813. errorLine2=" ~~~~~~~">
  814. <location
  815. file="../gradle/libs.versions.toml"
  816. line="270"
  817. column="70"/>
  818. </issue>
  819. <issue
  820. id="NewerVersionAvailable"
  821. message="A newer version of org.jetbrains.kotlin.plugin.compose than 2.4.0 is available: 2.4.10"
  822. errorLine1="kotlin = &quot;2.4.0&quot;"
  823. errorLine2=" ~~~~~~~">
  824. <location
  825. file="../gradle/libs.versions.toml"
  826. line="15"
  827. column="10"/>
  828. </issue>
  829. <issue
  830. id="NewerVersionAvailable"
  831. message="A newer version of org.jetbrains.kotlin.plugin.parcelize than 2.4.0 is available: 2.4.10"
  832. errorLine1="kotlin = &quot;2.4.0&quot;"
  833. errorLine2=" ~~~~~~~">
  834. <location
  835. file="../gradle/libs.versions.toml"
  836. line="15"
  837. column="10"/>
  838. </issue>
  839. <issue
  840. id="NewerVersionAvailable"
  841. message="A newer version of org.jetbrains.kotlin.plugin.serialization than 2.4.0 is available: 2.4.10"
  842. errorLine1="kotlin = &quot;2.4.0&quot;"
  843. errorLine2=" ~~~~~~~">
  844. <location
  845. file="../gradle/libs.versions.toml"
  846. line="15"
  847. column="10"/>
  848. </issue>
  849. <issue
  850. id="NewerVersionAvailable"
  851. message="A newer version of cn.hutool:hutool-crypto than 5.8.22 is available: 5.8.47"
  852. errorLine1="hutool = &quot;5.8.22&quot;"
  853. errorLine2=" ~~~~~~~~">
  854. <location
  855. file="../gradle/libs.versions.toml"
  856. line="33"
  857. column="10"/>
  858. </issue>
  859. <issue
  860. id="NewerVersionAvailable"
  861. message="A newer version of com.github.bumptech.glide:glide than 5.0.7 is available: 5.0.9"
  862. errorLine1="glide = &quot;5.0.7&quot;"
  863. errorLine2=" ~~~~~~~">
  864. <location
  865. file="../gradle/libs.versions.toml"
  866. line="37"
  867. column="9"/>
  868. </issue>
  869. <issue
  870. id="NewerVersionAvailable"
  871. message="A newer version of com.github.bumptech.glide:ksp than 5.0.7 is available: 5.0.9"
  872. errorLine1="glide = &quot;5.0.7&quot;"
  873. errorLine2=" ~~~~~~~">
  874. <location
  875. file="../gradle/libs.versions.toml"
  876. line="37"
  877. column="9"/>
  878. </issue>
  879. <issue
  880. id="NewerVersionAvailable"
  881. message="A newer version of com.github.bumptech.glide:okhttp3-integration than 5.0.7 is available: 5.0.9"
  882. errorLine1="glide = &quot;5.0.7&quot;"
  883. errorLine2=" ~~~~~~~">
  884. <location
  885. file="../gradle/libs.versions.toml"
  886. line="37"
  887. column="9"/>
  888. </issue>
  889. <issue
  890. id="NewerVersionAvailable"
  891. message="A newer version of com.github.bumptech.glide:recyclerview-integration than 5.0.7 is available: 5.0.9"
  892. errorLine1="glide = &quot;5.0.7&quot;"
  893. errorLine2=" ~~~~~~~">
  894. <location
  895. file="../gradle/libs.versions.toml"
  896. line="37"
  897. column="9"/>
  898. </issue>
  899. <issue
  900. id="NewerVersionAvailable"
  901. message="A newer version of org.jetbrains:markdown-jvm than 0.7.3 is available: 0.7.8"
  902. errorLine1="intellijMarkdown = &quot;0.7.3&quot;"
  903. errorLine2=" ~~~~~~~">
  904. <location
  905. file="../gradle/libs.versions.toml"
  906. line="43"
  907. column="20"/>
  908. </issue>
  909. <issue
  910. id="NewerVersionAvailable"
  911. message="A newer version of org.jsoup:jsoup than 1.16.2 is available: 1.22.2"
  912. errorLine1="jsoup = &quot;1.16.2&quot;"
  913. errorLine2=" ~~~~~~~~">
  914. <location
  915. file="../gradle/libs.versions.toml"
  916. line="44"
  917. column="9"/>
  918. </issue>
  919. <issue
  920. id="NewerVersionAvailable"
  921. message="A newer version of com.materialkolor:material-kolor than 4.1.1 is available: 5.0.0"
  922. errorLine1="materialKolor = &quot;4.1.1&quot;"
  923. errorLine2=" ~~~~~~~">
  924. <location
  925. file="../gradle/libs.versions.toml"
  926. line="58"
  927. column="17"/>
  928. </issue>
  929. <issue
  930. id="NewerVersionAvailable"
  931. message="A newer version of com.google.protobuf:protobuf-javalite than 4.26.1 is available: 4.35.1"
  932. errorLine1="protobufJavalite = &quot;4.26.1&quot;"
  933. errorLine2=" ~~~~~~~~">
  934. <location
  935. file="../gradle/libs.versions.toml"
  936. line="65"
  937. column="20"/>
  938. </issue>
  939. <issue
  940. id="NewerVersionAvailable"
  941. message="A newer version of org.mozilla:rhino than 1.8.1 is available: 1.9.1"
  942. errorLine1="rhino = &quot;1.8.1&quot;"
  943. errorLine2=" ~~~~~~~">
  944. <location
  945. file="../gradle/libs.versions.toml"
  946. line="70"
  947. column="9"/>
  948. </issue>
  949. <issue
  950. id="NewerVersionAvailable"
  951. message="A newer version of com.github.jenly1314:zxing-lite than 3.4.1 is available: 3.5.0"
  952. errorLine1="zxingLite = &quot;3.4.1&quot;"
  953. errorLine2=" ~~~~~~~">
  954. <location
  955. file="../gradle/libs.versions.toml"
  956. line="85"
  957. column="13"/>
  958. </issue>
  959. <issue
  960. id="RestrictedApi"
  961. message="NavigationMenuView can only be accessed from within the same library group (referenced groupId=`com.google.android.material` from groupId=`legado`)"
  962. errorLine1=" val navigationMenuView = getChildAt(0) as? NavigationMenuView"
  963. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  964. <location
  965. file="src/main/java/io/legado/app/utils/NavigationViewUtils.kt"
  966. line="39"
  967. column="48"/>
  968. </issue>
  969. <issue
  970. id="SourceLockedOrientationActivity"
  971. message="You should not lock orientation of your activities, so that you can support a good user experience for any device or orientation"
  972. errorLine1=" &quot;1&quot; -> activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT"
  973. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  974. <location
  975. file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
  976. line="1572"
  977. column="20"/>
  978. </issue>
  979. <issue
  980. id="SourceLockedOrientationActivity"
  981. message="You should not lock orientation of your activities, so that you can support a good user experience for any device or orientation"
  982. errorLine1=" &quot;4&quot; -> activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT"
  983. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  984. <location
  985. file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
  986. line="1575"
  987. column="20"/>
  988. </issue>
  989. <issue
  990. id="ConfigurationScreenWidthHeight"
  991. message="Using Configuration.screenWidthDp instead of LocalWindowInfo.current.containerSize"
  992. errorLine1=" val requestWidth = with(density) { configuration.screenWidthDp.dp.roundToPx() }"
  993. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  994. <location
  995. file="src/main/java/io/legado/app/ui/widget/components/AppContainerBackground.kt"
  996. line="70"
  997. column="40"/>
  998. </issue>
  999. <issue
  1000. id="ConfigurationScreenWidthHeight"
  1001. message="Using Configuration.screenHeightDp instead of LocalWindowInfo.current.containerSize"
  1002. errorLine1=" val requestHeight = with(density) { configuration.screenHeightDp.dp.roundToPx() }"
  1003. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1004. <location
  1005. file="src/main/java/io/legado/app/ui/widget/components/AppContainerBackground.kt"
  1006. line="71"
  1007. column="41"/>
  1008. </issue>
  1009. <issue
  1010. id="LocalContextGetResourceValueCall"
  1011. message="Querying resource values using LocalContext.current"
  1012. errorLine1=" Toast.makeText(context, context.getString(R.string.export_started), Toast.LENGTH_SHORT).show()"
  1013. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1014. <location
  1015. file="src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkScreen.kt"
  1016. line="100"
  1017. column="37"/>
  1018. </issue>
  1019. <issue
  1020. id="LocalContextGetResourceValueCall"
  1021. message="Querying resource values using LocalContext.current"
  1022. errorLine1=" context.getString(effect.messageRes, it)"
  1023. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1024. <location
  1025. file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigScreen.kt"
  1026. line="124"
  1027. column="25"/>
  1028. </issue>
  1029. <issue
  1030. id="LocalContextGetResourceValueCall"
  1031. message="Querying resource values using LocalContext.current"
  1032. errorLine1=" } ?: context.getString(effect.messageRes)"
  1033. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1034. <location
  1035. file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigScreen.kt"
  1036. line="125"
  1037. column="26"/>
  1038. </issue>
  1039. <issue
  1040. id="LocalContextGetResourceValueCall"
  1041. message="Querying resource values using LocalContext.current"
  1042. errorLine1=" context.toastOnUi(context.getString(effect.messageRes))"
  1043. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1044. <location
  1045. file="src/main/java/io/legado/app/ui/widget/components/changeSource/ChangeSourceSheet.kt"
  1046. line="137"
  1047. column="39"/>
  1048. </issue>
  1049. <issue
  1050. id="LocalContextGetResourceValueCall"
  1051. message="Querying resource values using LocalContext.current"
  1052. errorLine1=" append(context.getString(effect.messageRes))"
  1053. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1054. <location
  1055. file="src/main/java/io/legado/app/ui/main/home/HomeScreen.kt"
  1056. line="301"
  1057. column="32"/>
  1058. </issue>
  1059. <issue
  1060. id="LocalContextGetResourceValueCall"
  1061. message="Querying resource values using LocalContext.current"
  1062. errorLine1=" it.localizedMessage ?: context.getString(R.string.save_failed)"
  1063. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1064. <location
  1065. file="src/main/java/io/legado/app/ui/main/MainNavGraph.kt"
  1066. line="817"
  1067. column="52"/>
  1068. </issue>
  1069. <issue
  1070. id="LocalContextGetResourceValueCall"
  1071. message="Querying resource values using LocalContext.current"
  1072. errorLine1=" if (success) context.getString(R.string.save_success)"
  1073. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1074. <location
  1075. file="src/main/java/io/legado/app/ui/book/read/sheet/PhotoSheet.kt"
  1076. line="92"
  1077. column="46"/>
  1078. </issue>
  1079. <issue
  1080. id="LocalContextGetResourceValueCall"
  1081. message="Querying resource values using LocalContext.current"
  1082. errorLine1=" context.getString(R.string.no_merge_candidates)"
  1083. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1084. <location
  1085. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
  1086. line="400"
  1087. column="49"/>
  1088. </issue>
  1089. <issue
  1090. id="LocalContextGetResourceValueCall"
  1091. message="Querying resource values using LocalContext.current"
  1092. errorLine1=" snackbarHostState.showSnackbar(context.getString(R.string.drag_disabled_in_sort_mode))"
  1093. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1094. <location
  1095. file="src/main/java/io/legado/app/ui/replace/ReplaceRuleScreen.kt"
  1096. line="410"
  1097. column="56"/>
  1098. </issue>
  1099. <issue
  1100. id="LocalContextGetResourceValueCall"
  1101. message="Querying resource values using LocalContext.current"
  1102. errorLine1=" snackbarHostState.showSnackbar(context.getString(R.string.drag_disabled_in_sort_mode))"
  1103. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1104. <location
  1105. file="src/main/java/io/legado/app/ui/replace/ReplaceRuleScreen.kt"
  1106. line="420"
  1107. column="56"/>
  1108. </issue>
  1109. <issue
  1110. id="LocalContextGetResourceValueCall"
  1111. message="Querying resource values using LocalContext.current"
  1112. errorLine1=" context.getString(R.string.font_scale_summary, it / 10f)"
  1113. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1114. <location
  1115. file="src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt"
  1116. line="295"
  1117. column="29"/>
  1118. </issue>
  1119. <issue
  1120. id="LocalContextGetResourceValueCall"
  1121. message="Querying resource values using LocalContext.current"
  1122. errorLine1=" context.getString(R.string.theme_manage_migrate_success, effect.migratedCount)"
  1123. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1124. <location
  1125. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
  1126. line="72"
  1127. column="25"/>
  1128. </issue>
  1129. <issue
  1130. id="LocalContextGetResourceValueCall"
  1131. message="Querying resource values using LocalContext.current"
  1132. errorLine1=" context.getString("
  1133. errorLine2=" ^">
  1134. <location
  1135. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
  1136. line="74"
  1137. column="25"/>
  1138. </issue>
  1139. <issue
  1140. id="LocalContextGetResourceValueCall"
  1141. message="Querying resource values using LocalContext.current"
  1142. errorLine1=" append(context.getString(effect.messageRes))"
  1143. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1144. <location
  1145. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
  1146. line="84"
  1147. column="32"/>
  1148. </issue>
  1149. <issue
  1150. id="ModifierFactoryExtensionFunction"
  1151. message="Modifier factory functions should be extensions on Modifier"
  1152. errorLine1="private fun swipeActionsSemantics("
  1153. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  1154. <location
  1155. file="src/main/java/io/legado/app/ui/widget/components/swipe/SwipeActionContainer.kt"
  1156. line="122"
  1157. column="13"/>
  1158. </issue>
  1159. <issue
  1160. id="ModifierParameter"
  1161. message="Modifier parameter should be the first optional parameter"
  1162. errorLine1=" modifier: Modifier = Modifier,"
  1163. errorLine2=" ~~~~~~~~">
  1164. <location
  1165. file="src/main/java/io/legado/app/ui/ai/chat/AiThinkingCard.kt"
  1166. line="53"
  1167. column="5"/>
  1168. </issue>
  1169. <issue
  1170. id="ModifierParameter"
  1171. message="Modifier parameter should be the first optional parameter"
  1172. errorLine1=" modifier: Modifier = Modifier,"
  1173. errorLine2=" ~~~~~~~~">
  1174. <location
  1175. file="src/main/java/io/legado/app/ui/widget/components/alert/AppAlertDialog.kt"
  1176. line="158"
  1177. column="5"/>
  1178. </issue>
  1179. <issue
  1180. id="ModifierParameter"
  1181. message="Modifier parameter should be the first optional parameter"
  1182. errorLine1=" modifier: Modifier = Modifier,"
  1183. errorLine2=" ~~~~~~~~">
  1184. <location
  1185. file="src/main/java/io/legado/app/ui/main/homepage/modules/BannerModule.kt"
  1186. line="42"
  1187. column="5"/>
  1188. </issue>
  1189. <issue
  1190. id="ModifierParameter"
  1191. message="Modifier parameter should be the first optional parameter"
  1192. errorLine1=" modifier: Modifier = Modifier"
  1193. errorLine2=" ~~~~~~~~">
  1194. <location
  1195. file="src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt"
  1196. line="323"
  1197. column="5"/>
  1198. </issue>
  1199. <issue
  1200. id="ModifierParameter"
  1201. message="Modifier parameter should be the first optional parameter"
  1202. errorLine1=" modifier: Modifier = Modifier,"
  1203. errorLine2=" ~~~~~~~~">
  1204. <location
  1205. file="src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt"
  1206. line="445"
  1207. column="5"/>
  1208. </issue>
  1209. <issue
  1210. id="ModifierParameter"
  1211. message="Modifier parameter should be the first optional parameter"
  1212. errorLine1=" modifier: Modifier = Modifier,"
  1213. errorLine2=" ~~~~~~~~">
  1214. <location
  1215. file="src/main/java/io/legado/app/ui/main/homepage/modules/CardModule.kt"
  1216. line="49"
  1217. column="5"/>
  1218. </issue>
  1219. <issue
  1220. id="ModifierParameter"
  1221. message="Modifier parameter should be the first optional parameter"
  1222. errorLine1=" modifier: Modifier = Modifier.width(64.dp),"
  1223. errorLine2=" ~~~~~~~~">
  1224. <location
  1225. file="src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt"
  1226. line="200"
  1227. column="5"/>
  1228. </issue>
  1229. <issue
  1230. id="ModifierParameter"
  1231. message="Optional Modifier parameter should have a default value of `Modifier`"
  1232. errorLine1=" modifier: Modifier = Modifier.width(64.dp),"
  1233. errorLine2=" ~~~~~~~~">
  1234. <location
  1235. file="src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt"
  1236. line="200"
  1237. column="5"/>
  1238. </issue>
  1239. <issue
  1240. id="ModifierParameter"
  1241. message="Modifier parameter should be the first optional parameter"
  1242. errorLine1=" modifier: Modifier = Modifier,"
  1243. errorLine2=" ~~~~~~~~">
  1244. <location
  1245. file="src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt"
  1246. line="52"
  1247. column="5"/>
  1248. </issue>
  1249. <issue
  1250. id="ModifierParameter"
  1251. message="Modifier parameter should be the first optional parameter"
  1252. errorLine1=" modifier: Modifier = Modifier,"
  1253. errorLine2=" ~~~~~~~~">
  1254. <location
  1255. file="src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt"
  1256. line="481"
  1257. column="5"/>
  1258. </issue>
  1259. <issue
  1260. id="ModifierParameter"
  1261. message="Modifier parameter should be the first optional parameter"
  1262. errorLine1=" modifier: Modifier = Modifier,"
  1263. errorLine2=" ~~~~~~~~">
  1264. <location
  1265. file="src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt"
  1266. line="505"
  1267. column="5"/>
  1268. </issue>
  1269. <issue
  1270. id="ModifierParameter"
  1271. message="Modifier parameter should be named modifier"
  1272. errorLine1=" dragHandleModifier: Modifier = Modifier,"
  1273. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  1274. <location
  1275. file="src/main/java/io/legado/app/ui/book/read/sheet/FloatingBarIconConfigSheet.kt"
  1276. line="191"
  1277. column="5"/>
  1278. </issue>
  1279. <issue
  1280. id="ModifierParameter"
  1281. message="Modifier parameter should be the first optional parameter"
  1282. errorLine1=" modifier: Modifier = Modifier,"
  1283. errorLine2=" ~~~~~~~~">
  1284. <location
  1285. file="src/main/java/io/legado/app/ui/main/homepage/modules/GridModule.kt"
  1286. line="25"
  1287. column="5"/>
  1288. </issue>
  1289. <issue
  1290. id="ModifierParameter"
  1291. message="Modifier parameter should be the first optional parameter"
  1292. errorLine1=" modifier: Modifier = Modifier,"
  1293. errorLine2=" ~~~~~~~~">
  1294. <location
  1295. file="src/main/java/io/legado/app/ui/main/homepage/modules/GridRankingModule.kt"
  1296. line="50"
  1297. column="5"/>
  1298. </issue>
  1299. <issue
  1300. id="ModifierParameter"
  1301. message="Modifier parameter should be the first optional parameter"
  1302. errorLine1=" modifier: Modifier = Modifier"
  1303. errorLine2=" ~~~~~~~~">
  1304. <location
  1305. file="src/main/java/io/legado/app/ui/widget/components/heatmap/HeatmapCalendarComponents.kt"
  1306. line="137"
  1307. column="5"/>
  1308. </issue>
  1309. <issue
  1310. id="ModifierParameter"
  1311. message="Modifier parameter should be the first optional parameter"
  1312. errorLine1=" modifier: Modifier = Modifier,"
  1313. errorLine2=" ~~~~~~~~">
  1314. <location
  1315. file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleFeed.kt"
  1316. line="563"
  1317. column="5"/>
  1318. </issue>
  1319. <issue
  1320. id="ModifierParameter"
  1321. message="Modifier parameter should be the first optional parameter"
  1322. errorLine1=" modifier: Modifier = Modifier,"
  1323. errorLine2=" ~~~~~~~~">
  1324. <location
  1325. file="src/main/java/io/legado/app/ui/book/knowledge/KnowledgeSharedComponents.kt"
  1326. line="44"
  1327. column="5"/>
  1328. </issue>
  1329. <issue
  1330. id="ModifierParameter"
  1331. message="Modifier parameter should be the first optional parameter"
  1332. errorLine1=" modifier: Modifier = Modifier,"
  1333. errorLine2=" ~~~~~~~~">
  1334. <location
  1335. file="src/main/java/io/legado/app/ui/main/homepage/modules/RankingModule.kt"
  1336. line="53"
  1337. column="5"/>
  1338. </issue>
  1339. <issue
  1340. id="ModifierParameter"
  1341. message="Modifier parameter should be named modifier"
  1342. errorLine1=" flowingTextModifier: Modifier,"
  1343. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  1344. <location
  1345. file="src/main/java/io/legado/app/ui/book/readaloud/player/ReadAloudPlayerScreen.kt"
  1346. line="503"
  1347. column="5"/>
  1348. </issue>
  1349. <issue
  1350. id="ModifierParameter"
  1351. message="Modifier parameter should be named modifier"
  1352. errorLine1=" flowingTextModifier: Modifier,"
  1353. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  1354. <location
  1355. file="src/main/java/io/legado/app/ui/book/readaloud/player/ReadAloudPlayerScreen.kt"
  1356. line="597"
  1357. column="5"/>
  1358. </issue>
  1359. <issue
  1360. id="ModifierParameter"
  1361. message="Modifier parameter should be the first optional parameter"
  1362. errorLine1=" modifier: Modifier = Modifier,"
  1363. errorLine2=" ~~~~~~~~">
  1364. <location
  1365. file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
  1366. line="1263"
  1367. column="5"/>
  1368. </issue>
  1369. <issue
  1370. id="ModifierParameter"
  1371. message="Modifier parameter should be the first optional parameter"
  1372. errorLine1=" modifier: Modifier = Modifier,"
  1373. errorLine2=" ~~~~~~~~">
  1374. <location
  1375. file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
  1376. line="1298"
  1377. column="5"/>
  1378. </issue>
  1379. <issue
  1380. id="ModifierParameter"
  1381. message="Modifier parameter should be the first optional parameter"
  1382. errorLine1=" modifier: Modifier = Modifier,"
  1383. errorLine2=" ~~~~~~~~">
  1384. <location
  1385. file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
  1386. line="2614"
  1387. column="5"/>
  1388. </issue>
  1389. <issue
  1390. id="ModifierParameter"
  1391. message="Modifier parameter should be the first optional parameter"
  1392. errorLine1=" modifier: Modifier = Modifier"
  1393. errorLine2=" ~~~~~~~~">
  1394. <location
  1395. file="src/main/java/io/legado/app/ui/book/readRecord/component/ReadRecordListItems.kt"
  1396. line="195"
  1397. column="5"/>
  1398. </issue>
  1399. <issue
  1400. id="ModifierParameter"
  1401. message="Modifier parameter should be the first optional parameter"
  1402. errorLine1=" modifier: Modifier = Modifier"
  1403. errorLine2=" ~~~~~~~~">
  1404. <location
  1405. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
  1406. line="1009"
  1407. column="5"/>
  1408. </issue>
  1409. <issue
  1410. id="ModifierParameter"
  1411. message="Modifier parameter should be the first optional parameter"
  1412. errorLine1=" modifier: Modifier = Modifier"
  1413. errorLine2=" ~~~~~~~~">
  1414. <location
  1415. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
  1416. line="1101"
  1417. column="5"/>
  1418. </issue>
  1419. <issue
  1420. id="ModifierParameter"
  1421. message="Modifier parameter should be the first optional parameter"
  1422. errorLine1=" modifier: Modifier = Modifier"
  1423. errorLine2=" ~~~~~~~~">
  1424. <location
  1425. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
  1426. line="1230"
  1427. column="5"/>
  1428. </issue>
  1429. <issue
  1430. id="ModifierParameter"
  1431. message="Modifier parameter should be the first optional parameter"
  1432. errorLine1=" modifier: Modifier = Modifier,"
  1433. errorLine2=" ~~~~~~~~">
  1434. <location
  1435. file="src/main/java/io/legado/app/ui/book/read/sheet/ReadStyleSheet.kt"
  1436. line="53"
  1437. column="5"/>
  1438. </issue>
  1439. <issue
  1440. id="ModifierParameter"
  1441. message="Modifier parameter should be the first optional parameter"
  1442. errorLine1=" modifier: Modifier = Modifier,"
  1443. errorLine2=" ~~~~~~~~">
  1444. <location
  1445. file="src/main/java/io/legado/app/ui/widget/components/menuItem/RoundDropdownMenuItem.kt"
  1446. line="48"
  1447. column="5"/>
  1448. </issue>
  1449. <issue
  1450. id="ModifierParameter"
  1451. message="Modifier parameter should be the first optional parameter"
  1452. errorLine1=" modifier: Modifier = Modifier"
  1453. errorLine2=" ~~~~~~~~">
  1454. <location
  1455. file="src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt"
  1456. line="100"
  1457. column="5"/>
  1458. </issue>
  1459. <issue
  1460. id="ModifierParameter"
  1461. message="Modifier parameter should be the first optional parameter"
  1462. errorLine1=" modifier: Modifier = Modifier,"
  1463. errorLine2=" ~~~~~~~~">
  1464. <location
  1465. file="src/main/java/io/legado/app/ui/widget/components/book/SearchBookItem.kt"
  1466. line="53"
  1467. column="5"/>
  1468. </issue>
  1469. <issue
  1470. id="ModifierParameter"
  1471. message="Modifier parameter should be the first optional parameter"
  1472. errorLine1=" modifier: Modifier = Modifier,"
  1473. errorLine2=" ~~~~~~~~">
  1474. <location
  1475. file="src/main/java/io/legado/app/ui/widget/components/book/SearchBookItem.kt"
  1476. line="199"
  1477. column="5"/>
  1478. </issue>
  1479. <issue
  1480. id="ModifierParameter"
  1481. message="Modifier parameter should be the first optional parameter"
  1482. errorLine1=" modifier: Modifier = Modifier,"
  1483. errorLine2=" ~~~~~~~~">
  1484. <location
  1485. file="src/main/java/io/legado/app/ui/book/search/SearchSourceSection.kt"
  1486. line="45"
  1487. column="5"/>
  1488. </issue>
  1489. <issue
  1490. id="ModifierParameter"
  1491. message="Optional Modifier parameter should have a default value of `Modifier`"
  1492. errorLine1=" modifier: Modifier = Modifier.size(32.dp),"
  1493. errorLine2=" ~~~~~~~~">
  1494. <location
  1495. file="src/main/java/io/legado/app/ui/widget/components/image/sourceIcon/SourceIcon.kt"
  1496. line="40"
  1497. column="5"/>
  1498. </issue>
  1499. <issue
  1500. id="ModifierParameter"
  1501. message="Modifier parameter should be named modifier"
  1502. errorLine1=" dragHandleModifier: Modifier = Modifier"
  1503. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  1504. <location
  1505. file="src/main/java/io/legado/app/ui/book/read/sheet/TextSelectMenuConfigSheet.kt"
  1506. line="328"
  1507. column="5"/>
  1508. </issue>
  1509. <issue
  1510. id="ModifierParameter"
  1511. message="Modifier parameter should be named modifier"
  1512. errorLine1=" dragHandleModifier: Modifier = Modifier"
  1513. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  1514. <location
  1515. file="src/main/java/io/legado/app/ui/book/read/sheet/TextSelectMenuConfigSheet.kt"
  1516. line="403"
  1517. column="5"/>
  1518. </issue>
  1519. <issue
  1520. id="ModifierParameter"
  1521. message="Modifier parameter should be the first optional parameter"
  1522. errorLine1=" modifier: Modifier = Modifier,"
  1523. errorLine2=" ~~~~~~~~">
  1524. <location
  1525. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1526. line="78"
  1527. column="5"/>
  1528. </issue>
  1529. <issue
  1530. id="ModifierParameter"
  1531. message="Modifier parameter should be the first optional parameter"
  1532. errorLine1=" modifier: Modifier = Modifier,"
  1533. errorLine2=" ~~~~~~~~">
  1534. <location
  1535. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1536. line="201"
  1537. column="5"/>
  1538. </issue>
  1539. <issue
  1540. id="ModifierParameter"
  1541. message="Modifier parameter should be the first optional parameter"
  1542. errorLine1=" modifier: Modifier = Modifier,"
  1543. errorLine2=" ~~~~~~~~">
  1544. <location
  1545. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1546. line="262"
  1547. column="5"/>
  1548. </issue>
  1549. <issue
  1550. id="ModifierParameter"
  1551. message="Modifier parameter should be the first optional parameter"
  1552. errorLine1=" modifier: Modifier = Modifier,"
  1553. errorLine2=" ~~~~~~~~">
  1554. <location
  1555. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1556. line="329"
  1557. column="5"/>
  1558. </issue>
  1559. <issue
  1560. id="ModifierParameter"
  1561. message="Modifier parameter should be the first optional parameter"
  1562. errorLine1=" modifier: Modifier = Modifier,"
  1563. errorLine2=" ~~~~~~~~">
  1564. <location
  1565. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1566. line="361"
  1567. column="5"/>
  1568. </issue>
  1569. <issue
  1570. id="ModifierParameter"
  1571. message="Modifier parameter should be the first optional parameter"
  1572. errorLine1=" modifier: Modifier = Modifier,"
  1573. errorLine2=" ~~~~~~~~">
  1574. <location
  1575. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1576. line="392"
  1577. column="5"/>
  1578. </issue>
  1579. <issue
  1580. id="ModifierParameter"
  1581. message="Modifier parameter should be the first optional parameter"
  1582. errorLine1=" modifier: Modifier = Modifier,"
  1583. errorLine2=" ~~~~~~~~">
  1584. <location
  1585. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1586. line="431"
  1587. column="5"/>
  1588. </issue>
  1589. <issue
  1590. id="ModifierParameter"
  1591. message="Modifier parameter should be the first optional parameter"
  1592. errorLine1=" modifier: Modifier = Modifier,"
  1593. errorLine2=" ~~~~~~~~">
  1594. <location
  1595. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1596. line="562"
  1597. column="5"/>
  1598. </issue>
  1599. <issue
  1600. id="ModifierParameter"
  1601. message="Modifier parameter should be the first optional parameter"
  1602. errorLine1=" modifier: Modifier = Modifier,"
  1603. errorLine2=" ~~~~~~~~">
  1604. <location
  1605. file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
  1606. line="654"
  1607. column="5"/>
  1608. </issue>
  1609. <issue
  1610. id="ModifierParameter"
  1611. message="Modifier parameter should be the first optional parameter"
  1612. errorLine1=" modifier: Modifier = Modifier,"
  1613. errorLine2=" ~~~~~~~~">
  1614. <location
  1615. file="src/main/java/io/legado/app/ui/book/read/sheet/TypographyPage.kt"
  1616. line="57"
  1617. column="5"/>
  1618. </issue>
  1619. <issue
  1620. id="ModifierParameter"
  1621. message="Modifier parameter should be the first optional parameter"
  1622. errorLine1=" modifier: Modifier = Modifier,"
  1623. errorLine2=" ~~~~~~~~">
  1624. <location
  1625. file="src/main/java/io/legado/app/ui/book/read/sheet/TypographyTabs.kt"
  1626. line="419"
  1627. column="5"/>
  1628. </issue>
  1629. <issue
  1630. id="ModifierParameter"
  1631. message="Modifier parameter should be the first optional parameter"
  1632. errorLine1=" modifier: Modifier = Modifier,"
  1633. errorLine2=" ~~~~~~~~">
  1634. <location
  1635. file="src/main/java/io/legado/app/ui/main/homepage/modules/WaterfallModule.kt"
  1636. line="45"
  1637. column="5"/>
  1638. </issue>
  1639. <issue
  1640. id="MutableCollectionMutableState"
  1641. message="Creating a MutableState object with a mutable collection type"
  1642. errorLine1=" mutableStateOf(hashMapOf&lt;String, String>())"
  1643. errorLine2=" ~~~~~~~~~~~~~~">
  1644. <location
  1645. file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleFeed.kt"
  1646. line="105"
  1647. column="13"/>
  1648. </issue>
  1649. <issue
  1650. id="UnusedContentLambdaTargetStateParameter"
  1651. message="Target state parameter `_` is not used"
  1652. errorLine1=" ) { _ ->"
  1653. errorLine2=" ~">
  1654. <location
  1655. file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleManageSheet.kt"
  1656. line="251"
  1657. column="13"/>
  1658. </issue>
  1659. <issue
  1660. id="DiscouragedApi"
  1661. message="Use of this function is discouraged because resource reflection makes it harder to perform build optimizations and compile-time verification of code. It is much more efficient to retrieve resources by identifier (e.g. `R.foo.bar`) than by name (e.g. `getIdentifier(&quot;bar&quot;, &quot;foo&quot;, null)`)."
  1662. errorLine1=" .getIdentifier(iconName.toString(), &quot;mipmap&quot;, context.packageName)"
  1663. errorLine2=" ~~~~~~~~~~~~~">
  1664. <location
  1665. file="src/main/java/io/legado/app/lib/prefs/IconListPreference.kt"
  1666. line="44"
  1667. column="18"/>
  1668. </issue>
  1669. <issue
  1670. id="DiscouragedApi"
  1671. message="Use of this function is discouraged because resource reflection makes it harder to perform build optimizations and compile-time verification of code. It is much more efficient to retrieve resources by identifier (e.g. `R.foo.bar`) than by name (e.g. `getIdentifier(&quot;bar&quot;, &quot;foo&quot;, null)`)."
  1672. errorLine1=" val resId = context.resources.getIdentifier(it[index].toString(), &quot;mipmap&quot;, context.packageName)"
  1673. errorLine2=" ~~~~~~~~~~~~~">
  1674. <location
  1675. file="src/main/java/io/legado/app/lib/prefs/IconListPreference.kt"
  1676. line="168"
  1677. column="55"/>
  1678. </issue>
  1679. <issue
  1680. id="UseCompatLoadingForDrawables"
  1681. message="Use `ResourcesCompat.getDrawable()`"
  1682. errorLine1=" ?: return appCtx.resources.getDrawable(R.drawable.image_cover_default, null)"
  1683. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1684. <location
  1685. file="src/main/java/io/legado/app/model/BookCover.kt"
  1686. line="87"
  1687. column="23"/>
  1688. </issue>
  1689. <issue
  1690. id="UseCompatLoadingForDrawables"
  1691. message="Use `ResourcesCompat.getDrawable()`"
  1692. errorLine1=" }.getOrDefault(appCtx.resources.getDrawable(R.drawable.image_cover_default, null))"
  1693. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1694. <location
  1695. file="src/main/java/io/legado/app/model/BookCover.kt"
  1696. line="96"
  1697. column="28"/>
  1698. </issue>
  1699. <issue
  1700. id="LogNotTimber"
  1701. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1702. errorLine1=" Log.e(stackTrace[3].className, message, throwable)"
  1703. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1704. <location
  1705. file="src/main/java/io/legado/app/constant/AppLog.kt"
  1706. line="33"
  1707. column="13"/>
  1708. </issue>
  1709. <issue
  1710. id="LogNotTimber"
  1711. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1712. errorLine1=" Log.e(stackTrace[3].className, message, throwable)"
  1713. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1714. <location
  1715. file="src/main/java/io/legado/app/constant/AppLog.kt"
  1716. line="49"
  1717. column="13"/>
  1718. </issue>
  1719. <issue
  1720. id="LogNotTimber"
  1721. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1722. errorLine1=" Log.d(&quot;sourceDebug&quot;, msg)"
  1723. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
  1724. <location
  1725. file="src/main/java/io/legado/app/model/Debug.kt"
  1726. line="47"
  1727. column="13"/>
  1728. </issue>
  1729. <issue
  1730. id="LogNotTimber"
  1731. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1732. errorLine1=" Log.e(tag, throwable.stackTraceToString())"
  1733. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1734. <location
  1735. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1736. line="10"
  1737. column="13"/>
  1738. </issue>
  1739. <issue
  1740. id="LogNotTimber"
  1741. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1742. errorLine1=" Log.e(tag, msg)"
  1743. errorLine2=" ~~~~~~~~~~~~~~~">
  1744. <location
  1745. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1746. line="17"
  1747. column="17"/>
  1748. </issue>
  1749. <issue
  1750. id="LogNotTimber"
  1751. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1752. errorLine1=" Log.e(tag, msg, throwable)"
  1753. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1754. <location
  1755. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1756. line="19"
  1757. column="17"/>
  1758. </issue>
  1759. <issue
  1760. id="LogNotTimber"
  1761. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1762. errorLine1=" Log.d(tag, msg)"
  1763. errorLine2=" ~~~~~~~~~~~~~~~">
  1764. <location
  1765. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1766. line="27"
  1767. column="17"/>
  1768. </issue>
  1769. <issue
  1770. id="LogNotTimber"
  1771. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1772. errorLine1=" Log.d(tag, msg, throwable)"
  1773. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1774. <location
  1775. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1776. line="29"
  1777. column="17"/>
  1778. </issue>
  1779. <issue
  1780. id="LogNotTimber"
  1781. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1782. errorLine1=" Log.i(tag, msg)"
  1783. errorLine2=" ~~~~~~~~~~~~~~~">
  1784. <location
  1785. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1786. line="37"
  1787. column="17"/>
  1788. </issue>
  1789. <issue
  1790. id="LogNotTimber"
  1791. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1792. errorLine1=" Log.i(tag, msg, throwable)"
  1793. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1794. <location
  1795. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1796. line="39"
  1797. column="17"/>
  1798. </issue>
  1799. <issue
  1800. id="LogNotTimber"
  1801. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1802. errorLine1=" Log.w(tag, msg)"
  1803. errorLine2=" ~~~~~~~~~~~~~~~">
  1804. <location
  1805. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1806. line="47"
  1807. column="17"/>
  1808. </issue>
  1809. <issue
  1810. id="LogNotTimber"
  1811. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1812. errorLine1=" Log.w(tag, msg, throwable)"
  1813. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1814. <location
  1815. file="src/main/java/io/legado/app/utils/DebugLog.kt"
  1816. line="49"
  1817. column="17"/>
  1818. </issue>
  1819. <issue
  1820. id="LogNotTimber"
  1821. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1822. errorLine1=" Log.i(LOG_TAG, &quot;[session=$sessionId] FIXTURE_READY fixture=$fixtureId entry=$entry&quot;)"
  1823. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1824. <location
  1825. file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
  1826. line="67"
  1827. column="17"/>
  1828. </issue>
  1829. <issue
  1830. id="LogNotTimber"
  1831. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1832. errorLine1=" Log.i(LOG_TAG, &quot;[session=$sessionId] PREFERENCES_APPLIED ${applied.keys}&quot;)"
  1833. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1834. <location
  1835. file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
  1836. line="211"
  1837. column="13"/>
  1838. </issue>
  1839. <issue
  1840. id="LogNotTimber"
  1841. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1842. errorLine1=" Log.e(LOG_TAG, &quot;[session=$sessionId] FIXTURE_ERROR $message&quot;, error)"
  1843. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1844. <location
  1845. file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
  1846. line="216"
  1847. column="9"/>
  1848. </issue>
  1849. <issue
  1850. id="LogNotTimber"
  1851. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1852. errorLine1=" Log.e(LOG_TAG, &quot;INJECTED_THEME_ASSET_OPEN uri=$uri mode=$mode&quot;, error)"
  1853. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1854. <location
  1855. file="src/debug/java/io/legado/app/debug/DebugThemeAssetProvider.kt"
  1856. line="19"
  1857. column="13"/>
  1858. </issue>
  1859. <issue
  1860. id="LogNotTimber"
  1861. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1862. errorLine1=" Log.i(LOG_TAG, &quot;INJECTED_THEME_ASSET_FAILURE_ARMED&quot;)"
  1863. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1864. <location
  1865. file="src/debug/java/io/legado/app/debug/DebugThemeAssetProvider.kt"
  1866. line="35"
  1867. column="13"/>
  1868. </issue>
  1869. <issue
  1870. id="LogNotTimber"
  1871. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1872. errorLine1=" Log.i(&quot;LegadoDebug&quot;, &quot;READER_PAGE &quot; + text.replace(&quot;\n&quot;, &quot; &quot;))"
  1873. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1874. <location
  1875. file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
  1876. line="629"
  1877. column="17"/>
  1878. </issue>
  1879. <issue
  1880. id="LogNotTimber"
  1881. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1882. errorLine1=" Log.i(&quot;LegadoDebug&quot;, &quot;READER_PAGE_PLACEHOLDER_FRAME&quot;)"
  1883. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1884. <location
  1885. file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
  1886. line="633"
  1887. column="21"/>
  1888. </issue>
  1889. <issue
  1890. id="LogNotTimber"
  1891. message="Using &apos;Log&apos; instead of &apos;Timber&apos;"
  1892. errorLine1=" Log.i(&quot;ReaderFirstFrame&quot;, &quot;renderer=legacy durationMs=$durationMillis&quot;)"
  1893. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1894. <location
  1895. file="src/main/java/io/legado/app/ui/book/read/ReaderFirstFrame.kt"
  1896. line="23"
  1897. column="9"/>
  1898. </issue>
  1899. <issue
  1900. id="PluralsCandidate"
  1901. message="Formatting %d followed by words (&quot;chapters&quot;): This should probably be a plural rather than a string"
  1902. errorLine1=" &lt;string name=&quot;all_chapter_num&quot;>%d chapters&lt;/string>"
  1903. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1904. <location
  1905. file="src/main/res/values/strings.xml"
  1906. line="208"
  1907. column="5"/>
  1908. </issue>
  1909. <issue
  1910. id="PluralsCandidate"
  1911. message="Formatting %d followed by words (&quot;chapter&quot;): This should probably be a plural rather than a string"
  1912. errorLine1=" &lt;string name=&quot;un_download&quot;>%d chapter(s) left&lt;/string>"
  1913. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1914. <location
  1915. file="src/main/res/values/strings.xml"
  1916. line="358"
  1917. column="5"/>
  1918. </issue>
  1919. <issue
  1920. id="PluralsCandidate"
  1921. message="Formatting %d followed by words (&quot;sources&quot;): This should probably be a plural rather than a string"
  1922. errorLine1=" &lt;string name=&quot;search_book_source_num&quot;>Search( %d sources in total)&lt;/string>"
  1923. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1924. <location
  1925. file="src/main/res/values/strings.xml"
  1926. line="373"
  1927. column="5"/>
  1928. </issue>
  1929. <issue
  1930. id="PluralsCandidate"
  1931. message="Formatting %d followed by words (&quot;Bottom&quot;): This should probably be a plural rather than a string"
  1932. errorLine1=" &lt;string name=&quot;padding_format&quot;>Top: %1$d Bottom: %2$d Left: %3$d Right: %4$d&lt;/string>"
  1933. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1934. <location
  1935. file="src/main/res/values/strings.xml"
  1936. line="388"
  1937. column="5"/>
  1938. </issue>
  1939. <issue
  1940. id="PluralsCandidate"
  1941. message="Formatting %d followed by words (&quot;items&quot;): This should probably be a plural rather than a string"
  1942. errorLine1=" &lt;string name=&quot;nb_file_sub_count&quot;>%1$d items&lt;/string>"
  1943. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1944. <location
  1945. file="src/main/res/values/strings.xml"
  1946. line="403"
  1947. column="5"/>
  1948. </issue>
  1949. <issue
  1950. id="PluralsCandidate"
  1951. message="Formatting %d followed by words (&quot;books&quot;): This should probably be a plural rather than a string"
  1952. errorLine1=" &lt;string name=&quot;book_count&quot;>%1$d books&lt;/string>"
  1953. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1954. <location
  1955. file="src/main/res/values/strings.xml"
  1956. line="404"
  1957. column="5"/>
  1958. </issue>
  1959. <issue
  1960. id="PluralsCandidate"
  1961. message="Formatting %d followed by words (&quot;books&quot;): This should probably be a plural rather than a string"
  1962. errorLine1=" &lt;string name=&quot;nb_file_add_succeed&quot;>%1$d books added successfully&lt;/string>"
  1963. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1964. <location
  1965. file="src/main/res/values/strings.xml"
  1966. line="408"
  1967. column="5"/>
  1968. </issue>
  1969. <issue
  1970. id="PluralsCandidate"
  1971. message="Formatting %d followed by words (&quot;images&quot;): This should probably be a plural rather than a string"
  1972. errorLine1=" &lt;string name=&quot;cover_selected_images_count&quot;>%1$d images selected&lt;/string>"
  1973. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1974. <location
  1975. file="src/main/res/values/strings.xml"
  1976. line="1249"
  1977. column="5"/>
  1978. </issue>
  1979. <issue
  1980. id="PluralsCandidate"
  1981. message="Formatting %d followed by words (&quot;Chapter&quot;): This should probably be a plural rather than a string"
  1982. errorLine1=" &lt;string name=&quot;book_reader_info_bar&quot;>Page. %1$d/%2$d Chapter. %3$d/%4$d -> %5$s%%&lt;/string>"
  1983. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1984. <location
  1985. file="src/main/res/values/strings.xml"
  1986. line="1513"
  1987. column="5"/>
  1988. </issue>
  1989. <issue
  1990. id="PluralsCandidate"
  1991. message="Formatting %d followed by words (&quot;legacy&quot;): This should probably be a plural rather than a string"
  1992. errorLine1=" &lt;string name=&quot;theme_manage_migrate_success&quot;>Migrated %1$d legacy themes&lt;/string>"
  1993. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  1994. <location
  1995. file="src/main/res/values/strings.xml"
  1996. line="1553"
  1997. column="5"/>
  1998. </issue>
  1999. <issue
  2000. id="PluralsCandidate"
  2001. message="Formatting %d followed by words (&quot;themes&quot;): This should probably be a plural rather than a string"
  2002. errorLine1=" &lt;string name=&quot;theme_manage_migrate_partial&quot;>Migrated %1$d themes; %2$d could not be migrated&lt;/string>"
  2003. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2004. <location
  2005. file="src/main/res/values/strings.xml"
  2006. line="1554"
  2007. column="5"/>
  2008. </issue>
  2009. <issue
  2010. id="PluralsCandidate"
  2011. message="Formatting %d followed by words (&quot;custom&quot;): This should probably be a plural rather than a string"
  2012. errorLine1=" &lt;string name=&quot;theme_config_nav_icons_custom_count&quot;>%1$d custom icons set&lt;/string>"
  2013. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2014. <location
  2015. file="src/main/res/values/strings.xml"
  2016. line="1607"
  2017. column="5"/>
  2018. </issue>
  2019. <issue
  2020. id="PluralsCandidate"
  2021. message="Formatting %d followed by words (&quot;Chapters&quot;): This should probably be a plural rather than a string"
  2022. errorLine1=" &lt;string name=&quot;read_chapter_total&quot;>Total %d Chapters&lt;/string>"
  2023. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2024. <location
  2025. file="src/main/res/values/strings.xml"
  2026. line="1615"
  2027. column="5"/>
  2028. </issue>
  2029. <issue
  2030. id="PluralsCandidate"
  2031. message="Formatting %d followed by words (&quot;Chapters&quot;): This should probably be a plural rather than a string"
  2032. errorLine1=" &lt;string name=&quot;read_chapter_index&quot;>Read %d Chapters&lt;/string>"
  2033. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2034. <location
  2035. file="src/main/res/values/strings.xml"
  2036. line="1616"
  2037. column="5"/>
  2038. </issue>
  2039. <issue
  2040. id="PluralsCandidate"
  2041. message="Formatting %d followed by words (&quot;chapters&quot;): This should probably be a plural rather than a string"
  2042. errorLine1=" &lt;string name=&quot;chapter_count_format&quot;>%d chapters&lt;/string>"
  2043. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2044. <location
  2045. file="src/main/res/values/strings.xml"
  2046. line="1671"
  2047. column="5"/>
  2048. </issue>
  2049. <issue
  2050. id="PluralsCandidate"
  2051. message="Formatting %d followed by words (&quot;bookmarks&quot;): This should probably be a plural rather than a string"
  2052. errorLine1=" &lt;string name=&quot;bookmarks_added_count&quot;>%1$d bookmarks added&lt;/string>"
  2053. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2054. <location
  2055. file="src/main/res/values/strings.xml"
  2056. line="1688"
  2057. column="5"/>
  2058. </issue>
  2059. <issue
  2060. id="PluralsCandidate"
  2061. message="Formatting %d followed by words (&quot;chapters&quot;): This should probably be a plural rather than a string"
  2062. errorLine1=" &lt;string name=&quot;start_downloading_chapters&quot;>Downloading %1$d chapters&lt;/string>"
  2063. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2064. <location
  2065. file="src/main/res/values/strings.xml"
  2066. line="1689"
  2067. column="5"/>
  2068. </issue>
  2069. <issue
  2070. id="PluralsCandidate"
  2071. message="Formatting %d followed by words (&quot;chapters&quot;): This should probably be a plural rather than a string"
  2072. errorLine1=" &lt;string name=&quot;start_downloading_remaining_chapters&quot;>Downloading remaining %1$d chapters&lt;/string>"
  2073. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2074. <location
  2075. file="src/main/res/values/strings.xml"
  2076. line="1692"
  2077. column="5"/>
  2078. </issue>
  2079. <issue
  2080. id="PluralsCandidate"
  2081. message="Formatting %d followed by words (&quot;Not&quot;): This should probably be a plural rather than a string"
  2082. errorLine1=" &lt;string name=&quot;author_read&quot;>%1$s • %2$d Not read&lt;/string>"
  2083. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2084. <location
  2085. file="src/main/res/values/strings.xml"
  2086. line="1721"
  2087. column="5"/>
  2088. </issue>
  2089. <issue
  2090. id="PluralsCandidate"
  2091. message="Formatting %d followed by words (&quot;Books&quot;): This should probably be a plural rather than a string"
  2092. errorLine1=" &lt;string name=&quot;refresh_limit_books&quot;>%1$d Books&lt;/string>"
  2093. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2094. <location
  2095. file="src/main/res/values/strings.xml"
  2096. line="1753"
  2097. column="5"/>
  2098. </issue>
  2099. <issue
  2100. id="PluralsCandidate"
  2101. message="Formatting %d followed by words (&quot;books&quot;): This should probably be a plural rather than a string"
  2102. errorLine1=" &lt;string name=&quot;bookshelf_total_count&quot;>%1$d books&lt;/string>"
  2103. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2104. <location
  2105. file="src/main/res/values/strings.xml"
  2106. line="1875"
  2107. column="5"/>
  2108. </issue>
  2109. <issue
  2110. id="PluralsCandidate"
  2111. message="Formatting %d followed by words (&quot;selected&quot;): This should probably be a plural rather than a string"
  2112. errorLine1=" &lt;string name=&quot;bookshelf_selected_count&quot;>%1$d selected&lt;/string>"
  2113. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2114. <location
  2115. file="src/main/res/values/strings.xml"
  2116. line="1876"
  2117. column="5"/>
  2118. </issue>
  2119. <issue
  2120. id="PluralsCandidate"
  2121. message="Formatting %d followed by words (&quot;related&quot;): This should probably be a plural rather than a string"
  2122. errorLine1=" &lt;string name=&quot;ai_rewrite_reference_used&quot;>Referenced %1$d related excerpt(s) from cached or local chapters.&lt;/string>"
  2123. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2124. <location
  2125. file="src/main/res/values/strings.xml"
  2126. line="2002"
  2127. column="5"/>
  2128. </issue>
  2129. <issue
  2130. id="PluralsCandidate"
  2131. message="Formatting %d followed by words (&quot;more&quot;): This should probably be a plural rather than a string"
  2132. errorLine1=" &lt;string name=&quot;ai_thinking_show_more&quot;>Show %d more steps&lt;/string>"
  2133. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2134. <location
  2135. file="src/main/res/values/strings.xml"
  2136. line="2053"
  2137. column="5"/>
  2138. </issue>
  2139. <issue
  2140. id="PluralsCandidate"
  2141. message="Formatting %d followed by words (&quot;models&quot;): This should probably be a plural rather than a string"
  2142. errorLine1=" &lt;string name=&quot;ai_test_success_with_models&quot;>AI connection test succeeded (%1$d models found)&lt;/string>"
  2143. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2144. <location
  2145. file="src/main/res/values/strings.xml"
  2146. line="2113"
  2147. column="5"/>
  2148. </issue>
  2149. <issue
  2150. id="PluralsCandidate"
  2151. message="Formatting %d followed by words (&quot;modules&quot;): This should probably be a plural rather than a string"
  2152. errorLine1=" &lt;string name=&quot;homepage_n_modules&quot;>%1$d modules&lt;/string>"
  2153. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2154. <location
  2155. file="src/main/res/values/strings.xml"
  2156. line="2139"
  2157. column="5"/>
  2158. </issue>
  2159. <issue
  2160. id="PluralsCandidate"
  2161. message="Formatting %d followed by words (&quot;selected&quot;): This should probably be a plural rather than a string"
  2162. errorLine1=" &lt;string name=&quot;homepage_n_selected&quot;>%1$d selected&lt;/string>"
  2163. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2164. <location
  2165. file="src/main/res/values/strings.xml"
  2166. line="2154"
  2167. column="5"/>
  2168. </issue>
  2169. <issue
  2170. id="PluralsCandidate"
  2171. message="Formatting %d followed by words (&quot;custom&quot;): This should probably be a plural rather than a string"
  2172. errorLine1=" &lt;string name=&quot;read_menu_custom_icons_count&quot;>%1$d custom icons&lt;/string>"
  2173. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2174. <location
  2175. file="src/main/res/values/strings.xml"
  2176. line="2213"
  2177. column="5"/>
  2178. </issue>
  2179. <issue
  2180. id="PluralsCandidate"
  2181. message="Formatting %d followed by words (&quot;records&quot;): This should probably be a plural rather than a string"
  2182. errorLine1=" &lt;string name=&quot;lab_page_estimate_diagnostics_count&quot;>%1$d records&lt;/string>"
  2183. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2184. <location
  2185. file="src/main/res/values/strings.xml"
  2186. line="2257"
  2187. column="5"/>
  2188. </issue>
  2189. <issue
  2190. id="PluralsCandidate"
  2191. message="Formatting %d followed by words (&quot;lines&quot;): This should probably be a plural rather than a string"
  2192. errorLine1=" &lt;string name=&quot;show_lines_synopsis&quot;>Show %1$d lines of synopsis&lt;/string>"
  2193. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2194. <location
  2195. file="src/main/res/values/strings.xml"
  2196. line="2342"
  2197. column="5"/>
  2198. </issue>
  2199. <issue
  2200. id="PluralsCandidate"
  2201. message="Formatting %d followed by words (&quot;minutes&quot;): This should probably be a plural rather than a string"
  2202. errorLine1=" &lt;string name=&quot;read_aloud_timer_format&quot;>Read aloud timer: %1$d minutes&lt;/string>"
  2203. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2204. <location
  2205. file="src/main/res/values/strings.xml"
  2206. line="2406"
  2207. column="5"/>
  2208. </issue>
  2209. <issue
  2210. id="PluralsCandidate"
  2211. message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
  2212. errorLine1=" &lt;string name=&quot;a11y_percent_value&quot;>%1$d percent&lt;/string>"
  2213. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2214. <location
  2215. file="src/main/res/values/strings.xml"
  2216. line="2477"
  2217. column="5"/>
  2218. </issue>
  2219. <issue
  2220. id="PluralsCandidate"
  2221. message="Formatting %d followed by words (&quot;selected&quot;): This should probably be a plural rather than a string"
  2222. errorLine1=" &lt;string name=&quot;selected_count&quot;>%1$d selected&lt;/string>"
  2223. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2224. <location
  2225. file="src/main/res/values/strings.xml"
  2226. line="2519"
  2227. column="5"/>
  2228. </issue>
  2229. <issue
  2230. id="PluralsCandidate"
  2231. message="Formatting %d followed by words (&quot;selected&quot;): This should probably be a plural rather than a string"
  2232. errorLine1=" &lt;string name=&quot;delete_selected_read_records_message&quot;>Delete %1$d selected reading records?&lt;/string>"
  2233. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2234. <location
  2235. file="src/main/res/values/strings.xml"
  2236. line="2523"
  2237. column="5"/>
  2238. </issue>
  2239. <issue
  2240. id="PluralsCandidate"
  2241. message="Formatting %d followed by words (&quot;reading&quot;): This should probably be a plural rather than a string"
  2242. errorLine1=" &lt;string name=&quot;read_record_date_overview&quot;>%1$d/%2$d reading overview&lt;/string>"
  2243. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2244. <location
  2245. file="src/main/res/values/strings.xml"
  2246. line="2536"
  2247. column="5"/>
  2248. </issue>
  2249. <issue
  2250. id="PluralsCandidate"
  2251. message="Formatting %d followed by words (&quot;books&quot;): This should probably be a plural rather than a string"
  2252. errorLine1=" &lt;string name=&quot;a11y_reading_summary_card&quot;>%1$s, %2$d books, %3$s total. Open overview&lt;/string>"
  2253. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2254. <location
  2255. file="src/main/res/values/strings.xml"
  2256. line="2543"
  2257. column="5"/>
  2258. </issue>
  2259. <issue
  2260. id="PluralsCandidate"
  2261. message="Formatting %d followed by words (&quot;hours&quot;): This should probably be a plural rather than a string"
  2262. errorLine1=" &lt;string name=&quot;whole_hours_format&quot;>%1$d hours&lt;/string>"
  2263. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2264. <location
  2265. file="src/main/res/values/strings.xml"
  2266. line="2547"
  2267. column="5"/>
  2268. </issue>
  2269. <issue
  2270. id="PluralsCandidate"
  2271. message="Formatting %d followed by words (&quot;days&quot;): This should probably be a plural rather than a string"
  2272. errorLine1=" &lt;string name=&quot;days_format&quot;>%1$d days&lt;/string>"
  2273. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2274. <location
  2275. file="src/main/res/values/strings.xml"
  2276. line="2562"
  2277. column="5"/>
  2278. </issue>
  2279. <issue
  2280. id="PluralsCandidate"
  2281. message="Formatting %d followed by words (&quot;books&quot;): This should probably be a plural rather than a string"
  2282. errorLine1=" &lt;string name=&quot;books_format&quot;>%1$d books&lt;/string>"
  2283. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2284. <location
  2285. file="src/main/res/values/strings.xml"
  2286. line="2563"
  2287. column="5"/>
  2288. </issue>
  2289. <issue
  2290. id="PluralsCandidate"
  2291. message="Formatting %d followed by words (&quot;readings&quot;): This should probably be a plural rather than a string"
  2292. errorLine1=" &lt;string name=&quot;a11y_heatmap_day_count&quot;>%1$s, %2$d readings&lt;/string>"
  2293. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2294. <location
  2295. file="src/main/res/values/strings.xml"
  2296. line="2567"
  2297. column="5"/>
  2298. </issue>
  2299. <issue
  2300. id="PluralsCandidate"
  2301. message="Formatting %d followed by words (&quot;chapters&quot;): This should probably be a plural rather than a string"
  2302. errorLine1=" &lt;string name=&quot;cache_progress_description&quot;>%1$d of %2$d chapters cached, %3$d percent&lt;/string>"
  2303. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2304. <location
  2305. file="src/main/res/values/strings.xml"
  2306. line="2576"
  2307. column="5"/>
  2308. </issue>
  2309. <issue
  2310. id="PluralsCandidate"
  2311. message="Formatting %d followed by words (&quot;percent&quot;): This should probably be a plural rather than a string"
  2312. errorLine1=" &lt;string name=&quot;cache_chapter_progress_description&quot;>Chapter download %1$d percent&lt;/string>"
  2313. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2314. <location
  2315. file="src/main/res/values/strings.xml"
  2316. line="2583"
  2317. column="5"/>
  2318. </issue>
  2319. <issue
  2320. id="PluralsCandidate"
  2321. message="Formatting %d followed by words (&quot;chars&quot;): This should probably be a plural rather than a string"
  2322. errorLine1=" &lt;string name=&quot;read_aloud_position_chars&quot;>%1$d chars&lt;/string>"
  2323. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2324. <location
  2325. file="src/main/res/values/strings.xml"
  2326. line="2736"
  2327. column="5"/>
  2328. </issue>
  2329. <issue
  2330. id="PluralsCandidate"
  2331. message="Formatting %d followed by words (&quot;voices&quot;): This should probably be a plural rather than a string"
  2332. errorLine1=" &lt;string name=&quot;cloud_tts_voice_count&quot;>Loaded %1$d voices&lt;/string>"
  2333. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2334. <location
  2335. file="src/main/res/values/strings.xml"
  2336. line="2827"
  2337. column="5"/>
  2338. </issue>
  2339. <issue
  2340. id="PluralsCandidate"
  2341. message="Formatting %d followed by words (&quot;files&quot;): This should probably be a plural rather than a string"
  2342. errorLine1=" &lt;string name=&quot;tts_cache_file_count&quot;>%d files&lt;/string>"
  2343. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2344. <location
  2345. file="src/main/res/values/strings.xml"
  2346. line="2857"
  2347. column="5"/>
  2348. </issue>
  2349. <issue
  2350. id="PluralsCandidate"
  2351. message="Formatting %d followed by words (&quot;threads&quot;): This should probably be a plural rather than a string"
  2352. errorLine1=" &lt;string name=&quot;tts_pre_synthesis_concurrency_summary&quot;>%d threads&lt;/string>"
  2353. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2354. <location
  2355. file="src/main/res/values/strings.xml"
  2356. line="2863"
  2357. column="5"/>
  2358. </issue>
  2359. <issue
  2360. id="StringFormatCount"
  2361. message="Inconsistent number of arguments in formatting string `translation_in_progress`; found both 2 here and 1 in values/strings.xml"
  2362. errorLine1=" &lt;string name=&quot;translation_in_progress&quot;>翻译中: %1$d/%2$d&lt;/string>"
  2363. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2364. <location
  2365. file="src/main/res/values-zh-rCN/strings.xml"
  2366. line="1976"
  2367. column="5"/>
  2368. <location
  2369. file="src/main/res/values/strings.xml"
  2370. line="1920"
  2371. column="5"
  2372. message="Conflicting number of arguments (1) here"/>
  2373. </issue>
  2374. <issue
  2375. id="ExportedContentProvider"
  2376. message="Exported content providers can provide access to potentially sensitive data"
  2377. errorLine1=" &lt;provider"
  2378. errorLine2=" ~~~~~~~~">
  2379. <location
  2380. file="src/debug/AndroidManifest.xml"
  2381. line="8"
  2382. column="10"/>
  2383. </issue>
  2384. <issue
  2385. id="ExportedContentProvider"
  2386. message="Exported content providers can provide access to potentially sensitive data"
  2387. errorLine1=" &lt;provider"
  2388. errorLine2=" ~~~~~~~~">
  2389. <location
  2390. file="src/debug/AndroidManifest.xml"
  2391. line="12"
  2392. column="10"/>
  2393. </issue>
  2394. <issue
  2395. id="WebViewClientOnReceivedSslError"
  2396. message="Permitting connections with SSL-related errors could allow eavesdroppers to intercept data sent by your app, which impacts the privacy of your users. Consider canceling the connections by invoking `SslErrorHandler#cancel()`."
  2397. errorLine1=" handler?.proceed()"
  2398. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  2399. <location
  2400. file="src/main/java/io/legado/app/ui/rss/read/RssReadWebController.kt"
  2401. line="275"
  2402. column="13"/>
  2403. </issue>
  2404. <issue
  2405. id="WebViewClientOnReceivedSslError"
  2406. message="Permitting connections with SSL-related errors could allow eavesdroppers to intercept data sent by your app, which impacts the privacy of your users. Consider canceling the connections by invoking `SslErrorHandler#cancel()`."
  2407. errorLine1=" handler?.proceed()"
  2408. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  2409. <location
  2410. file="src/main/java/io/legado/app/ui/rss/read/RssReadWebController.kt"
  2411. line="275"
  2412. column="13"/>
  2413. </issue>
  2414. <issue
  2415. id="DrawAllocation"
  2416. message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
  2417. errorLine1=" val paint = Paint().apply { this.alpha = alpha }"
  2418. errorLine2=" ~~~~~~~">
  2419. <location
  2420. file="src/main/java/io/legado/app/ui/book/read/page/delegate/FadePageDelegate.kt"
  2421. line="110"
  2422. column="21"/>
  2423. </issue>
  2424. <issue
  2425. id="ObsoleteSdkInt"
  2426. message="Unnecessary; `SDK_INT` is always >= 26"
  2427. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {"
  2428. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2429. <location
  2430. file="src/main/java/me/ag2s/epublib/util/commons/io/BOMInputStream.java"
  2431. line="161"
  2432. column="13"/>
  2433. </issue>
  2434. <issue
  2435. id="ObsoleteSdkInt"
  2436. message="Unnecessary; `SDK_INT` is always >= 26"
  2437. errorLine1=" isRedirect = isRedirect || if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {"
  2438. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2439. <location
  2440. file="src/main/java/io/legado/app/help/http/BackstageWebView.kt"
  2441. line="188"
  2442. column="44"/>
  2443. </issue>
  2444. <issue
  2445. id="ObsoleteSdkInt"
  2446. message="Unnecessary; `SDK_INT` is always >= 26"
  2447. errorLine1=" private val atLeastApi24 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N"
  2448. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2449. <location
  2450. file="src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderFactory.kt"
  2451. line="8"
  2452. column="32"/>
  2453. </issue>
  2454. <issue
  2455. id="ObsoleteSdkInt"
  2456. message="Unnecessary; `SDK_INT` is always >= 24"
  2457. errorLine1=" @RequiresApi(Build.VERSION_CODES.N)"
  2458. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2459. <location
  2460. file="src/main/java/io/legado/app/help/http/ObsoleteUrlFactory.kt"
  2461. line="799"
  2462. column="9"/>
  2463. </issue>
  2464. <issue
  2465. id="ObsoleteSdkInt"
  2466. message="Unnecessary; `SDK_INT` is always >= 24"
  2467. errorLine1=" @RequiresApi(Build.VERSION_CODES.N)"
  2468. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2469. <location
  2470. file="src/main/java/io/legado/app/help/http/ObsoleteUrlFactory.kt"
  2471. line="849"
  2472. column="9"/>
  2473. </issue>
  2474. <issue
  2475. id="ObsoleteSdkInt"
  2476. message="Unnecessary; `SDK_INT` is always >= 26"
  2477. errorLine1=" ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2478. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2479. <location
  2480. file="src/main/java/com/script/rhino/RhinoClassShutter.kt"
  2481. line="138"
  2482. column="17"/>
  2483. </issue>
  2484. <issue
  2485. id="ObsoleteSdkInt"
  2486. message="Unnecessary; `SDK_INT` is always >= 26"
  2487. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2488. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2489. <location
  2490. file="src/main/java/com/script/rhino/RhinoClassShutter.kt"
  2491. line="158"
  2492. column="13"/>
  2493. </issue>
  2494. <issue
  2495. id="ObsoleteSdkInt"
  2496. message="Unnecessary; `SDK_INT` is always >= 26"
  2497. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2498. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2499. <location
  2500. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  2501. line="304"
  2502. column="13"/>
  2503. </issue>
  2504. <issue
  2505. id="ObsoleteSdkInt"
  2506. message="Unnecessary; `SDK_INT` is always >= 26"
  2507. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2508. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2509. <location
  2510. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  2511. line="362"
  2512. column="13"/>
  2513. </issue>
  2514. <issue
  2515. id="ObsoleteSdkInt"
  2516. message="Unnecessary; `SDK_INT` is always >= 26"
  2517. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2518. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2519. <location
  2520. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  2521. line="399"
  2522. column="13"/>
  2523. </issue>
  2524. <issue
  2525. id="ObsoleteSdkInt"
  2526. message="Unnecessary; `SDK_INT` is always >= 26"
  2527. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2528. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2529. <location
  2530. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  2531. line="470"
  2532. column="13"/>
  2533. </issue>
  2534. <issue
  2535. id="ObsoleteSdkInt"
  2536. message="Unnecessary; `SDK_INT` is always >= 26"
  2537. errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
  2538. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2539. <location
  2540. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  2541. line="501"
  2542. column="13"/>
  2543. </issue>
  2544. <issue
  2545. id="ObsoleteSdkInt"
  2546. message="Unnecessary; `SDK_INT` is always >= 24"
  2547. errorLine1="@RequiresApi(Build.VERSION_CODES.N)"
  2548. errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2549. <location
  2550. file="src/main/java/io/legado/app/service/WebTileService.kt"
  2551. line="19"
  2552. column="1"/>
  2553. </issue>
  2554. <issue
  2555. id="ObsoleteSdkInt"
  2556. message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 26. Merge all the resources in this folder into `mipmap-anydpi`.">
  2557. <location
  2558. file="src/main/res/mipmap-anydpi-v26"/>
  2559. </issue>
  2560. <issue
  2561. id="StaticFieldLeak"
  2562. message="This field leaks a context object"
  2563. errorLine1=" private val context: Context,"
  2564. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2565. <location
  2566. file="src/main/java/io/legado/app/ui/config/coverConfig/CoverAlbumManageViewModel.kt"
  2567. line="23"
  2568. column="5"/>
  2569. </issue>
  2570. <issue
  2571. id="UseCompoundDrawables"
  2572. message="This tag and its children can be replaced by one `&lt;TextView/>` and a compound drawable"
  2573. errorLine1="&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
  2574. errorLine2=" ~~~~~~~~~~~~">
  2575. <location
  2576. file="src/main/res/layout/item_path_picker.xml"
  2577. line="2"
  2578. column="2"/>
  2579. </issue>
  2580. <issue
  2581. id="UseCompoundDrawables"
  2582. message="This tag and its children can be replaced by one `&lt;TextView/>` and a compound drawable"
  2583. errorLine1=" &lt;LinearLayout"
  2584. errorLine2=" ~~~~~~~~~~~~">
  2585. <location
  2586. file="src/main/res/layout/view_preference_tip.xml"
  2587. line="10"
  2588. column="6"/>
  2589. </issue>
  2590. <issue
  2591. id="FrequentlyChangingValue"
  2592. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2593. errorLine1=" val layoutInfo = listState.layoutInfo"
  2594. errorLine2=" ~~~~~~~~~~">
  2595. <location
  2596. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2597. line="84"
  2598. column="40"/>
  2599. </issue>
  2600. <issue
  2601. id="FrequentlyChangingValue"
  2602. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2603. errorLine1=" listState.layoutInfo.afterContentPadding"
  2604. errorLine2=" ~~~~~~~~~~">
  2605. <location
  2606. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2607. line="109"
  2608. column="31"/>
  2609. </issue>
  2610. <issue
  2611. id="FrequentlyChangingValue"
  2612. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2613. errorLine1=" listState.layoutInfo.beforeContentPadding -"
  2614. errorLine2=" ~~~~~~~~~~">
  2615. <location
  2616. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2617. line="113"
  2618. column="31"/>
  2619. </issue>
  2620. <issue
  2621. id="FrequentlyChangingValue"
  2622. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2623. errorLine1=" listState.layoutInfo.afterContentPadding -"
  2624. errorLine2=" ~~~~~~~~~~">
  2625. <location
  2626. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2627. line="114"
  2628. column="31"/>
  2629. </issue>
  2630. <issue
  2631. id="FrequentlyChangingValue"
  2632. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2633. errorLine1=" val layoutInfo = state.layoutInfo"
  2634. errorLine2=" ~~~~~~~~~~">
  2635. <location
  2636. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2637. line="301"
  2638. column="36"/>
  2639. </issue>
  2640. <issue
  2641. id="FrequentlyChangingValue"
  2642. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2643. errorLine1=" state.layoutInfo.afterContentPadding"
  2644. errorLine2=" ~~~~~~~~~~">
  2645. <location
  2646. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2647. line="322"
  2648. column="27"/>
  2649. </issue>
  2650. <issue
  2651. id="FrequentlyChangingValue"
  2652. message="Reading a value annotated with @FrequentlyChangingValue inside composition"
  2653. errorLine1=" LaunchedEffect(state.firstVisibleItemScrollOffset) {"
  2654. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2655. <location
  2656. file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
  2657. line="349"
  2658. column="34"/>
  2659. </issue>
  2660. <issue
  2661. id="VectorPath"
  2662. message="Very long vector path (6019 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
  2663. errorLine1=" android:pathData=&quot;M24.8,42h0.1c-0.1,-0.2 -0.1,-0.4 0.1,-0.5v-0.1c-0.8,-0.4 1.9,-3.3 2.3,-3.4c-0.1,-0.2 -0.1,-0.3 0.1,-0.4c-0.2,0 1.2,-1.9 1.2,-1.9c0,-0.1 0,-0.2 0,-0.2l0.1,-0.1l0.1,0.2l0.7,-0.7c0,0 1.8,-2.1 1.9,-2.3c0.1,0 0.2,0.1 0.3,0.2c0.3,-0.2 0.4,-0.4 0.4,-0.8c0.3,-0.3 0.7,-0.6 1.1,-0.9l0,0l0.6,-0.2c-0.2,-1.1 3.2,-2.8 4.2,-3.2l0.5,-0.6l0.4,0.2v-0.8c0,0 0.9,-0.4 0.9,-0.4c0.1,0 0.2,0 0.3,0L40,26.5v0.3c0.4,-0.1 0.6,-0.3 0.8,-0.7c0,0 0.1,0 0.1,-0.1l0.1,0.2c0.7,-0.5 1.4,-0.9 2.1,-1.2l0.1,0.2c0.6,-0.2 2.9,-0.9 3.3,-0.6c0.3,-0.2 0.5,-0.4 0.8,-0.5c0.4,0.1 0.8,0 1.2,-0.1c0.1,0 0.2,0.1 0.2,0.1c0.2,-0.1 0.4,-0.2 0.5,-0.4c0.1,0 1.8,-0.1 1.8,0c0,0 0.1,0.1 0.1,0.1c0.5,-0.3 0.8,-0.3 1.1,0c0.4,0 0.7,-0.1 1,-0.4c0.6,0.6 1.1,0.8 1.7,0.4c0.4,-0.1 0.8,-0.1 1.2,-0.1c0.1,0.1 0.2,0.2 0.3,0.4l0.3,-0.2c0,0.4 2.3,0.6 2.7,0.7c0.2,0.4 0.7,0.6 1.1,0.5c0.3,0.2 0.6,0.2 1,0.1c0.1,0.1 1.8,1.7 2.2,1.7c0,-0.1 0,-0.2 0,-0.2c0.1,-0.1 0.2,-0.1 0.3,-0.1c1,0.6 1.9,1 2.7,1.7c0.8,-0.6 1.6,1.1 2.2,0.8c0,0 0.1,0 0.1,0c0.8,0.5 2.8,1.7 2,2.8c1.3,0.7 1.2,-0.6 1.8,1.1c0.7,-0.6 0.7,0 1.1,0.4c-0.1,0.1 -0.8,0.7 -1,0.7l0,-0.3L73.1,34h0.7c0,-0.3 -1,-1.1 -1.3,-0.8c-0.1,0.5 -0.6,-1.4 -0.5,-1.4c-0.2,0.1 -0.3,0.3 -0.5,0.4c0,0 -0.1,-0.1 -0.2,-0.2h-0.4l0.2,-0.3c0.2,-0.6 0,-0.9 -0.7,-0.7c0,-0.6 0.2,-0.9 -0.4,-1.1v1h-0.1c-0.1,-0.1 -0.6,-0.7 -1,-0.3l-0.3,-0.1l-0.2,0.2c0,-0.2 -0.5,-0.5 0,-0.7L68,29.9v0.7c-1,-0.4 0.4,-1.9 -0.6,-2.1c0.1,0.5 0,0.8 -0.4,1.1l-0.3,-0.1c-0.1,0.1 -0.1,0.2 0.1,0.3c-0.5,0.4 -0.7,-1.7 -0.8,-2c0,-0.1 -0.2,-0.1 -0.3,-0.1c-0.2,0.4 -0.2,0.9 0,1.4H65v0.3c0,-0.4 -0.1,-0.7 -0.3,-1c-0.1,0.1 -0.2,0.3 -0.3,0.5c-0.1,-0.3 -0.3,-0.5 -0.6,-0.6c0,0.1 0,0.3 0,0.4c-0.7,0.3 -1.4,-1.4 -1.6,0.5h-0.1l-0.1,-0.8c-0.5,-0.1 -1,-0.2 -1.5,-0.3L60.5,28c-1.3,-0.3 -2.4,0.2 -3.6,-0.1l-0.1,0.3L56.6,28h-0.1l0.2,1h-0.4c0.1,-0.1 0.1,-0.2 0.2,-0.3c0.3,0.4 0.1,1.3 -0.6,1c0,0 -0.1,-0.2 0,-0.2c0.1,-0.4 -0.1,-0.6 -0.4,-0.7c-0.2,0.5 -0.9,1.2 -0.4,0l0.4,-0.2c0,-0.2 -0.2,-0.3 -0.4,-0.2l-0.1,0c-0.1,0 -4.1,3 -5,1.3c-0.7,0.8 -0.4,-0.6 -0.6,-0.9c-0.1,0.7 0.2,1.3 -0.5,1.5c-0.4,-0.7 -1.5,0.5 -1.6,0.8c-0.1,0.1 -0.3,0.1 -0.4,0.2L46.8,31l0.4,-0.1c0.1,-0.4 -0.1,-0.7 -0.4,-0.7c-0.6,1.6 -0.4,-0.9 -1.4,-0.2c0,0 -0.7,0 -0.8,0l0.1,0.3l-0.2,0.2c0.3,0.4 0.4,1.7 -0.8,1.7l0.1,-0.2c-0.3,-0.1 -0.6,-0.1 -0.8,0.2c-0.4,0 -0.8,0.2 -1,0.5c-0.3,0.4 -0.7,0.5 -1.3,0.3c0.1,0.1 0.1,0.3 0,0.4c-0.2,-0.1 -0.3,-0.1 -0.5,-0.1c0,0 0,0.1 0,0.1c0.1,0.1 0.2,0.2 0.2,0.3c-0.1,0.2 -0.2,0.2 -0.4,0c-0.1,0 -0.2,-0.1 -0.2,-0.1c-0.1,0.2 -0.2,0.4 -0.2,0.6L39.2,34h-0.1l0,0c-0.1,0.2 -0.3,0.3 -0.2,0.6c0,0.1 -0.1,0.2 -0.1,0.4l-0.3,-0.3l-0.8,0.7c-0.3,0.1 -2.6,2.4 -2.8,2.3c-0.5,0.5 -0.5,1.2 -0.9,1.7c-0.1,0 -0.1,0 -0.2,0c-0.3,-0.3 -0.3,0 -0.4,0.2c0.5,0.4 0,1.2 -0.3,1.5c-0.1,0 -0.2,0 -0.2,0c0,-0.1 -0.1,-0.1 -0.2,-0.2c-0.3,0.3 -0.3,0.7 -0.6,1c0,0 -1.4,3.2 -1.8,3.5c0,0 0,0.1 -0.1,0.1l0.7,0.1v0.1c-2.7,0 -2.2,9 -2,10.2c0.2,1.2 0.7,6.7 2,7.3c-0.1,0 1.2,2.1 1.3,1.8H33v1c0.6,0.2 0.5,0.7 0.6,1.2l0.2,-0.1c0.7,0 1.4,2.6 2.2,2.9c0.6,0 1.6,1.6 2.1,2c0,0.9 5.6,3.7 6.5,3.9h-0.1c1.5,0.5 4.8,1.7 6.3,1c0.6,0.4 1.6,-0.7 1.9,-0.8l0.2,0.3c0.8,-0.2 2.5,0.6 3,0.6h0.5c0,0 0.4,-1.2 0.7,-0.9l0.1,-0.2C57.5,76 57.7,76 58,76v0.7c1.2,-0.1 0.6,-1.7 1.4,-1.8c-0.1,-0.1 -0.3,-0.2 -0.4,-0.3c0.1,-0.1 0.2,-0.2 0.3,-0.3c0.3,0 0.4,0.2 0.5,0.5l0.2,-0.2l0.2,0.3c0.2,-0.1 0.3,0 0.3,0.2l0.7,-0.5l0.1,0.4h0.1c0,-0.3 0.2,-0.5 0.4,-0.6l0.4,-0.1L61.8,74c0,0 0,0 0,0c0.6,0.5 0.5,-0.6 0.3,-0.8c0.1,-0.1 0.2,-0.2 0.3,-0.2c0.1,0 0.1,0 0.2,0c0.4,0.1 0.8,0 1.1,-0.3c0.1,0.2 -0.3,0.4 0,0.6c0.1,-0.3 0.2,-0.5 0.4,-0.7c0,0.1 0,0.3 0,0.4c0.1,0 0.2,0 0.3,0c0,0.7 0.2,1 1,1.2L65.3,73h0.1l0.1,0.9l0.5,-0.3l-0.2,-0.2l0.5,-0.4h0.1l0.7,0.3l-0.1,0.3c0.7,-0.3 0.7,-0.6 0.2,-1.1l0,0.1v-0.1l0.1,-0.2l0.3,-0.2l0.2,0.1c-0.1,-0.6 0.2,-0.8 0.8,-0.6l0.2,-0.4L68.4,71c0.5,0.1 0.2,0.4 0.2,0.7l0.3,-0.2l0.2,0.3c0,-0.3 0.1,-0.5 0.3,-0.7L69,71.3v0.1l0.9,-0.1L69.8,71c0.1,0 0.1,0 0.2,0c0.1,0.1 0.9,-1.4 1.9,-1.2l-0.2,0.3l0.1,0.1L72,70c0.3,-0.2 0.5,-0.4 0.7,-0.6c-0.1,-0.2 -0.3,-1 0,-1.1c0.1,0.1 0.2,0.2 0.2,0.4c0.4,-0.6 0.5,-0.1 1,0.4c0.1,0 1.7,-0.3 1.8,-0.2l0.3,-0.1c0,0.3 0.2,0.6 0.4,0.2c0.3,0 0.6,-0.1 0.8,-0.3c0.3,0 0.4,-0.4 0.5,-0.7c0.2,-0.1 0.6,0.2 0.6,0.2c0.5,1.2 0.4,2.5 0.5,3.8c0.2,0 0.7,0.6 0.4,0.8L78.7,72h-0.1c0.5,1.3 0.2,2.7 -0.7,4h-0.2c-0.5,-0.5 -0.3,0 -0.3,0.5c-0.5,0.2 -0.8,0.5 -0.9,1.1c0,0.1 0,0.3 0,0.4L76,77.8c-0.4,-0.1 -0.8,0 -1.1,0.3l0.1,0.2c-0.2,0.1 -0.5,0.1 -0.4,0.5L74,78.5V79l-0.2,0l0.1,0.5c-0.3,-0.1 -0.5,0 -0.7,0.3c-0.7,0.4 -1.7,1.3 -1.8,2.1l-0.3,-0.2L71,82c-0.2,-0.3 -0.5,-0.5 -0.8,-0.7c0,0.5 0.2,0.8 -0.4,0.5L69.4,82c0.3,0.3 0,0.6 0,0.9L68.6,82c-0.5,0.5 -1.1,0.7 -1.6,1.2c-0.2,-0.1 -0.4,0.1 -0.5,0.4l-0.2,-0.3l-0.2,0.3c-0.4,-0.2 -0.7,-0.2 -1.1,0.2l0.1,-0.4L63.8,84l-0.1,-0.3L63.2,84H63v-0.2c-0.6,-0.1 -0.9,0.3 -0.7,0.9l-0.4,-0.3c-0.3,0.3 -0.3,0.8 -0.8,0.9l-0.5,-0.5c-0.2,0 -0.5,0 -0.7,0.2l0.1,0.2v0.6l-0.4,-0.2c-0.3,0.3 -0.6,0.1 -0.8,0c0,0.1 -1.1,0.3 -1.2,0.5c-0.5,0 -1.1,0.1 -1.6,0.1L56,86h-0.5l-0.8,-0.4c-0.1,0.5 -0.4,0.5 -0.7,0.2c0,0.1 0,0.2 0,0.2s0,0 0,0.1c-0.2,-0.1 -0.2,-0.3 -0.2,-0.6c-0.4,-0.1 -0.8,0 -1,-0.4c-0.2,-0.1 -0.3,-0.2 -0.5,-0.2L52,84h-0.4c-0.1,0.8 -0.2,0.8 -0.2,0.8l0,0.2c0.2,0 -0.1,0.8 -0.1,0.2l0,-0.7L51,84.7v0.1l-0.4,-0.3l-0.2,0.3c-0.7,-0.5 -2.8,0.2 -3.3,-0.6L47,84.4v-0.1c-0.2,0 -2.3,-0.9 -2.3,-0.9c-0.3,-0.7 -1.1,-0.5 -1.8,-0.8c-0.3,-0.3 -0.5,-0.6 -0.8,-0.9c-0.5,0.2 -1,0.2 -1.4,-0.3c0,0 -0.1,0 -0.1,-0.1c-0.3,-0.4 -1.6,-0.6 -1.8,-1.3c-0.5,-0.1 -1,-0.1 -1.5,-0.1c-0.1,-1.1 -0.8,-1.2 -1.8,-1.6l-0.1,-0.3l-0.3,0.1c-0.3,-0.7 -1.6,-1.5 -2.3,-1.8l-0.1,0.1c-0.1,-0.3 -1.3,-1.3 -1.2,-1.4c-0.4,-0.5 -1,-1.3 -1.6,-1.5c-1,0 -1.5,-1.8 -1.8,-2.5c0.1,-0.1 0,-0.2 -0.2,-0.3V71h0.4c0,0 -0.3,-0.4 -0.6,-0.5c-0.2,0 -0.1,-1.5 -0.7,-1.1c-0.1,-0.3 -0.2,-0.6 -0.3,-0.8c0,-0.7 -0.7,-1.6 -1.2,-2l-0.2,-1.2c-0.5,-0.3 -0.9,-0.8 -1.1,-1.4c-0.1,-0.3 -0.2,-0.6 -0.3,-1c0,-0.3 0,-0.6 0,-0.8c-1,-0.9 -0.9,-3.3 -1.5,-4.4C23,57 22.8,56.4 22,56v-0.1c0,-0.4 0.3,-2.4 1,-2.7V53l-0.7,0.2c0.1,-0.3 0.1,-0.7 0.1,-1c-0.1,-0.5 0.2,-1.1 -0.2,-1.6c0.3,-0.7 0.7,-2 0.3,-2.8c0.2,0 0.4,0 0.4,0.1h-0.2c0,-0.4 -0.1,-0.5 -0.1,-0.6c0.5,-0.3 1.3,-3.1 1.3,-3.7C23.5,42.7 24.6,42 24.8,42z&quot;"
  2664. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2665. <location
  2666. file="src/main/res/drawable/ic_launcher3.xml"
  2667. line="7"
  2668. column="27"/>
  2669. </issue>
  2670. <issue
  2671. id="AutoboxingStateCreation"
  2672. message="Prefer `mutableFloatStateOf` instead of `mutableStateOf`"
  2673. errorLine1=" var elapsedSeconds by mutableStateOf(0f)"
  2674. errorLine2=" ~~~~~~~~~~~~~~">
  2675. <location
  2676. file="src/main/java/io/legado/app/ui/ai/chat/AiReasoningCard.kt"
  2677. line="69"
  2678. column="27"/>
  2679. </issue>
  2680. <issue
  2681. id="AutoboxingStateCreation"
  2682. message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
  2683. errorLine1=" var liveSeconds by remember { mutableStateOf(0) }"
  2684. errorLine2=" ~~~~~~~~~~~~~~">
  2685. <location
  2686. file="src/main/java/io/legado/app/ui/ai/chat/AiThinkingCard.kt"
  2687. line="67"
  2688. column="35"/>
  2689. </issue>
  2690. <issue
  2691. id="AutoboxingStateCreation"
  2692. message="Prefer `mutableLongStateOf` instead of `mutableStateOf`"
  2693. errorLine1=" var selectedGroupId by remember { mutableStateOf(BookGroup.IdAll) }"
  2694. errorLine2=" ~~~~~~~~~~~~~~">
  2695. <location
  2696. file="src/main/java/io/legado/app/ui/book/cache/manage/BookCacheManageScreen.kt"
  2697. line="113"
  2698. column="39"/>
  2699. </issue>
  2700. <issue
  2701. id="AutoboxingStateCreation"
  2702. message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
  2703. errorLine1=" var previousSize by remember { mutableStateOf(configList.size) }"
  2704. errorLine2=" ~~~~~~~~~~~~~~">
  2705. <location
  2706. file="src/main/java/io/legado/app/ui/book/read/sheet/GlobalThemePage.kt"
  2707. line="275"
  2708. column="48"/>
  2709. </issue>
  2710. <issue
  2711. id="AutoboxingStateCreation"
  2712. message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
  2713. errorLine1=" var removeTagIndex by remember { mutableStateOf(-1) }"
  2714. errorLine2=" ~~~~~~~~~~~~~~">
  2715. <location
  2716. file="src/main/java/io/legado/app/ui/book/knowledge/KnowledgeSharedComponents.kt"
  2717. line="112"
  2718. column="38"/>
  2719. </issue>
  2720. <issue
  2721. id="AutoboxingStateCreation"
  2722. message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
  2723. errorLine1=" var pendingDeleteCount by remember { mutableStateOf(1) }"
  2724. errorLine2=" ~~~~~~~~~~~~~~">
  2725. <location
  2726. file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
  2727. line="175"
  2728. column="42"/>
  2729. </issue>
  2730. <issue
  2731. id="AutoboxingStateCreation"
  2732. message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
  2733. errorLine1=" var underlineColor by remember(show, config.underlineColor) { mutableStateOf(config.underlineColor) }"
  2734. errorLine2=" ~~~~~~~~~~~~~~">
  2735. <location
  2736. file="src/main/java/io/legado/app/ui/book/read/sheet/UnderlineConfigSheet.kt"
  2737. line="43"
  2738. column="67"/>
  2739. </issue>
  2740. <issue
  2741. id="Overdraw"
  2742. message="Possible overdraw: Root element paints background `@color/transparent50` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2743. errorLine1=" android:background=&quot;@color/transparent50&quot;>"
  2744. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2745. <location
  2746. file="src/main/res/layout/activity_source_login.xml"
  2747. line="7"
  2748. column="5"/>
  2749. </issue>
  2750. <issue
  2751. id="Overdraw"
  2752. message="Possible overdraw: Root element paints background `@color/transparent50` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2753. errorLine1=" android:background=&quot;@color/transparent50&quot;>"
  2754. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2755. <location
  2756. file="src/main/res/layout/activity_translucence.xml"
  2757. line="6"
  2758. column="5"/>
  2759. </issue>
  2760. <issue
  2761. id="Overdraw"
  2762. message="Possible overdraw: Root element paints background `@color/translucent` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2763. errorLine1=" android:background=&quot;@color/translucent&quot;"
  2764. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2765. <location
  2766. file="src/main/res/layout/dialog_click_action_config.xml"
  2767. line="8"
  2768. column="5"/>
  2769. </issue>
  2770. <issue
  2771. id="Overdraw"
  2772. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2773. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2774. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2775. <location
  2776. file="src/main/res/layout/item_1line_text.xml"
  2777. line="9"
  2778. column="5"/>
  2779. </issue>
  2780. <issue
  2781. id="Overdraw"
  2782. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2783. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2784. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2785. <location
  2786. file="src/main/res/layout/item_1line_text_and_del.xml"
  2787. line="5"
  2788. column="5"/>
  2789. </issue>
  2790. <issue
  2791. id="Overdraw"
  2792. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2793. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2794. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2795. <location
  2796. file="src/main/res/layout/item_app_log.xml"
  2797. line="6"
  2798. column="5"/>
  2799. </issue>
  2800. <issue
  2801. id="Overdraw"
  2802. message="Possible overdraw: Root element paints background `@color/book_ant_10` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2803. errorLine1=" android:background=&quot;@color/book_ant_10&quot;>"
  2804. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2805. <location
  2806. file="src/main/res/layout/item_book_manga_edge.xml"
  2807. line="8"
  2808. column="5"/>
  2809. </issue>
  2810. <issue
  2811. id="Overdraw"
  2812. message="Possible overdraw: Root element paints background `@color/book_ant_10` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2813. errorLine1=" android:background=&quot;@color/book_ant_10&quot;"
  2814. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2815. <location
  2816. file="src/main/res/layout/item_book_manga_page.xml"
  2817. line="8"
  2818. column="5"/>
  2819. </issue>
  2820. <issue
  2821. id="Overdraw"
  2822. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2823. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2824. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2825. <location
  2826. file="src/main/res/layout/item_book_source.xml"
  2827. line="7"
  2828. column="5"/>
  2829. </issue>
  2830. <issue
  2831. id="Overdraw"
  2832. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2833. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;>"
  2834. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2835. <location
  2836. file="src/main/res/layout/item_bookmark.xml"
  2837. line="10"
  2838. column="5"/>
  2839. </issue>
  2840. <issue
  2841. id="Overdraw"
  2842. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2843. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2844. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2845. <location
  2846. file="src/main/res/layout/item_dict_rule.xml"
  2847. line="8"
  2848. column="5"/>
  2849. </issue>
  2850. <issue
  2851. id="Overdraw"
  2852. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2853. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2854. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2855. <location
  2856. file="src/main/res/layout/item_download.xml"
  2857. line="7"
  2858. column="5"/>
  2859. </issue>
  2860. <issue
  2861. id="Overdraw"
  2862. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2863. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;>"
  2864. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2865. <location
  2866. file="src/main/res/layout/item_find_book.xml"
  2867. line="15"
  2868. column="5"/>
  2869. </issue>
  2870. <issue
  2871. id="Overdraw"
  2872. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2873. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2874. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2875. <location
  2876. file="src/main/res/layout/item_http_tts.xml"
  2877. line="8"
  2878. column="5"/>
  2879. </issue>
  2880. <issue
  2881. id="Overdraw"
  2882. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2883. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2884. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2885. <location
  2886. file="src/main/res/layout/item_import_book.xml"
  2887. line="7"
  2888. column="5"/>
  2889. </issue>
  2890. <issue
  2891. id="Overdraw"
  2892. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2893. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2894. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2895. <location
  2896. file="src/main/res/layout/item_rss_read_record.xml"
  2897. line="6"
  2898. column="5"/>
  2899. </issue>
  2900. <issue
  2901. id="Overdraw"
  2902. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2903. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2904. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2905. <location
  2906. file="src/main/res/layout/item_rss_source.xml"
  2907. line="6"
  2908. column="5"/>
  2909. </issue>
  2910. <issue
  2911. id="Overdraw"
  2912. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2913. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2914. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2915. <location
  2916. file="src/main/res/layout/item_rule_sub.xml"
  2917. line="7"
  2918. column="5"/>
  2919. </issue>
  2920. <issue
  2921. id="Overdraw"
  2922. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2923. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2924. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2925. <location
  2926. file="src/main/res/layout/item_search_history.xml"
  2927. line="8"
  2928. column="5"/>
  2929. </issue>
  2930. <issue
  2931. id="Overdraw"
  2932. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2933. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2934. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2935. <location
  2936. file="src/main/res/layout/item_source_import.xml"
  2937. line="6"
  2938. column="5"/>
  2939. </issue>
  2940. <issue
  2941. id="Overdraw"
  2942. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2943. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2944. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2945. <location
  2946. file="src/main/res/layout/item_text.xml"
  2947. line="7"
  2948. column="5"/>
  2949. </issue>
  2950. <issue
  2951. id="Overdraw"
  2952. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2953. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2954. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2955. <location
  2956. file="src/main/res/layout/item_toc_regex.xml"
  2957. line="7"
  2958. column="5"/>
  2959. </issue>
  2960. <issue
  2961. id="Overdraw"
  2962. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2963. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2964. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2965. <location
  2966. file="src/main/res/layout/item_txt_toc_rule.xml"
  2967. line="7"
  2968. column="5"/>
  2969. </issue>
  2970. <issue
  2971. id="Overdraw"
  2972. message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2973. errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
  2974. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2975. <location
  2976. file="src/main/res/layout/view_preference.xml"
  2977. line="5"
  2978. column="5"/>
  2979. </issue>
  2980. <issue
  2981. id="Overdraw"
  2982. message="Possible overdraw: Root element paints background `@color/transparent` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
  2983. errorLine1=" android:background=&quot;@color/transparent&quot;/>"
  2984. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  2985. <location
  2986. file="src/main/res/layout/view_tab_layout.xml"
  2987. line="7"
  2988. column="5"/>
  2989. </issue>
  2990. <issue
  2991. id="NotShrinkingResources"
  2992. message="Avoid setting isShrinkResources = false"
  2993. errorLine1=" isShrinkResources = false"
  2994. errorLine2=" ~~~~~">
  2995. <location
  2996. file="build.gradle.kts"
  2997. line="102"
  2998. column="33"/>
  2999. </issue>
  3000. <issue
  3001. id="UselessLeaf"
  3002. message="This `LinearLayout` view is unnecessary (no children, no `background`, no `id`, no `style`)"
  3003. errorLine1=" &lt;LinearLayout"
  3004. errorLine2=" ~~~~~~~~~~~~">
  3005. <location
  3006. file="src/main/res/layout/dialog_font_config.xml"
  3007. line="149"
  3008. column="6"/>
  3009. </issue>
  3010. <issue
  3011. id="TypographyDashes"
  3012. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3013. errorLine1=" &lt;string name=&quot;svg_path_hint&quot;>坐标范围:X(0-100),Y(0-100)&lt;/string>"
  3014. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
  3015. <location
  3016. file="src/main/res/values-zh-rCN/strings.xml"
  3017. line="785"
  3018. column="34"/>
  3019. </issue>
  3020. <issue
  3021. id="TypographyDashes"
  3022. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3023. errorLine1=" &lt;string name=&quot;svg_path_hint&quot;>Coordinates: X(0-100), Y(0-100)&lt;/string>"
  3024. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3025. <location
  3026. file="src/main/res/values/strings.xml"
  3027. line="816"
  3028. column="34"/>
  3029. </issue>
  3030. <issue
  3031. id="TypographyDashes"
  3032. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3033. errorLine1=" &lt;string name=&quot;svg_path_hint&quot;>座標:X(0-100),Y(0-100)&lt;/string>"
  3034. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  3035. <location
  3036. file="src/main/res/values-zh-rTW/strings.xml"
  3037. line="1513"
  3038. column="34"/>
  3039. </issue>
  3040. <issue
  3041. id="TypographyDashes"
  3042. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3043. errorLine1=" &lt;string name=&quot;llm_temperature_description&quot;>允許範圍:0-2。接近 0 更嚴謹;接近 2 更有創意。&lt;/string>"
  3044. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3045. <location
  3046. file="src/main/res/values-zh-rHK/strings.xml"
  3047. line="1856"
  3048. column="48"/>
  3049. </issue>
  3050. <issue
  3051. id="TypographyDashes"
  3052. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3053. errorLine1=" &lt;string name=&quot;llm_temperature_description&quot;>Allowed range: 0-2. Closer to 0 is stricter; closer to 2 is more creative.&lt;/string>"
  3054. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3055. <location
  3056. file="src/main/res/values/strings.xml"
  3057. line="1913"
  3058. column="48"/>
  3059. </issue>
  3060. <issue
  3061. id="TypographyDashes"
  3062. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3063. errorLine1=" &lt;string name=&quot;llm_temperature_description&quot;>允許範圍:0-2。越接近 0 越嚴格;越接近 2 越具創造力。&lt;/string>"
  3064. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3065. <location
  3066. file="src/main/res/values-zh-rTW/strings.xml"
  3067. line="1963"
  3068. column="48"/>
  3069. </issue>
  3070. <issue
  3071. id="TypographyDashes"
  3072. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3073. errorLine1=" &lt;string name=&quot;llm_temperature_description&quot;>允许值:0-2。越靠近 0 越严谨,越靠近 2 越有创造力。&lt;/string>"
  3074. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3075. <location
  3076. file="src/main/res/values-zh-rCN/strings.xml"
  3077. line="1969"
  3078. column="48"/>
  3079. </issue>
  3080. <issue
  3081. id="TypographyDashes"
  3082. message="Replace &quot;-&quot; with an &quot;en dash&quot; character (–, &amp;#8211;) ?"
  3083. errorLine1=" &lt;string name=&quot;svg_path_hint&quot;>座標:X(0-100),Y(0-100)&lt;/string>"
  3084. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  3085. <location
  3086. file="src/main/res/values-zh-rHK/strings.xml"
  3087. line="2141"
  3088. column="34"/>
  3089. </issue>
  3090. <issue
  3091. id="IconDuplicatesConfig"
  3092. message="The `ic_launcher.webp` icon has identical contents in the following configuration folders: drawable, mipmap-xhdpi">
  3093. <location
  3094. file="src/main/res/mipmap-xhdpi/ic_launcher.webp"/>
  3095. <location
  3096. file="src/main/res/drawable/ic_launcher.webp"/>
  3097. </issue>
  3098. <issue
  3099. id="IconLocation"
  3100. message="Found bitmap drawable `res/drawable/ic_launcher.webp` in densityless folder">
  3101. <location
  3102. file="src/main/res/drawable/ic_launcher.webp"/>
  3103. </issue>
  3104. <issue
  3105. id="IconLocation"
  3106. message="Found bitmap drawable `res/drawable/image_cover_default.png` in densityless folder">
  3107. <location
  3108. file="src/main/res/drawable/image_cover_default.png"/>
  3109. </issue>
  3110. <issue
  3111. id="IconLocation"
  3112. message="Found bitmap drawable `res/drawable/image_legado.png` in densityless folder">
  3113. <location
  3114. file="src/main/res/drawable/image_legado.png"/>
  3115. </issue>
  3116. <issue
  3117. id="IconLocation"
  3118. message="Found bitmap drawable `res/drawable/image_loading_error.png` in densityless folder">
  3119. <location
  3120. file="src/main/res/drawable/image_loading_error.png"/>
  3121. </issue>
  3122. <issue
  3123. id="IconLocation"
  3124. message="Found bitmap drawable `res/drawable/image_rss.jpg` in densityless folder">
  3125. <location
  3126. file="src/main/res/drawable/image_rss.jpg"/>
  3127. </issue>
  3128. <issue
  3129. id="IconLocation"
  3130. message="Found bitmap drawable `res/drawable/image_rss_article.jpg` in densityless folder">
  3131. <location
  3132. file="src/main/res/drawable/image_rss_article.jpg"/>
  3133. </issue>
  3134. <issue
  3135. id="ViewConstructor"
  3136. message="Custom view `PageView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
  3137. errorLine1="class PageView("
  3138. errorLine2=" ~~~~~~~~">
  3139. <location
  3140. file="src/main/java/io/legado/app/ui/book/read/page/PageView.kt"
  3141. line="48"
  3142. column="7"/>
  3143. </issue>
  3144. <issue
  3145. id="ViewConstructor"
  3146. message="Custom view `ReadView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
  3147. errorLine1="class ReadView("
  3148. errorLine2=" ~~~~~~~~">
  3149. <location
  3150. file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
  3151. line="52"
  3152. column="7"/>
  3153. </issue>
  3154. <issue
  3155. id="ReportShortcutUsage"
  3156. message="Calling this method indicates use of dynamic shortcuts, but there are no calls to methods that track shortcut usage, such as `pushDynamicShortcut` or `reportShortcutUsed`. Calling these methods is recommended, as they track shortcut usage and allow launchers to adjust which shortcuts appear based on activation history. Please see https://developer.android.com/develop/ui/views/launch/shortcuts/managing-shortcuts#track-usage"
  3157. errorLine1=" ShortcutManagerCompat.setDynamicShortcuts("
  3158. errorLine2=" ^">
  3159. <location
  3160. file="src/main/java/io/legado/app/api/ShortCuts.kt"
  3161. line="59"
  3162. column="9"/>
  3163. </issue>
  3164. <issue
  3165. id="UseKtx"
  3166. message="Use the KTX function `createBitmap` instead?"
  3167. errorLine1=" val bitmap = Bitmap.createBitmap(w, h, config)"
  3168. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3169. <location
  3170. file="src/main/java/io/legado/app/utils/ACache.kt"
  3171. line="609"
  3172. column="26"/>
  3173. </issue>
  3174. <issue
  3175. id="UseKtx"
  3176. message="Use the KTX extension function `Bitmap.toDrawable` instead?"
  3177. errorLine1=" } else BitmapDrawable(appCtx.resources, bm)"
  3178. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3179. <location
  3180. file="src/main/java/io/legado/app/utils/ACache.kt"
  3181. line="624"
  3182. column="20"/>
  3183. </issue>
  3184. <issue
  3185. id="UseKtx"
  3186. message="Use the KTX extension function `String.toUri` instead?"
  3187. errorLine1=" val uri = Uri.parse(backupPath)"
  3188. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3189. <location
  3190. file="src/main/java/io/legado/app/ui/about/AboutViewModel.kt"
  3191. line="139"
  3192. column="27"/>
  3193. </issue>
  3194. <issue
  3195. id="UseKtx"
  3196. message="Use the KTX extension function `String.toUri` instead?"
  3197. errorLine1=" val uri = Uri.parse(backupPath)"
  3198. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3199. <location
  3200. file="src/main/java/io/legado/app/ui/about/AboutViewModel.kt"
  3201. line="163"
  3202. column="23"/>
  3203. </issue>
  3204. <issue
  3205. id="UseKtx"
  3206. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3207. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ArcView)"
  3208. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3209. <location
  3210. file="src/main/java/io/legado/app/ui/widget/image/ArcView.kt"
  3211. line="32"
  3212. column="26"/>
  3213. </issue>
  3214. <issue
  3215. id="UseKtx"
  3216. message="Use the KTX extension function `String.toColorInt` instead?"
  3217. errorLine1=" Color.parseColor(&quot;#303F9F&quot;)"
  3218. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3219. <location
  3220. file="src/main/java/io/legado/app/ui/widget/image/ArcView.kt"
  3221. line="36"
  3222. column="13"/>
  3223. </issue>
  3224. <issue
  3225. id="UseKtx"
  3226. message="Use the KTX extension function `String.toUri` instead?"
  3227. errorLine1=" return deCompress(Uri.parse(archivePath), path, filter)"
  3228. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
  3229. <location
  3230. file="src/main/java/io/legado/app/utils/ArchiveUtils.kt"
  3231. line="34"
  3232. column="27"/>
  3233. </issue>
  3234. <issue
  3235. id="UseKtx"
  3236. message="Use the KTX extension function `String.toUri` instead?"
  3237. errorLine1=" return FileDoc.fromUri(Uri.parse(workPath), true)"
  3238. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  3239. <location
  3240. file="src/main/java/io/legado/app/utils/ArchiveUtils.kt"
  3241. line="107"
  3242. column="32"/>
  3243. </issue>
  3244. <issue
  3245. id="UseKtx"
  3246. message="Use the KTX extension function `String.toUri` instead?"
  3247. errorLine1=" runCatching { backupRestoreUseCase.restoreLocal(Uri.parse(uri).toString()) }"
  3248. errorLine2=" ~~~~~~~~~~~~~~">
  3249. <location
  3250. file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigViewModel.kt"
  3251. line="302"
  3252. column="61"/>
  3253. </issue>
  3254. <issue
  3255. id="UseKtx"
  3256. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3257. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BevelLabelView)"
  3258. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3259. <location
  3260. file="src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt"
  3261. line="53"
  3262. column="26"/>
  3263. </issue>
  3264. <issue
  3265. id="UseKtx"
  3266. message="Use the KTX extension function `Canvas.withSave` instead?"
  3267. errorLine1=" canvas.save()"
  3268. errorLine2=" ~~~~~~~~~~~~~">
  3269. <location
  3270. file="src/main/java/io/legado/app/ui/book/read/config/BgImageSpan.kt"
  3271. line="91"
  3272. column="21"/>
  3273. </issue>
  3274. <issue
  3275. id="UseKtx"
  3276. message="Use the KTX extension function `Bitmap.get` instead?"
  3277. errorLine1=" pixel = this.getPixel("
  3278. errorLine2=" ^">
  3279. <location
  3280. file="src/main/java/io/legado/app/utils/BitmapUtils.kt"
  3281. line="320"
  3282. column="21"/>
  3283. </issue>
  3284. <issue
  3285. id="UseKtx"
  3286. message="Use the KTX function `createBitmap` instead?"
  3287. errorLine1=" val output = Bitmap.createBitmap(outputSize, outputSize, Bitmap.Config.ARGB_8888)"
  3288. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3289. <location
  3290. file="src/main/java/io/legado/app/ui/book/knowledge/CharacterAvatarImage.kt"
  3291. line="49"
  3292. column="18"/>
  3293. </issue>
  3294. <issue
  3295. id="UseKtx"
  3296. message="Use the KTX extension function `String.toUri` instead?"
  3297. errorLine1=" File(Uri.parse(avatarUri).path.orEmpty()).canonicalFile"
  3298. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  3299. <location
  3300. file="src/main/java/io/legado/app/ui/book/knowledge/CharacterAvatarImage.kt"
  3301. line="78"
  3302. column="14"/>
  3303. </issue>
  3304. <issue
  3305. id="UseKtx"
  3306. message="Use the KTX extension function `String.toUri` instead?"
  3307. errorLine1=" text.isHttpTtsImportUri() -> Uri.parse(text).getQueryParameter(&quot;src&quot;)"
  3308. errorLine2=" ~~~~~~~~~~~~~~~">
  3309. <location
  3310. file="src/main/java/io/legado/app/ui/book/readaloud/cloudtts/CloudTtsViewModel.kt"
  3311. line="881"
  3312. column="38"/>
  3313. </issue>
  3314. <issue
  3315. id="UseKtx"
  3316. message="Use the KTX extension function `String.toUri` instead?"
  3317. errorLine1=" val uri = runCatching { Uri.parse(this) }.getOrNull() ?: return false"
  3318. errorLine2=" ~~~~~~~~~~~~~~~">
  3319. <location
  3320. file="src/main/java/io/legado/app/ui/book/readaloud/cloudtts/CloudTtsViewModel.kt"
  3321. line="1032"
  3322. column="29"/>
  3323. </issue>
  3324. <issue
  3325. id="UseKtx"
  3326. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3327. errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.ColorPreference)"
  3328. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3329. <location
  3330. file="src/main/java/io/legado/app/lib/prefs/ColorPreference.kt"
  3331. line="50"
  3332. column="17"/>
  3333. </issue>
  3334. <issue
  3335. id="UseKtx"
  3336. message="Use the KTX extension function `String.toUri` instead?"
  3337. errorLine1=" val uri = Uri.parse(uriString)"
  3338. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  3339. <location
  3340. file="src/main/java/io/legado/app/ui/config/coverConfig/CoverAlbumManageViewModel.kt"
  3341. line="123"
  3342. column="27"/>
  3343. </issue>
  3344. <issue
  3345. id="UseKtx"
  3346. message="Use the KTX extension function `String.toUri` instead?"
  3347. errorLine1=" val uri = Uri.parse(backupPath)"
  3348. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3349. <location
  3350. file="src/main/java/io/legado/app/help/CrashHandler.kt"
  3351. line="177"
  3352. column="27"/>
  3353. </issue>
  3354. <issue
  3355. id="UseKtx"
  3356. message="Use the KTX extension function `String.toUri` instead?"
  3357. errorLine1=" val uri = Uri.parse(backupPath)"
  3358. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3359. <location
  3360. file="src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt"
  3361. line="117"
  3362. column="31"/>
  3363. </issue>
  3364. <issue
  3365. id="UseKtx"
  3366. message="Use the KTX extension function `String.toUri` instead?"
  3367. errorLine1=" val uri = Uri.parse(backupPath)"
  3368. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3369. <location
  3370. file="src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt"
  3371. line="151"
  3372. column="31"/>
  3373. </issue>
  3374. <issue
  3375. id="UseKtx"
  3376. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3377. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
  3378. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3379. <location
  3380. file="src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt"
  3381. line="56"
  3382. column="26"/>
  3383. </issue>
  3384. <issue
  3385. id="UseKtx"
  3386. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3387. errorLine1=" val a = context.obtainStyledAttributes(attrs)"
  3388. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3389. <location
  3390. file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
  3391. line="39"
  3392. column="17"/>
  3393. </issue>
  3394. <issue
  3395. id="UseKtx"
  3396. message="Use the KTX extension function `Canvas.withSave` instead?"
  3397. errorLine1=" canvas.save()"
  3398. errorLine2=" ~~~~~~~~~~~~~">
  3399. <location
  3400. file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
  3401. line="94"
  3402. column="9"/>
  3403. </issue>
  3404. <issue
  3405. id="UseKtx"
  3406. message="Use the KTX extension function `Canvas.withSave` instead?"
  3407. errorLine1=" canvas.save()"
  3408. errorLine2=" ~~~~~~~~~~~~~">
  3409. <location
  3410. file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
  3411. line="121"
  3412. column="9"/>
  3413. </issue>
  3414. <issue
  3415. id="UseKtx"
  3416. message="Use the KTX extension function `String.toUri` instead?"
  3417. errorLine1=" val request = DownloadManager.Request(Uri.parse(url))"
  3418. errorLine2=" ~~~~~~~~~~~~~~">
  3419. <location
  3420. file="src/main/java/io/legado/app/service/DownloadService.kt"
  3421. line="103"
  3422. column="51"/>
  3423. </issue>
  3424. <issue
  3425. id="UseKtx"
  3426. message="Use the KTX extension property `Locale.layoutDirection` instead?"
  3427. errorLine1=" get() = (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault())"
  3428. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3429. <location
  3430. file="src/main/java/io/legado/app/ui/widget/recycler/DragSelectTouchHelper.kt"
  3431. line="735"
  3432. column="18"/>
  3433. </issue>
  3434. <issue
  3435. id="UseKtx"
  3436. message="Use the KTX extension function `Int.toDrawable` instead?"
  3437. errorLine1=" return createTransitionDrawable(ColorDrawable(startColor), ColorDrawable(endColor))"
  3438. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
  3439. <location
  3440. file="src/main/java/io/legado/app/utils/DrawableUtils.kt"
  3441. line="26"
  3442. column="41"/>
  3443. </issue>
  3444. <issue
  3445. id="UseKtx"
  3446. message="Use the KTX extension function `Int.toDrawable` instead?"
  3447. errorLine1=" return createTransitionDrawable(ColorDrawable(startColor), ColorDrawable(endColor))"
  3448. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
  3449. <location
  3450. file="src/main/java/io/legado/app/utils/DrawableUtils.kt"
  3451. line="26"
  3452. column="68"/>
  3453. </issue>
  3454. <issue
  3455. id="UseKtx"
  3456. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3457. errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.DynamicFrameLayout)"
  3458. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3459. <location
  3460. file="src/main/java/io/legado/app/ui/widget/dynamiclayout/DynamicFrameLayout.kt"
  3461. line="46"
  3462. column="17"/>
  3463. </issue>
  3464. <issue
  3465. id="UseKtx"
  3466. message="Use the KTX extension function `String.toUri` instead?"
  3467. errorLine1=" res = res.withUri(Uri.parse(url))"
  3468. errorLine2=" ~~~~~~~~~~~~~~">
  3469. <location
  3470. file="src/main/java/io/legado/app/help/exoplayer/ExoPlayerHelper.kt"
  3471. line="70"
  3472. column="35"/>
  3473. </issue>
  3474. <issue
  3475. id="UseKtx"
  3476. message="Use the KTX extension function `Bitmap.get` instead?"
  3477. errorLine1=" generateParticle(bitmap.getPixel((j + 1) * w, (i + 1) * h), random)"
  3478. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3479. <location
  3480. file="src/main/java/io/legado/app/ui/widget/anima/explosion_field/ExplosionAnimator.kt"
  3481. line="43"
  3482. column="38"/>
  3483. </issue>
  3484. <issue
  3485. id="UseKtx"
  3486. message="Use the KTX extension function `String.toUri` instead?"
  3487. errorLine1=" importBook(Uri.parse(treeUriStr), uri)"
  3488. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3489. <location
  3490. file="src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt"
  3491. line="151"
  3492. column="28"/>
  3493. </issue>
  3494. <issue
  3495. id="UseKtx"
  3496. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3497. errorLine1=" val array = context.obtainStyledAttributes(attrs, R.styleable.FilletImageView)"
  3498. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3499. <location
  3500. file="src/main/java/io/legado/app/ui/widget/image/FilletImageView.kt"
  3501. line="26"
  3502. column="21"/>
  3503. </issue>
  3504. <issue
  3505. id="UseKtx"
  3506. message="Use the KTX extension function `String.toUri` instead?"
  3507. errorLine1=" val uri = Uri.parse(url)"
  3508. errorLine2=" ~~~~~~~~~~~~~~">
  3509. <location
  3510. file="src/main/java/io/legado/app/ui/file/HandleFileActivity.kt"
  3511. line="140"
  3512. column="39"/>
  3513. </issue>
  3514. <issue
  3515. id="UseKtx"
  3516. message="Use the KTX extension function `String.toUri` instead?"
  3517. errorLine1=" Uri.parse(path)"
  3518. errorLine2=" ~~~~~~~~~~~~~~~">
  3519. <location
  3520. file="src/main/java/io/legado/app/ui/file/HandleFileActivity.kt"
  3521. line="153"
  3522. column="29"/>
  3523. </issue>
  3524. <issue
  3525. id="UseKtx"
  3526. message="Use the KTX extension function `String.toUri` instead?"
  3527. errorLine1=" path.isContentScheme() -> requestManager.load(Uri.parse(path))"
  3528. errorLine2=" ~~~~~~~~~~~~~~~">
  3529. <location
  3530. file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
  3531. line="47"
  3532. column="59"/>
  3533. </issue>
  3534. <issue
  3535. id="UseKtx"
  3536. message="Use the KTX extension function `String.toUri` instead?"
  3537. errorLine1=" path.isContentScheme() -> requestManager.load(Uri.parse(path))"
  3538. errorLine2=" ~~~~~~~~~~~~~~~">
  3539. <location
  3540. file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
  3541. line="63"
  3542. column="59"/>
  3543. </issue>
  3544. <issue
  3545. id="UseKtx"
  3546. message="Use the KTX extension function `String.toUri` instead?"
  3547. errorLine1=" path.isContentScheme() -> Glide.with(context).asFile().load(Uri.parse(path))"
  3548. errorLine2=" ~~~~~~~~~~~~~~~">
  3549. <location
  3550. file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
  3551. line="76"
  3552. column="73"/>
  3553. </issue>
  3554. <issue
  3555. id="UseKtx"
  3556. message="Use the KTX extension function `String.toUri` instead?"
  3557. errorLine1=" val uri = Uri.parse(mText)"
  3558. errorLine2=" ~~~~~~~~~~~~~~~~">
  3559. <location
  3560. file="src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt"
  3561. line="170"
  3562. column="31"/>
  3563. </issue>
  3564. <issue
  3565. id="UseKtx"
  3566. message="Use the KTX extension function `String.toUri` instead?"
  3567. errorLine1=" return getBrowserIntent(Uri.parse(url))"
  3568. errorLine2=" ~~~~~~~~~~~~~~">
  3569. <location
  3570. file="src/main/java/io/legado/app/help/IntentHelp.kt"
  3571. line="14"
  3572. column="33"/>
  3573. </issue>
  3574. <issue
  3575. id="UseKtx"
  3576. message="Use the KTX extension function `SharedPreferences.edit` instead?"
  3577. errorLine1=" preferences.edit()"
  3578. errorLine2=" ~~~~~~~~~~~~~~~~~~">
  3579. <location
  3580. file="src/main/java/io/legado/app/ui/book/read/pageestimate/PageEstimateCalibrationStore.kt"
  3581. line="138"
  3582. column="9"/>
  3583. </issue>
  3584. <issue
  3585. id="UseKtx"
  3586. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3587. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference)"
  3588. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3589. <location
  3590. file="src/main/java/io/legado/app/lib/prefs/Preference.kt"
  3591. line="31"
  3592. column="26"/>
  3593. </issue>
  3594. <issue
  3595. id="UseKtx"
  3596. message="Use the KTX function `createBitmap` instead?"
  3597. errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap(heightPix, heightPix, Bitmap.Config.ARGB_8888)"
  3598. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3599. <location
  3600. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3601. line="98"
  3602. column="35"/>
  3603. </issue>
  3604. <issue
  3605. id="UseKtx"
  3606. message="Use the KTX function `createBitmap` instead?"
  3607. errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888)"
  3608. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3609. <location
  3610. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3611. line="143"
  3612. column="31"/>
  3613. </issue>
  3614. <issue
  3615. id="UseKtx"
  3616. message="Use the KTX extension function `Canvas.withSave` instead?"
  3617. errorLine1=" canvas.save()"
  3618. errorLine2=" ~~~~~~~~~~~~~">
  3619. <location
  3620. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3621. line="159"
  3622. column="13"/>
  3623. </issue>
  3624. <issue
  3625. id="UseKtx"
  3626. message="Use the KTX function `createBitmap` instead?"
  3627. errorLine1=" val bitmap = Bitmap.createBitmap("
  3628. errorLine2=" ^">
  3629. <location
  3630. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3631. line="409"
  3632. column="26"/>
  3633. </issue>
  3634. <issue
  3635. id="UseKtx"
  3636. message="Use the KTX function `createBitmap` instead?"
  3637. errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap("
  3638. errorLine2=" ^">
  3639. <location
  3640. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3641. line="451"
  3642. column="31"/>
  3643. </issue>
  3644. <issue
  3645. id="UseKtx"
  3646. message="Use the KTX extension function `Canvas.withSave` instead?"
  3647. errorLine1=" canvas.save()"
  3648. errorLine2=" ~~~~~~~~~~~~~">
  3649. <location
  3650. file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
  3651. line="469"
  3652. column="13"/>
  3653. </issue>
  3654. <issue
  3655. id="UseKtx"
  3656. message="Use the KTX extension function `String.toColorInt` instead?"
  3657. errorLine1=" runCatching { android.graphics.Color.parseColor(this) }.getOrDefault(0)"
  3658. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3659. <location
  3660. file="src/main/java/io/legado/app/data/repository/ReadBookStyleConfigRepository.kt"
  3661. line="349"
  3662. column="23"/>
  3663. </issue>
  3664. <issue
  3665. id="UseKtx"
  3666. message="Use the KTX extension function `String.toUri` instead?"
  3667. errorLine1=" val uri = runCatching { Uri.parse(this) }.getOrNull() ?: return false"
  3668. errorLine2=" ~~~~~~~~~~~~~~~">
  3669. <location
  3670. file="src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt"
  3671. line="2510"
  3672. column="29"/>
  3673. </issue>
  3674. <issue
  3675. id="UseKtx"
  3676. message="Use the KTX extension function `SharedPreferences.edit` instead?"
  3677. errorLine1=" context.getSharedPreferences(preferenceName, Context.MODE_PRIVATE)"
  3678. errorLine2=" ^">
  3679. <location
  3680. file="src/main/java/io/legado/app/ui/book/read/ReadButtonConfigDelegate.kt"
  3681. line="120"
  3682. column="9"/>
  3683. </issue>
  3684. <issue
  3685. id="UseKtx"
  3686. message="Use the KTX extension function `String.toUri` instead?"
  3687. errorLine1=" Uri.parse(&quot;content://downloads/public_downloads&quot;),"
  3688. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3689. <location
  3690. file="src/main/java/io/legado/app/utils/RealPathUtil.kt"
  3691. line="44"
  3692. column="21"/>
  3693. </issue>
  3694. <issue
  3695. id="UseKtx"
  3696. message="Use the KTX extension function `String.toUri` instead?"
  3697. errorLine1=" val localBookUri = Uri.parse(book.bookUrl)"
  3698. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
  3699. <location
  3700. file="src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt"
  3701. line="71"
  3702. column="28"/>
  3703. </issue>
  3704. <issue
  3705. id="UseKtx"
  3706. message="Use the KTX extension function `Int.toDrawable` instead?"
  3707. errorLine1=" mDefaultDrawable = ColorDrawable(Color.TRANSPARENT)"
  3708. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3709. <location
  3710. file="src/main/java/io/legado/app/lib/theme/Selector.kt"
  3711. line="284"
  3712. column="32"/>
  3713. </issue>
  3714. <issue
  3715. id="UseKtx"
  3716. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3717. errorLine1=" context.obtainStyledAttributes(attrs, R.styleable.ShadowLayout)"
  3718. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3719. <location
  3720. file="src/main/java/io/legado/app/ui/widget/ShadowLayout.kt"
  3721. line="63"
  3722. column="13"/>
  3723. </issue>
  3724. <issue
  3725. id="UseKtx"
  3726. message="Use the KTX extension function `Canvas.withClip` instead?"
  3727. errorLine1=" canvas.save()"
  3728. errorLine2=" ~~~~~~~~~~~~~">
  3729. <location
  3730. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  3731. line="302"
  3732. column="9"/>
  3733. </issue>
  3734. <issue
  3735. id="UseKtx"
  3736. message="Use the KTX extension function `Canvas.withSave` instead?"
  3737. errorLine1=" canvas.save()"
  3738. errorLine2=" ~~~~~~~~~~~~~">
  3739. <location
  3740. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  3741. line="398"
  3742. column="9"/>
  3743. </issue>
  3744. <issue
  3745. id="UseKtx"
  3746. message="Use the KTX extension function `Canvas.withClip` instead?"
  3747. errorLine1=" canvas.save()"
  3748. errorLine2=" ~~~~~~~~~~~~~">
  3749. <location
  3750. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  3751. line="468"
  3752. column="9"/>
  3753. </issue>
  3754. <issue
  3755. id="UseKtx"
  3756. message="Use the KTX extension function `Canvas.withSave` instead?"
  3757. errorLine1=" canvas.save()"
  3758. errorLine2=" ~~~~~~~~~~~~~">
  3759. <location
  3760. file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
  3761. line="500"
  3762. column="9"/>
  3763. </issue>
  3764. <issue
  3765. id="UseKtx"
  3766. message="Use the KTX extension function `Canvas.withTranslation` instead?"
  3767. errorLine1=" canvas.save()"
  3768. errorLine2=" ~~~~~~~~~~~~~">
  3769. <location
  3770. file="src/main/java/io/legado/app/ui/book/read/config/SvgUnderlineSpan.kt"
  3771. line="67"
  3772. column="17"/>
  3773. </issue>
  3774. <issue
  3775. id="UseKtx"
  3776. message="Use the KTX extension function `String.toUri` instead?"
  3777. errorLine1=" intent.data = Uri.parse(&quot;package:&quot; + activity.packageName)"
  3778. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3779. <location
  3780. file="src/main/java/io/legado/app/utils/SystemUtils.kt"
  3781. line="27"
  3782. column="31"/>
  3783. </issue>
  3784. <issue
  3785. id="UseKtx"
  3786. message="Use the KTX extension function `String.toUri` instead?"
  3787. errorLine1=" intent.data = Uri.parse(&quot;package:&quot; + activity.packageName)"
  3788. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3789. <location
  3790. file="src/main/java/io/legado/app/utils/SystemUtils.kt"
  3791. line="27"
  3792. column="31"/>
  3793. </issue>
  3794. <issue
  3795. id="UseKtx"
  3796. message="Use the KTX extension function `Canvas.withTranslation` instead?"
  3797. errorLine1=" canvas.save()"
  3798. errorLine2=" ~~~~~~~~~~~~~">
  3799. <location
  3800. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3801. line="523"
  3802. column="9"/>
  3803. </issue>
  3804. <issue
  3805. id="UseKtx"
  3806. message="Use the KTX extension function `Canvas.withSave` instead?"
  3807. errorLine1=" canvas.save()"
  3808. errorLine2=" ~~~~~~~~~~~~~">
  3809. <location
  3810. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3811. line="575"
  3812. column="17"/>
  3813. </issue>
  3814. <issue
  3815. id="UseKtx"
  3816. message="Use the KTX extension function `Bitmap.get` instead?"
  3817. errorLine1=" val color = if (horizontal) bitmap.getPixel(position, 0) else bitmap.getPixel(0, position)"
  3818. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3819. <location
  3820. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3821. line="821"
  3822. column="41"/>
  3823. </issue>
  3824. <issue
  3825. id="UseKtx"
  3826. message="Use the KTX extension function `Bitmap.get` instead?"
  3827. errorLine1=" val color = if (horizontal) bitmap.getPixel(position, 0) else bitmap.getPixel(0, position)"
  3828. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3829. <location
  3830. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3831. line="821"
  3832. column="75"/>
  3833. </issue>
  3834. <issue
  3835. id="UseKtx"
  3836. message="Use the KTX extension function `Bitmap.scale` instead?"
  3837. errorLine1=" val scaled = Bitmap.createScaledBitmap(source, width, height, true)"
  3838. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3839. <location
  3840. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3841. line="944"
  3842. column="26"/>
  3843. </issue>
  3844. <issue
  3845. id="UseKtx"
  3846. message="Use the KTX extension function `String.toUri` instead?"
  3847. errorLine1=" val uri = android.net.Uri.parse(path)"
  3848. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3849. <location
  3850. file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
  3851. line="959"
  3852. column="31"/>
  3853. </issue>
  3854. <issue
  3855. id="UseKtx"
  3856. message="Use the KTX extension function `String.toUri` instead?"
  3857. errorLine1=" val uri = Uri.parse(fontPath)"
  3858. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  3859. <location
  3860. file="src/main/java/io/legado/app/ui/theme/ThemeComponents.kt"
  3861. line="57"
  3862. column="19"/>
  3863. </issue>
  3864. <issue
  3865. id="UseKtx"
  3866. message="Use the KTX extension function `String.toUri` instead?"
  3867. errorLine1=" val uri = Uri.parse(uriString)"
  3868. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  3869. <location
  3870. file="src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigViewModel.kt"
  3871. line="419"
  3872. column="19"/>
  3873. </issue>
  3874. <issue
  3875. id="UseKtx"
  3876. message="Use the KTX extension function `String.toUri` instead?"
  3877. errorLine1=" uri = Uri.parse(intent.uri),"
  3878. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  3879. <location
  3880. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
  3881. line="166"
  3882. column="23"/>
  3883. </issue>
  3884. <issue
  3885. id="UseKtx"
  3886. message="Use the KTX extension function `String.toUri` instead?"
  3887. errorLine1=" emitImportResult(themePackageManager.importPackage(Uri.parse(uri)))"
  3888. errorLine2=" ~~~~~~~~~~~~~~">
  3889. <location
  3890. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
  3891. line="186"
  3892. column="64"/>
  3893. </issue>
  3894. <issue
  3895. id="UseKtx"
  3896. message="Use the KTX extension function `String.toUri` instead?"
  3897. errorLine1=" emitImportResult(themePackageManager.importLegacyJson(Uri.parse(uri)))"
  3898. errorLine2=" ~~~~~~~~~~~~~~">
  3899. <location
  3900. file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
  3901. line="192"
  3902. column="67"/>
  3903. </issue>
  3904. <issue
  3905. id="UseKtx"
  3906. message="Use the KTX extension function `String.toUri` instead?"
  3907. errorLine1=" context.contentResolver.openInputStream(Uri.parse(path))"
  3908. errorLine2=" ~~~~~~~~~~~~~~~">
  3909. <location
  3910. file="src/main/java/io/legado/app/help/config/ThemePackageManager.kt"
  3911. line="989"
  3912. column="53"/>
  3913. </issue>
  3914. <issue
  3915. id="UseKtx"
  3916. message="Use the KTX extension function `String.toUri` instead?"
  3917. errorLine1=" val fileName = Uri.parse(path).lastPathSegment.orEmpty()"
  3918. errorLine2=" ~~~~~~~~~~~~~~~">
  3919. <location
  3920. file="src/main/java/io/legado/app/help/config/ThemePackageManager.kt"
  3921. line="997"
  3922. column="24"/>
  3923. </issue>
  3924. <issue
  3925. id="UseKtx"
  3926. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3927. errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ThemeRadioNoButton)"
  3928. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3929. <location
  3930. file="src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt"
  3931. line="18"
  3932. column="26"/>
  3933. </issue>
  3934. <issue
  3935. id="UseKtx"
  3936. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3937. errorLine1=" val a = context.obtainStyledAttributes("
  3938. errorLine2=" ^">
  3939. <location
  3940. file="src/main/java/io/legado/app/ui/widget/TitleBar.kt"
  3941. line="51"
  3942. column="17"/>
  3943. </issue>
  3944. <issue
  3945. id="UseKtx"
  3946. message="Use the KTX function `createBitmap` instead?"
  3947. errorLine1=" return Bitmap.createBitmap(width, height, config)"
  3948. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3949. <location
  3950. file="src/main/java/io/legado/app/ui/widget/anima/explosion_field/Utils.kt"
  3951. line="69"
  3952. column="20"/>
  3953. </issue>
  3954. <issue
  3955. id="UseKtx"
  3956. message="Use the KTX extension function `Context.withStyledAttributes` instead?"
  3957. errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.VerticalSeekBar)"
  3958. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3959. <location
  3960. file="src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt"
  3961. line="65"
  3962. column="21"/>
  3963. </issue>
  3964. <issue
  3965. id="UseKtx"
  3966. message="Use the KTX extension function `ViewGroup.isNotEmpty` instead?"
  3967. errorLine1=" val child = if (childCount > 0) getChildAt(0) else null"
  3968. errorLine2=" ~~~~~~~~~~~~~~">
  3969. <location
  3970. file="src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBarWrapper.kt"
  3971. line="21"
  3972. column="29"/>
  3973. </issue>
  3974. <issue
  3975. id="UseKtx"
  3976. message="Use the KTX extension function `Canvas.withTranslation` instead?"
  3977. errorLine1=" c.save()"
  3978. errorLine2=" ~~~~~~~~">
  3979. <location
  3980. file="src/main/java/io/legado/app/utils/ViewExtensions.kt"
  3981. line="169"
  3982. column="9"/>
  3983. </issue>
  3984. <issue
  3985. id="UseKtx"
  3986. message="Use the KTX extension function `Int.toDrawable` instead?"
  3987. errorLine1=" val start = oldColor ?: ColorDrawable(view.solidColor)"
  3988. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  3989. <location
  3990. file="src/main/java/io/legado/app/lib/theme/ViewUtils.kt"
  3991. line="34"
  3992. column="33"/>
  3993. </issue>
  3994. <issue
  3995. id="UseKtx"
  3996. message="Use the KTX extension function `Int.toDrawable` instead?"
  3997. errorLine1=" val end = ColorDrawable(newColor)"
  3998. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
  3999. <location
  4000. file="src/main/java/io/legado/app/lib/theme/ViewUtils.kt"
  4001. line="35"
  4002. column="19"/>
  4003. </issue>
  4004. <issue
  4005. id="UseKtx"
  4006. message="Use the KTX extension function `String.toUri` instead?"
  4007. errorLine1=" return shouldOverrideUrlLoading(Uri.parse(it))"
  4008. errorLine2=" ~~~~~~~~~~~~~">
  4009. <location
  4010. file="src/main/java/io/legado/app/ui/browser/WebViewActivity.kt"
  4011. line="257"
  4012. column="49"/>
  4013. </issue>
  4014. <issue
  4015. id="UseKtx"
  4016. message="Use the KTX extension function `String.toUri` instead?"
  4017. errorLine1=" return shouldOverrideUrlLoading(Uri.parse(url))"
  4018. errorLine2=" ~~~~~~~~~~~~~~">
  4019. <location
  4020. file="src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt"
  4021. line="107"
  4022. column="49"/>
  4023. </issue>
  4024. <issue
  4025. id="UseKtx"
  4026. message="Use the KTX extension function `String.toUri` instead?"
  4027. errorLine1=" return shouldOverrideUrlLoading(Uri.parse(url))"
  4028. errorLine2=" ~~~~~~~~~~~~~~">
  4029. <location
  4030. file="src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt"
  4031. line="107"
  4032. column="49"/>
  4033. </issue>
  4034. <issue
  4035. id="ModifierNodeInspectableProperties"
  4036. message="BgEffectElement does not override inspectableProperties(). The layout inspector will use the default implementation of this function, which will attempt to read BgEffectElement&apos;s properties reflectively. Override inspectableProperties() if you&apos;d like to customize this modifier&apos;s presentation in the layout inspector."
  4037. errorLine1="private data class BgEffectElement("
  4038. errorLine2=" ~~~~~~~~~~~~~~~">
  4039. <location
  4040. file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
  4041. line="36"
  4042. column="20"/>
  4043. </issue>
  4044. <issue
  4045. id="ClickableViewAccessibility"
  4046. message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
  4047. errorLine1=" setOnTouchListener(onCursorTouch)"
  4048. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4049. <location
  4050. file="src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt"
  4051. line="707"
  4052. column="21"/>
  4053. </issue>
  4054. <issue
  4055. id="ClickableViewAccessibility"
  4056. message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
  4057. errorLine1=" setOnTouchListener(onCursorTouch)"
  4058. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4059. <location
  4060. file="src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt"
  4061. line="718"
  4062. column="21"/>
  4063. </issue>
  4064. <issue
  4065. id="ConstantLocale"
  4066. message="Assigning `Locale.getDefault()` to a final static field is suspicious; this code will not work correctly if the user changes locale while the app is running"
  4067. errorLine1=" private val detailDateFormat = SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;, Locale.getDefault())"
  4068. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  4069. <location
  4070. file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
  4071. line="222"
  4072. column="80"/>
  4073. </issue>
  4074. <issue
  4075. id="ConstantLocale"
  4076. message="Assigning `Locale.getDefault()` to a final static field is suspicious; this code will not work correctly if the user changes locale while the app is running"
  4077. errorLine1=" private val detailTimeFormat = SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;, Locale.getDefault())"
  4078. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  4079. <location
  4080. file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
  4081. line="223"
  4082. column="80"/>
  4083. </issue>
  4084. <issue
  4085. id="SetTextI18n"
  4086. message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
  4087. errorLine1=" binding.checkSourceTimeout.setText((timeoutMillis / 1000).toString())"
  4088. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4089. <location
  4090. file="src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt"
  4091. line="62"
  4092. column="48"/>
  4093. </issue>
  4094. <issue
  4095. id="SetTextI18n"
  4096. message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
  4097. errorLine1=" text = R.string.empty.toString()"
  4098. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
  4099. <location
  4100. file="src/main/java/io/legado/app/ui/widget/EmptyMessageView.kt"
  4101. line="49"
  4102. column="20"/>
  4103. </issue>
  4104. <issue
  4105. id="SetTextI18n"
  4106. message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
  4107. errorLine1=" binding.message.text = &quot;${viewModel.sourceName} 正在请求跳转链接/应用,是否跳转?&quot;"
  4108. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4109. <location
  4110. file="src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt"
  4111. line="69"
  4112. column="32"/>
  4113. </issue>
  4114. <issue
  4115. id="SetTextI18n"
  4116. message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
  4117. errorLine1=" tvCount.text = selectCount.toString()"
  4118. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
  4119. <location
  4120. file="src/main/java/io/legado/app/ui/widget/SelectActionBar.kt"
  4121. line="81"
  4122. column="24"/>
  4123. </issue>
  4124. <issue
  4125. id="SetTextI18n"
  4126. message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
  4127. errorLine1=" tvCountAll.text = allCount.toString()"
  4128. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  4129. <location
  4130. file="src/main/java/io/legado/app/ui/widget/SelectActionBar.kt"
  4131. line="82"
  4132. column="27"/>
  4133. </issue>
  4134. <issue
  4135. id="HardcodedText"
  4136. message="Hardcoded string &quot;|&quot;, should use `@string` resource"
  4137. errorLine1=" android:text=&quot;|&quot;"
  4138. errorLine2=" ~~~~~~~~~~~~~~~~">
  4139. <location
  4140. file="src/main/res/layout-land/activity_book_info.xml"
  4141. line="325"
  4142. column="29"/>
  4143. </issue>
  4144. <issue
  4145. id="HardcodedText"
  4146. message="Hardcoded string &quot;|&quot;, should use `@string` resource"
  4147. errorLine1=" android:text=&quot;|&quot;"
  4148. errorLine2=" ~~~~~~~~~~~~~~~~">
  4149. <location
  4150. file="src/main/res/layout/activity_book_info.xml"
  4151. line="328"
  4152. column="25"/>
  4153. </issue>
  4154. <issue
  4155. id="HardcodedText"
  4156. message="Hardcoded string &quot;4/30&quot;, should use `@string` resource"
  4157. errorLine1=" android:text=&quot;4/30&quot; />"
  4158. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  4159. <location
  4160. file="src/main/res/layout/dialog_manga_footer_setting.xml"
  4161. line="194"
  4162. column="17"/>
  4163. </issue>
  4164. <issue
  4165. id="HardcodedText"
  4166. message="Hardcoded string &quot;1 / 45&quot;, should use `@string` resource"
  4167. errorLine1=" android:text=&quot;1 / 45&quot; />"
  4168. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
  4169. <location
  4170. file="src/main/res/layout/dialog_manga_footer_setting.xml"
  4171. line="217"
  4172. column="17"/>
  4173. </issue>
  4174. <issue
  4175. id="HardcodedText"
  4176. message="Hardcoded string &quot;2.1%&quot;, should use `@string` resource"
  4177. errorLine1=" android:text=&quot;2.1%&quot; />"
  4178. errorLine2=" ~~~~~~~~~~~~~~~~~~~">
  4179. <location
  4180. file="src/main/res/layout/dialog_manga_footer_setting.xml"
  4181. line="233"
  4182. column="17"/>
  4183. </issue>
  4184. <issue
  4185. id="HardcodedText"
  4186. message="Hardcoded string &quot;variable&quot;, should use `@string` resource"
  4187. errorLine1=" android:hint=&quot;variable&quot;"
  4188. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
  4189. <location
  4190. file="src/main/res/layout/dialog_variable.xml"
  4191. line="33"
  4192. column="17"/>
  4193. </issue>
  4194. <issue
  4195. id="RtlSymmetry"
  4196. message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
  4197. errorLine1=" android:paddingStart=&quot;16dp&quot;"
  4198. errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
  4199. <location
  4200. file="src/main/res/layout/preference_theme_card.xml"
  4201. line="12"
  4202. column="9"/>
  4203. </issue>
  4204. <issue
  4205. id="RtlHardcoded"
  4206. message="Use &quot;`Gravity.START`&quot; instead of &quot;`Gravity.LEFT`&quot; to ensure correct behavior in right-to-left locales"
  4207. errorLine1=" Gravity.BOTTOM or Gravity.LEFT,"
  4208. errorLine2=" ~~~~">
  4209. <location
  4210. file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
  4211. line="572"
  4212. column="39"/>
  4213. </issue>
  4214. <issue
  4215. id="RtlHardcoded"
  4216. message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd=&quot;60dp&quot;` to better support right-to-left layouts"
  4217. errorLine1=" android:layout_marginRight=&quot;60dp&quot;"
  4218. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4219. <location
  4220. file="src/main/res/layout/dialog_progressbar_view.xml"
  4221. line="15"
  4222. column="9"/>
  4223. </issue>
  4224. <issue
  4225. id="RtlHardcoded"
  4226. message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd=&quot;20dp&quot;` to better support right-to-left layouts"
  4227. errorLine1=" android:layout_marginRight=&quot;20dp&quot;"
  4228. errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
  4229. <location
  4230. file="src/main/res/layout/dialog_progressbar_view.xml"
  4231. line="22"
  4232. column="9"/>
  4233. </issue>
  4234. </issues>