| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660 |
- <?xml version="1.0" encoding="UTF-8"?>
- <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">
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugViewModel.kt"
- line="149"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt"
- line="155"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/changecover/ChangeCoverViewModel.kt"
- line="181"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/dict/DictViewModel.kt"
- line="145"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/HomepageViewModel.kt"
- line="383"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/import/local/ImportBookViewModel.kt"
- line="850"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt"
- line="2471"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/manga/ReadMangaViewModel.kt"
- line="424"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/rss/read/ReadRssViewModel.kt"
- line="374"
- column="15"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" override fun onCleared() { session?.cancel(); session = null; super.onCleared() }"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugViewModel.kt"
- line="99"
- column="73"/>
- </issue>
- <issue
- id="EmptySuperCall"
- message="No need to call `super.onCleared`; the super method is defined to be empty"
- errorLine1=" super.onCleared()"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt"
- line="345"
- column="15"/>
- </issue>
- <issue
- id="InconsistentArrays"
- message="Array `screen_direction_title` has an inconsistent number of items (6 in `values/arrays.xml`, 5 in `values-zh-rTW/arrays.xml`)"
- errorLine1=" <string-array name="screen_direction_title">"
- errorLine2=" ^">
- <location
- file="src/main/res/values/arrays.xml"
- line="121"
- column="2"
- message="Declaration with array size (6)"/>
- <location
- file="src/main/res/values-zh-rTW/arrays.xml"
- line="50"
- column="5"
- message="Declaration with array size (5)"/>
- </issue>
- <issue
- id="CheckResult"
- message="The result of `apply` is not used"
- errorLine1=" apply("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/PhotoSheet.kt"
- line="66"
- column="37"/>
- </issue>
- <issue
- id="CustomViewStyleable"
- message="By convention, the custom view (`SimpleCounterView`) and the declare-styleable (`DetailSeekBar`) should have the same name (various editor features rely on this convention)"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/SimpleCounterView.kt"
- line="68"
- column="64"/>
- </issue>
- <issue
- id="CustomViewStyleable"
- message="By convention, the custom view (`SimpleSliderView`) and the declare-styleable (`DetailSeekBar`) should have the same name (various editor features rely on this convention)"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/SimpleSliderView.kt"
- line="66"
- column="64"/>
- </issue>
- <issue
- id="CustomViewStyleable"
- message="By convention, the custom view (`SimpleSliderView`) and the declare-styleable (`SimpleCounterView`) should have the same name (various editor features rely on this convention)"
- errorLine1=" val ta = context.obtainStyledAttributes(attrs, R.styleable.SimpleCounterView)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/SimpleSliderView.kt"
- line="74"
- column="56"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" this.type = StringUtil.isNotBlank(type) ? type.toLowerCase() : null;"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/domain/GuideReference.java"
- line="90"
- column="56"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.1f dp", underlineWidth),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="396"
- column="39"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.1f dp", underlineOffset),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="404"
- column="39"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.1fx", bgImageScale),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="475"
- column="39"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.0f%%", left * 100),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="863"
- column="31"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.0f%%", right * 100),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="870"
- column="31"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.0f%%", top * 100),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="877"
- column="31"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" description = String.format("%.0f%%", bottom * 100),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/HighlightRuleEditSheet.kt"
- line="884"
- column="31"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" value = String.format("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/ui/main/home/HomeScreen.kt"
- line="679"
- column="33"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" .getByIdOrHref(possibleNcxItemId.toUpperCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java"
- line="412"
- column="58"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" + Constants.DEFAULT_TOC_ID.toUpperCase()"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java"
- line="424"
- column="56"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" String.format("%.1f万字", words / 10000f)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordFormatter.kt"
- line="11"
- column="13"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" tvCount.text = String.format("%.1f%%", item.progressPercent)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt"
- line="43"
- column="36"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" tvCount.text = String.format("%.1f%%", item.progressPercent)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt"
- line="43"
- column="36"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" text = String.format("%.1f%%", result.progressPercent),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/searchContent/SearchContentScreen.kt"
- line="487"
- column="32"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" .toLowerCase().endsWith(suffix.toLowerCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
- line="111"
- column="18"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" .toLowerCase().endsWith(suffix.toLowerCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
- line="111"
- column="48"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" .toLowerCase().startsWith(prefix.toLowerCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
- line="125"
- column="18"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" .toLowerCase().startsWith(prefix.toLowerCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/util/StringUtil.java"
- line="125"
- column="50"/>
- </issue>
- <issue
- id="DefaultLocale"
- message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
- errorLine1=" else -> String.format("%.1f MB", bytes / (1024.0 * 1024.0))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
- line="229"
- column="25"/>
- </issue>
- <issue
- id="DefaultLocale"
- 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()`."
- errorLine1=" sb.append(sTmp.toUpperCase());"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/umdlib/tool/UmdUtils.java"
- line="64"
- column="28"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `BgEffectPainter`"
- errorLine1=" val painter = remember(isOs3Effect) { BgEffectPainter(isOs3Effect) }"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectBackground.kt"
- line="44"
- column="47"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updateResolution`"
- errorLine1=" painter.updateResolution(size.width, size.height)"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="157"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updateBoundIfNeeded`"
- errorLine1=" painter.updateBoundIfNeeded(drawHeight, size.height, size.width)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="158"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updatePresetIfNeeded`"
- errorLine1=" painter.updatePresetIfNeeded(preset)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="159"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updateColors`"
- errorLine1=" painter.updateColors(preset, colorStage())"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="160"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updateAnimTime`"
- errorLine1=" painter.updateAnimTime(animTime)"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="161"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Call requires API level 33 (current min is 26): `updatePointsAnim`"
- errorLine1=" painter.updatePointsAnim(animTime, preset)"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="162"
- column="25"/>
- </issue>
- <issue
- id="NewApi"
- message="Field requires API level 33 (current min is 26): `getBrush`"
- errorLine1=" drawRect(painter.brush, alpha = alphaValue)"
- errorLine2=" ~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="164"
- column="34"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" val text = item.text().trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
- line="243"
- column="49"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" val rus = rule.trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
- line="408"
- column="33"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" ruleStr.substring(5).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt"
- line="518"
- column="39"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" tmp = ruleStr.substring(start, jsMatcher.start()).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
- line="548"
- column="72"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" tmp = ruleStr.substring(start, webJsMatcher.start()).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
- line="560"
- column="75"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" tmp = ruleStr.substring(start).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt"
- line="570"
- column="49"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" ruleUrl.replace(matcher.group(), pages[page - 1].trim { it <= ' ' })"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt"
- line="211"
- column="75"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" ruleUrl.replace(matcher.group(), pages.last().trim { it <= ' ' })"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt"
- line="213"
- column="72"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" .trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/book/BookHelp.kt"
- line="819"
- column="19"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" .trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/book/BookHelp.kt"
- line="828"
- column="19"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" if (chapterName.trim { it <= ' ' } != p[0].trim { it <= ' ' }) {"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/book/ContentHelp.kt"
- line="30"
- column="30"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" if (chapterName.trim { it <= ' ' } != p[0].trim { it <= ' ' }) {"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/book/ContentHelp.kt"
- line="30"
- column="57"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" val key = pairs[0].trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/CookieStore.kt"
- line="98"
- column="37"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" if (value.isNotBlank() || value.trim { it <= ' ' } == "null") {"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/CookieStore.kt"
- line="100"
- column="50"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" cookieMap[key] = value.trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/CookieStore.kt"
- line="101"
- column="45"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" return String(data, Charset.forName(charset)).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/FileUtils.kt"
- line="456"
- column="68"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" val text = StringUtil.releaseBuilder(sb).trim { it <= ' ' }"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/JsoupExtensions.kt"
- line="37"
- column="51"/>
- </issue>
- <issue
- id="TrimLambda"
- message="The lambda argument (`{ it <= ' ' }`) is unnecessary"
- errorLine1=" result.append("\n").append(url.trim { it <= ' ' })"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/receiver/SharedReceiverActivity.kt"
- line="51"
- column="53"/>
- </issue>
- <issue
- id="UnusedAttribute"
- message="Attribute `screenReaderFocusable` is only used in API level 28 and higher (current min is 26)"
- errorLine1=" android:screenReaderFocusable="true">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_theme_card.xml"
- line="23"
- column="9"/>
- </issue>
- <issue
- id="UnusedAttribute"
- message="Attribute `screenReaderFocusable` is only used in API level 28 and higher (current min is 26)"
- errorLine1=" android:screenReaderFocusable="true">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/view_preference.xml"
- line="15"
- column="5"/>
- </issue>
- <issue
- id="WrongConstant"
- message="Must be one of: BookType.text, BookType.updateError, BookType.audio, BookType.image, BookType.webFile, BookType.local, BookType.archive, BookType.notShelf"
- errorLine1=" get() = isType(BookType.video)"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/book/BookExtensions.kt"
- line="54"
- column="20"/>
- </issue>
- <issue
- id="WrongConstant"
- message="Flag not allowed here"
- errorLine1=" const val allBookType = text or image or audio or webFile"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/constant/BookType.kt"
- line="65"
- column="29"/>
- </issue>
- <issue
- id="WrongConstant"
- message="Must be one of: RecyclerView.HORIZONTAL, RecyclerView.VERTICAL"
- errorLine1=" return LinearLayoutManager(recyclerView.context, orientation, reverseLayout)"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/LayoutManager.kt"
- line="32"
- column="66"/>
- </issue>
- <issue
- id="WrongConstant"
- message="Must be one of: RecyclerView.HORIZONTAL, RecyclerView.VERTICAL"
- errorLine1=" orientation,"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/LayoutManager.kt"
- line="57"
- column="21"/>
- </issue>
- <issue
- id="WrongConstant"
- message="Must be one or more of: InputMethodManager.SHOW_IMPLICIT, InputMethodManager.SHOW_FORCED"
- errorLine1=" inputMethodManager.showSoftInput(this, InputMethodManager.RESULT_SHOWN)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ViewExtensions.kt"
- line="72"
- column="44"/>
- </issue>
- <issue
- id="AppCompatResource"
- message="Should use `app:showAsAction` with the appcompat library with `xmlns:app="http://schemas.android.com/apk/res-auto"`"
- errorLine1=" android:showAsAction="always""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/menu/main_my.xml"
- line="8"
- column="9"/>
- </issue>
- <issue
- id="AndroidGradlePluginVersion"
- message="A newer version of com.android.application than 9.2.1 is available: 9.3.1"
- errorLine1="agp = "9.2.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="21"
- column="7"/>
- </issue>
- <issue
- id="AndroidGradlePluginVersion"
- message="A newer version of com.android.library than 9.2.1 is available: 9.3.1"
- errorLine1="agp = "9.2.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="21"
- column="7"/>
- </issue>
- <issue
- id="AndroidGradlePluginVersion"
- message="A newer version of com.android.test than 9.2.1 is available: 9.3.1"
- errorLine1="agp = "9.2.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="21"
- column="7"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of org.jetbrains.kotlin:kotlin-stdlib than 2.4.0 is available: 2.4.10"
- errorLine1="kotlin = "2.4.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="15"
- column="10"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of com.google.devtools.ksp than 2.3.6 is available: 2.3.10"
- errorLine1="ksp = "2.3.6""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="20"
- column="7"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of com.google.firebase:firebase-bom than 34.6.0 is available: 34.16.0"
- errorLine1="firebaseBom = "34.6.0""
- errorLine2=" ~~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="28"
- column="15"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of androidx.compose.material3:material3 than 1.5.0-alpha23 is available: 1.5.0-alpha24"
- errorLine1="material3 = "1.5.0-alpha23""
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="56"
- column="13"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of androidx.media3:media3-datasource-okhttp than 1.8.0 is available: 1.10.1"
- errorLine1="media3 = "1.8.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="60"
- column="10"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of androidx.media3:media3-exoplayer than 1.8.0 is available: 1.10.1"
- errorLine1="media3 = "1.8.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="60"
- column="10"/>
- </issue>
- <issue
- id="GradleDependency"
- message="A newer version of com.google.gms.google-services than 4.4.4 is available: 4.5.0"
- errorLine1="google-services = { id = "com.google.gms.google-services", version = "4.4.4" }"
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="270"
- column="70"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.jetbrains.kotlin.plugin.compose than 2.4.0 is available: 2.4.10"
- errorLine1="kotlin = "2.4.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="15"
- column="10"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.jetbrains.kotlin.plugin.parcelize than 2.4.0 is available: 2.4.10"
- errorLine1="kotlin = "2.4.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="15"
- column="10"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.jetbrains.kotlin.plugin.serialization than 2.4.0 is available: 2.4.10"
- errorLine1="kotlin = "2.4.0""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="15"
- column="10"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of cn.hutool:hutool-crypto than 5.8.22 is available: 5.8.47"
- errorLine1="hutool = "5.8.22""
- errorLine2=" ~~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="33"
- column="10"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.github.bumptech.glide:glide than 5.0.7 is available: 5.0.9"
- errorLine1="glide = "5.0.7""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="37"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.github.bumptech.glide:ksp than 5.0.7 is available: 5.0.9"
- errorLine1="glide = "5.0.7""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="37"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.github.bumptech.glide:okhttp3-integration than 5.0.7 is available: 5.0.9"
- errorLine1="glide = "5.0.7""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="37"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.github.bumptech.glide:recyclerview-integration than 5.0.7 is available: 5.0.9"
- errorLine1="glide = "5.0.7""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="37"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.jetbrains:markdown-jvm than 0.7.3 is available: 0.7.8"
- errorLine1="intellijMarkdown = "0.7.3""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="43"
- column="20"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.jsoup:jsoup than 1.16.2 is available: 1.22.2"
- errorLine1="jsoup = "1.16.2""
- errorLine2=" ~~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="44"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.materialkolor:material-kolor than 4.1.1 is available: 5.0.0"
- errorLine1="materialKolor = "4.1.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="58"
- column="17"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.google.protobuf:protobuf-javalite than 4.26.1 is available: 4.35.1"
- errorLine1="protobufJavalite = "4.26.1""
- errorLine2=" ~~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="65"
- column="20"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of org.mozilla:rhino than 1.8.1 is available: 1.9.1"
- errorLine1="rhino = "1.8.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="70"
- column="9"/>
- </issue>
- <issue
- id="NewerVersionAvailable"
- message="A newer version of com.github.jenly1314:zxing-lite than 3.4.1 is available: 3.5.0"
- errorLine1="zxingLite = "3.4.1""
- errorLine2=" ~~~~~~~">
- <location
- file="../gradle/libs.versions.toml"
- line="85"
- column="13"/>
- </issue>
- <issue
- id="RestrictedApi"
- message="NavigationMenuView can only be accessed from within the same library group (referenced groupId=`com.google.android.material` from groupId=`legado`)"
- errorLine1=" val navigationMenuView = getChildAt(0) as? NavigationMenuView"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/NavigationViewUtils.kt"
- line="39"
- column="48"/>
- </issue>
- <issue
- id="SourceLockedOrientationActivity"
- message="You should not lock orientation of your activities, so that you can support a good user experience for any device or orientation"
- errorLine1=" "1" -> activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
- line="1572"
- column="20"/>
- </issue>
- <issue
- id="SourceLockedOrientationActivity"
- message="You should not lock orientation of your activities, so that you can support a good user experience for any device or orientation"
- errorLine1=" "4" -> activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
- line="1575"
- column="20"/>
- </issue>
- <issue
- id="ConfigurationScreenWidthHeight"
- message="Using Configuration.screenWidthDp instead of LocalWindowInfo.current.containerSize"
- errorLine1=" val requestWidth = with(density) { configuration.screenWidthDp.dp.roundToPx() }"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/AppContainerBackground.kt"
- line="70"
- column="40"/>
- </issue>
- <issue
- id="ConfigurationScreenWidthHeight"
- message="Using Configuration.screenHeightDp instead of LocalWindowInfo.current.containerSize"
- errorLine1=" val requestHeight = with(density) { configuration.screenHeightDp.dp.roundToPx() }"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/AppContainerBackground.kt"
- line="71"
- column="41"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" Toast.makeText(context, context.getString(R.string.export_started), Toast.LENGTH_SHORT).show()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkScreen.kt"
- line="100"
- column="37"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.getString(effect.messageRes, it)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigScreen.kt"
- line="124"
- column="25"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" } ?: context.getString(effect.messageRes)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigScreen.kt"
- line="125"
- column="26"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.toastOnUi(context.getString(effect.messageRes))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/changeSource/ChangeSourceSheet.kt"
- line="137"
- column="39"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" append(context.getString(effect.messageRes))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/home/HomeScreen.kt"
- line="301"
- column="32"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" it.localizedMessage ?: context.getString(R.string.save_failed)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/MainNavGraph.kt"
- line="817"
- column="52"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" if (success) context.getString(R.string.save_success)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/PhotoSheet.kt"
- line="92"
- column="46"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.getString(R.string.no_merge_candidates)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
- line="400"
- column="49"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" snackbarHostState.showSnackbar(context.getString(R.string.drag_disabled_in_sort_mode))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/replace/ReplaceRuleScreen.kt"
- line="410"
- column="56"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" snackbarHostState.showSnackbar(context.getString(R.string.drag_disabled_in_sort_mode))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/replace/ReplaceRuleScreen.kt"
- line="420"
- column="56"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.getString(R.string.font_scale_summary, it / 10f)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt"
- line="295"
- column="29"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.getString(R.string.theme_manage_migrate_success, effect.migratedCount)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
- line="72"
- column="25"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" context.getString("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
- line="74"
- column="25"/>
- </issue>
- <issue
- id="LocalContextGetResourceValueCall"
- message="Querying resource values using LocalContext.current"
- errorLine1=" append(context.getString(effect.messageRes))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageRouteScreen.kt"
- line="84"
- column="32"/>
- </issue>
- <issue
- id="ModifierFactoryExtensionFunction"
- message="Modifier factory functions should be extensions on Modifier"
- errorLine1="private fun swipeActionsSemantics("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/swipe/SwipeActionContainer.kt"
- line="122"
- column="13"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/ai/chat/AiThinkingCard.kt"
- line="53"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/alert/AppAlertDialog.kt"
- line="158"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/BannerModule.kt"
- line="42"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt"
- line="323"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt"
- line="445"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/CardModule.kt"
- line="49"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier.width(64.dp),"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt"
- line="200"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Optional Modifier parameter should have a default value of `Modifier`"
- errorLine1=" modifier: Modifier = Modifier.width(64.dp),"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/image/cover/CoilBookCover.kt"
- line="200"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt"
- line="52"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt"
- line="481"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt"
- line="505"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be named modifier"
- errorLine1=" dragHandleModifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/FloatingBarIconConfigSheet.kt"
- line="191"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/GridModule.kt"
- line="25"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/GridRankingModule.kt"
- line="50"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/heatmap/HeatmapCalendarComponents.kt"
- line="137"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleFeed.kt"
- line="563"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/knowledge/KnowledgeSharedComponents.kt"
- line="44"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/RankingModule.kt"
- line="53"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be named modifier"
- errorLine1=" flowingTextModifier: Modifier,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/player/ReadAloudPlayerScreen.kt"
- line="503"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be named modifier"
- errorLine1=" flowingTextModifier: Modifier,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/player/ReadAloudPlayerScreen.kt"
- line="597"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
- line="1263"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
- line="1298"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookMenuBar.kt"
- line="2614"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/component/ReadRecordListItems.kt"
- line="195"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
- line="1009"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
- line="1101"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
- line="1230"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/ReadStyleSheet.kt"
- line="53"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/menuItem/RoundDropdownMenuItem.kt"
- line="48"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt"
- line="100"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/book/SearchBookItem.kt"
- line="53"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/book/SearchBookItem.kt"
- line="199"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/search/SearchSourceSection.kt"
- line="45"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Optional Modifier parameter should have a default value of `Modifier`"
- errorLine1=" modifier: Modifier = Modifier.size(32.dp),"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/image/sourceIcon/SourceIcon.kt"
- line="40"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be named modifier"
- errorLine1=" dragHandleModifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/TextSelectMenuConfigSheet.kt"
- line="328"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be named modifier"
- errorLine1=" dragHandleModifier: Modifier = Modifier"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/TextSelectMenuConfigSheet.kt"
- line="403"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="78"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="201"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="262"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="329"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="361"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="392"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="431"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="562"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/settingItem/TinySettingItems.kt"
- line="654"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/TypographyPage.kt"
- line="57"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/TypographyTabs.kt"
- line="419"
- column="5"/>
- </issue>
- <issue
- id="ModifierParameter"
- message="Modifier parameter should be the first optional parameter"
- errorLine1=" modifier: Modifier = Modifier,"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/modules/WaterfallModule.kt"
- line="45"
- column="5"/>
- </issue>
- <issue
- id="MutableCollectionMutableState"
- message="Creating a MutableState object with a mutable collection type"
- errorLine1=" mutableStateOf(hashMapOf<String, String>())"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleFeed.kt"
- line="105"
- column="13"/>
- </issue>
- <issue
- id="UnusedContentLambdaTargetStateParameter"
- message="Target state parameter `_` is not used"
- errorLine1=" ) { _ ->"
- errorLine2=" ~">
- <location
- file="src/main/java/io/legado/app/ui/main/homepage/HomepageModuleManageSheet.kt"
- line="251"
- column="13"/>
- </issue>
- <issue
- id="DiscouragedApi"
- 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("bar", "foo", null)`)."
- errorLine1=" .getIdentifier(iconName.toString(), "mipmap", context.packageName)"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/prefs/IconListPreference.kt"
- line="44"
- column="18"/>
- </issue>
- <issue
- id="DiscouragedApi"
- 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("bar", "foo", null)`)."
- errorLine1=" val resId = context.resources.getIdentifier(it[index].toString(), "mipmap", context.packageName)"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/prefs/IconListPreference.kt"
- line="168"
- column="55"/>
- </issue>
- <issue
- id="UseCompatLoadingForDrawables"
- message="Use `ResourcesCompat.getDrawable()`"
- errorLine1=" ?: return appCtx.resources.getDrawable(R.drawable.image_cover_default, null)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/BookCover.kt"
- line="87"
- column="23"/>
- </issue>
- <issue
- id="UseCompatLoadingForDrawables"
- message="Use `ResourcesCompat.getDrawable()`"
- errorLine1=" }.getOrDefault(appCtx.resources.getDrawable(R.drawable.image_cover_default, null))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/BookCover.kt"
- line="96"
- column="28"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(stackTrace[3].className, message, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/constant/AppLog.kt"
- line="33"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(stackTrace[3].className, message, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/constant/AppLog.kt"
- line="49"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.d("sourceDebug", msg)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/Debug.kt"
- line="47"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(tag, throwable.stackTraceToString())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="10"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(tag, msg)"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="17"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(tag, msg, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="19"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.d(tag, msg)"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="27"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.d(tag, msg, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="29"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i(tag, msg)"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="37"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i(tag, msg, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="39"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.w(tag, msg)"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="47"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.w(tag, msg, throwable)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DebugLog.kt"
- line="49"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i(LOG_TAG, "[session=$sessionId] FIXTURE_READY fixture=$fixtureId entry=$entry")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
- line="67"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i(LOG_TAG, "[session=$sessionId] PREFERENCES_APPLIED ${applied.keys}")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
- line="211"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(LOG_TAG, "[session=$sessionId] FIXTURE_ERROR $message", error)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/debug/java/io/legado/app/debug/DebugScenarioActivity.kt"
- line="216"
- column="9"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.e(LOG_TAG, "INJECTED_THEME_ASSET_OPEN uri=$uri mode=$mode", error)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/debug/java/io/legado/app/debug/DebugThemeAssetProvider.kt"
- line="19"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i(LOG_TAG, "INJECTED_THEME_ASSET_FAILURE_ARMED")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/debug/java/io/legado/app/debug/DebugThemeAssetProvider.kt"
- line="35"
- column="13"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i("LegadoDebug", "READER_PAGE " + text.replace("\n", " "))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
- line="629"
- column="17"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i("LegadoDebug", "READER_PAGE_PLACEHOLDER_FRAME")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
- line="633"
- column="21"/>
- </issue>
- <issue
- id="LogNotTimber"
- message="Using 'Log' instead of 'Timber'"
- errorLine1=" Log.i("ReaderFirstFrame", "renderer=legacy durationMs=$durationMillis")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReaderFirstFrame.kt"
- line="23"
- column="9"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="all_chapter_num">%d chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="208"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapter"): This should probably be a plural rather than a string"
- errorLine1=" <string name="un_download">%d chapter(s) left</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="358"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("sources"): This should probably be a plural rather than a string"
- errorLine1=" <string name="search_book_source_num">Search( %d sources in total)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="373"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Bottom"): This should probably be a plural rather than a string"
- errorLine1=" <string name="padding_format">Top: %1$d Bottom: %2$d Left: %3$d Right: %4$d</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="388"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("items"): This should probably be a plural rather than a string"
- errorLine1=" <string name="nb_file_sub_count">%1$d items</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="403"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="book_count">%1$d books</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="404"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="nb_file_add_succeed">%1$d books added successfully</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="408"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("images"): This should probably be a plural rather than a string"
- errorLine1=" <string name="cover_selected_images_count">%1$d images selected</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1249"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Chapter"): This should probably be a plural rather than a string"
- errorLine1=" <string name="book_reader_info_bar">Page. %1$d/%2$d Chapter. %3$d/%4$d -> %5$s%%</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1513"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("legacy"): This should probably be a plural rather than a string"
- errorLine1=" <string name="theme_manage_migrate_success">Migrated %1$d legacy themes</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1553"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("themes"): This should probably be a plural rather than a string"
- errorLine1=" <string name="theme_manage_migrate_partial">Migrated %1$d themes; %2$d could not be migrated</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1554"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("custom"): This should probably be a plural rather than a string"
- errorLine1=" <string name="theme_config_nav_icons_custom_count">%1$d custom icons set</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1607"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_chapter_total">Total %d Chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1615"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_chapter_index">Read %d Chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1616"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="chapter_count_format">%d chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1671"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("bookmarks"): This should probably be a plural rather than a string"
- errorLine1=" <string name="bookmarks_added_count">%1$d bookmarks added</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1688"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="start_downloading_chapters">Downloading %1$d chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1689"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="start_downloading_remaining_chapters">Downloading remaining %1$d chapters</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1692"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Not"): This should probably be a plural rather than a string"
- errorLine1=" <string name="author_read">%1$s • %2$d Not read</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1721"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("Books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="refresh_limit_books">%1$d Books</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1753"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="bookshelf_total_count">%1$d books</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1875"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("selected"): This should probably be a plural rather than a string"
- errorLine1=" <string name="bookshelf_selected_count">%1$d selected</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1876"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("related"): This should probably be a plural rather than a string"
- errorLine1=" <string name="ai_rewrite_reference_used">Referenced %1$d related excerpt(s) from cached or local chapters.</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2002"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("more"): This should probably be a plural rather than a string"
- errorLine1=" <string name="ai_thinking_show_more">Show %d more steps</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2053"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("models"): This should probably be a plural rather than a string"
- errorLine1=" <string name="ai_test_success_with_models">AI connection test succeeded (%1$d models found)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2113"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("modules"): This should probably be a plural rather than a string"
- errorLine1=" <string name="homepage_n_modules">%1$d modules</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2139"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("selected"): This should probably be a plural rather than a string"
- errorLine1=" <string name="homepage_n_selected">%1$d selected</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2154"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("custom"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_menu_custom_icons_count">%1$d custom icons</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2213"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("records"): This should probably be a plural rather than a string"
- errorLine1=" <string name="lab_page_estimate_diagnostics_count">%1$d records</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2257"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("lines"): This should probably be a plural rather than a string"
- errorLine1=" <string name="show_lines_synopsis">Show %1$d lines of synopsis</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2342"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("minutes"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_aloud_timer_format">Read aloud timer: %1$d minutes</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2406"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("percent"): This should probably be a plural rather than a string"
- errorLine1=" <string name="a11y_percent_value">%1$d percent</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2477"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("selected"): This should probably be a plural rather than a string"
- errorLine1=" <string name="selected_count">%1$d selected</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2519"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("selected"): This should probably be a plural rather than a string"
- errorLine1=" <string name="delete_selected_read_records_message">Delete %1$d selected reading records?</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2523"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("reading"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_record_date_overview">%1$d/%2$d reading overview</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2536"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="a11y_reading_summary_card">%1$s, %2$d books, %3$s total. Open overview</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2543"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("hours"): This should probably be a plural rather than a string"
- errorLine1=" <string name="whole_hours_format">%1$d hours</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2547"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("days"): This should probably be a plural rather than a string"
- errorLine1=" <string name="days_format">%1$d days</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2562"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("books"): This should probably be a plural rather than a string"
- errorLine1=" <string name="books_format">%1$d books</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2563"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("readings"): This should probably be a plural rather than a string"
- errorLine1=" <string name="a11y_heatmap_day_count">%1$s, %2$d readings</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2567"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chapters"): This should probably be a plural rather than a string"
- errorLine1=" <string name="cache_progress_description">%1$d of %2$d chapters cached, %3$d percent</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2576"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("percent"): This should probably be a plural rather than a string"
- errorLine1=" <string name="cache_chapter_progress_description">Chapter download %1$d percent</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2583"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("chars"): This should probably be a plural rather than a string"
- errorLine1=" <string name="read_aloud_position_chars">%1$d chars</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2736"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("voices"): This should probably be a plural rather than a string"
- errorLine1=" <string name="cloud_tts_voice_count">Loaded %1$d voices</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2827"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("files"): This should probably be a plural rather than a string"
- errorLine1=" <string name="tts_cache_file_count">%d files</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2857"
- column="5"/>
- </issue>
- <issue
- id="PluralsCandidate"
- message="Formatting %d followed by words ("threads"): This should probably be a plural rather than a string"
- errorLine1=" <string name="tts_pre_synthesis_concurrency_summary">%d threads</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="2863"
- column="5"/>
- </issue>
- <issue
- id="StringFormatCount"
- message="Inconsistent number of arguments in formatting string `translation_in_progress`; found both 2 here and 1 in values/strings.xml"
- errorLine1=" <string name="translation_in_progress">翻译中: %1$d/%2$d</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rCN/strings.xml"
- line="1976"
- column="5"/>
- <location
- file="src/main/res/values/strings.xml"
- line="1920"
- column="5"
- message="Conflicting number of arguments (1) here"/>
- </issue>
- <issue
- id="ExportedContentProvider"
- message="Exported content providers can provide access to potentially sensitive data"
- errorLine1=" <provider"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/debug/AndroidManifest.xml"
- line="8"
- column="10"/>
- </issue>
- <issue
- id="ExportedContentProvider"
- message="Exported content providers can provide access to potentially sensitive data"
- errorLine1=" <provider"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/debug/AndroidManifest.xml"
- line="12"
- column="10"/>
- </issue>
- <issue
- id="WebViewClientOnReceivedSslError"
- 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()`."
- errorLine1=" handler?.proceed()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/rss/read/RssReadWebController.kt"
- line="275"
- column="13"/>
- </issue>
- <issue
- id="WebViewClientOnReceivedSslError"
- 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()`."
- errorLine1=" handler?.proceed()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/rss/read/RssReadWebController.kt"
- line="275"
- column="13"/>
- </issue>
- <issue
- id="DrawAllocation"
- message="Avoid object allocations during draw/layout operations (preallocate and reuse instead)"
- errorLine1=" val paint = Paint().apply { this.alpha = alpha }"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/FadePageDelegate.kt"
- line="110"
- column="21"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/me/ag2s/epublib/util/commons/io/BOMInputStream.java"
- line="161"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" isRedirect = isRedirect || if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/BackstageWebView.kt"
- line="188"
- column="44"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" private val atLeastApi24 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderFactory.kt"
- line="8"
- column="32"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 24"
- errorLine1=" @RequiresApi(Build.VERSION_CODES.N)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/ObsoleteUrlFactory.kt"
- line="799"
- column="9"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 24"
- errorLine1=" @RequiresApi(Build.VERSION_CODES.N)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/http/ObsoleteUrlFactory.kt"
- line="849"
- column="9"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/com/script/rhino/RhinoClassShutter.kt"
- line="138"
- column="17"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/com/script/rhino/RhinoClassShutter.kt"
- line="158"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="304"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="362"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="399"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="470"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 26"
- errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="501"
- column="13"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="Unnecessary; `SDK_INT` is always >= 24"
- errorLine1="@RequiresApi(Build.VERSION_CODES.N)"
- errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/service/WebTileService.kt"
- line="19"
- column="1"/>
- </issue>
- <issue
- id="ObsoleteSdkInt"
- message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 26. Merge all the resources in this folder into `mipmap-anydpi`.">
- <location
- file="src/main/res/mipmap-anydpi-v26"/>
- </issue>
- <issue
- id="StaticFieldLeak"
- message="This field leaks a context object"
- errorLine1=" private val context: Context,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/coverConfig/CoverAlbumManageViewModel.kt"
- line="23"
- column="5"/>
- </issue>
- <issue
- id="UseCompoundDrawables"
- message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
- errorLine1="<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android""
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_path_picker.xml"
- line="2"
- column="2"/>
- </issue>
- <issue
- id="UseCompoundDrawables"
- message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
- errorLine1=" <LinearLayout"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/view_preference_tip.xml"
- line="10"
- column="6"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" val layoutInfo = listState.layoutInfo"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="84"
- column="40"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" listState.layoutInfo.afterContentPadding"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="109"
- column="31"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" listState.layoutInfo.beforeContentPadding -"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="113"
- column="31"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" listState.layoutInfo.afterContentPadding -"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="114"
- column="31"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" val layoutInfo = state.layoutInfo"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="301"
- column="36"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" state.layoutInfo.afterContentPadding"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="322"
- column="27"/>
- </issue>
- <issue
- id="FrequentlyChangingValue"
- message="Reading a value annotated with @FrequentlyChangingValue inside composition"
- errorLine1=" LaunchedEffect(state.firstVisibleItemScrollOffset) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/lazylist/VerticalFastScroller.kt"
- line="349"
- column="34"/>
- </issue>
- <issue
- id="VectorPath"
- message="Very long vector path (6019 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
- errorLine1=" android:pathData="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""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/drawable/ic_launcher3.xml"
- line="7"
- column="27"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableFloatStateOf` instead of `mutableStateOf`"
- errorLine1=" var elapsedSeconds by mutableStateOf(0f)"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/ai/chat/AiReasoningCard.kt"
- line="69"
- column="27"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
- errorLine1=" var liveSeconds by remember { mutableStateOf(0) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/ai/chat/AiThinkingCard.kt"
- line="67"
- column="35"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableLongStateOf` instead of `mutableStateOf`"
- errorLine1=" var selectedGroupId by remember { mutableStateOf(BookGroup.IdAll) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/cache/manage/BookCacheManageScreen.kt"
- line="113"
- column="39"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
- errorLine1=" var previousSize by remember { mutableStateOf(configList.size) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/GlobalThemePage.kt"
- line="275"
- column="48"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
- errorLine1=" var removeTagIndex by remember { mutableStateOf(-1) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/knowledge/KnowledgeSharedComponents.kt"
- line="112"
- column="38"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
- errorLine1=" var pendingDeleteCount by remember { mutableStateOf(1) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readRecord/ReadRecordScreen.kt"
- line="175"
- column="42"/>
- </issue>
- <issue
- id="AutoboxingStateCreation"
- message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
- errorLine1=" var underlineColor by remember(show, config.underlineColor) { mutableStateOf(config.underlineColor) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/sheet/UnderlineConfigSheet.kt"
- line="43"
- column="67"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `@color/transparent50` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="@color/transparent50">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/activity_source_login.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `@color/transparent50` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="@color/transparent50">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/activity_translucence.xml"
- line="6"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `@color/translucent` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="@color/translucent""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_click_action_config.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_1line_text.xml"
- line="9"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_1line_text_and_del.xml"
- line="5"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_app_log.xml"
- line="6"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- 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`)"
- errorLine1=" android:background="@color/book_ant_10">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_book_manga_edge.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- 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`)"
- errorLine1=" android:background="@color/book_ant_10""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_book_manga_page.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_book_source.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_bookmark.xml"
- line="10"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_dict_rule.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_download.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground">"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_find_book.xml"
- line="15"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_http_tts.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_import_book.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_rss_read_record.xml"
- line="6"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_rss_source.xml"
- line="6"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_rule_sub.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_search_history.xml"
- line="8"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_source_import.xml"
- line="6"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_text.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_toc_regex.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/item_txt_toc_rule.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="?attr/selectableItemBackground""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/view_preference.xml"
- line="5"
- column="5"/>
- </issue>
- <issue
- id="Overdraw"
- message="Possible overdraw: Root element paints background `@color/transparent` with a theme that also paints a background (inferred theme is `@style/Base.AppTheme`)"
- errorLine1=" android:background="@color/transparent"/>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/view_tab_layout.xml"
- line="7"
- column="5"/>
- </issue>
- <issue
- id="NotShrinkingResources"
- message="Avoid setting isShrinkResources = false"
- errorLine1=" isShrinkResources = false"
- errorLine2=" ~~~~~">
- <location
- file="build.gradle.kts"
- line="102"
- column="33"/>
- </issue>
- <issue
- id="UselessLeaf"
- message="This `LinearLayout` view is unnecessary (no children, no `background`, no `id`, no `style`)"
- errorLine1=" <LinearLayout"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_font_config.xml"
- line="149"
- column="6"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="svg_path_hint">坐标范围:X(0-100),Y(0-100)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rCN/strings.xml"
- line="785"
- column="34"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="svg_path_hint">Coordinates: X(0-100), Y(0-100)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="816"
- column="34"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="svg_path_hint">座標:X(0-100),Y(0-100)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rTW/strings.xml"
- line="1513"
- column="34"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="llm_temperature_description">允許範圍:0-2。接近 0 更嚴謹;接近 2 更有創意。</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rHK/strings.xml"
- line="1856"
- column="48"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="llm_temperature_description">Allowed range: 0-2. Closer to 0 is stricter; closer to 2 is more creative.</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values/strings.xml"
- line="1913"
- column="48"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="llm_temperature_description">允許範圍:0-2。越接近 0 越嚴格;越接近 2 越具創造力。</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rTW/strings.xml"
- line="1963"
- column="48"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="llm_temperature_description">允许值:0-2。越靠近 0 越严谨,越靠近 2 越有创造力。</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rCN/strings.xml"
- line="1969"
- column="48"/>
- </issue>
- <issue
- id="TypographyDashes"
- message="Replace "-" with an "en dash" character (–, &#8211;) ?"
- errorLine1=" <string name="svg_path_hint">座標:X(0-100),Y(0-100)</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/values-zh-rHK/strings.xml"
- line="2141"
- column="34"/>
- </issue>
- <issue
- id="IconDuplicatesConfig"
- message="The `ic_launcher.webp` icon has identical contents in the following configuration folders: drawable, mipmap-xhdpi">
- <location
- file="src/main/res/mipmap-xhdpi/ic_launcher.webp"/>
- <location
- file="src/main/res/drawable/ic_launcher.webp"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/ic_launcher.webp` in densityless folder">
- <location
- file="src/main/res/drawable/ic_launcher.webp"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/image_cover_default.png` in densityless folder">
- <location
- file="src/main/res/drawable/image_cover_default.png"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/image_legado.png` in densityless folder">
- <location
- file="src/main/res/drawable/image_legado.png"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/image_loading_error.png` in densityless folder">
- <location
- file="src/main/res/drawable/image_loading_error.png"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/image_rss.jpg` in densityless folder">
- <location
- file="src/main/res/drawable/image_rss.jpg"/>
- </issue>
- <issue
- id="IconLocation"
- message="Found bitmap drawable `res/drawable/image_rss_article.jpg` in densityless folder">
- <location
- file="src/main/res/drawable/image_rss_article.jpg"/>
- </issue>
- <issue
- id="ViewConstructor"
- message="Custom view `PageView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
- errorLine1="class PageView("
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/PageView.kt"
- line="48"
- column="7"/>
- </issue>
- <issue
- id="ViewConstructor"
- message="Custom view `ReadView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
- errorLine1="class ReadView("
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/ReadView.kt"
- line="52"
- column="7"/>
- </issue>
- <issue
- id="ReportShortcutUsage"
- 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"
- errorLine1=" ShortcutManagerCompat.setDynamicShortcuts("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/api/ShortCuts.kt"
- line="59"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" val bitmap = Bitmap.createBitmap(w, h, config)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ACache.kt"
- line="609"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.toDrawable` instead?"
- errorLine1=" } else BitmapDrawable(appCtx.resources, bm)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ACache.kt"
- line="624"
- column="20"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(backupPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/about/AboutViewModel.kt"
- line="139"
- column="27"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(backupPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/about/AboutViewModel.kt"
- line="163"
- column="23"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ArcView)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/image/ArcView.kt"
- line="32"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toColorInt` instead?"
- errorLine1=" Color.parseColor("#303F9F")"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/image/ArcView.kt"
- line="36"
- column="13"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return deCompress(Uri.parse(archivePath), path, filter)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ArchiveUtils.kt"
- line="34"
- column="27"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return FileDoc.fromUri(Uri.parse(workPath), true)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ArchiveUtils.kt"
- line="107"
- column="32"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" runCatching { backupRestoreUseCase.restoreLocal(Uri.parse(uri).toString()) }"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/backupConfig/BackupConfigViewModel.kt"
- line="302"
- column="61"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BevelLabelView)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt"
- line="53"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/config/BgImageSpan.kt"
- line="91"
- column="21"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.get` instead?"
- errorLine1=" pixel = this.getPixel("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/utils/BitmapUtils.kt"
- line="320"
- column="21"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" val output = Bitmap.createBitmap(outputSize, outputSize, Bitmap.Config.ARGB_8888)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/knowledge/CharacterAvatarImage.kt"
- line="49"
- column="18"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" File(Uri.parse(avatarUri).path.orEmpty()).canonicalFile"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/knowledge/CharacterAvatarImage.kt"
- line="78"
- column="14"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" text.isHttpTtsImportUri() -> Uri.parse(text).getQueryParameter("src")"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/cloudtts/CloudTtsViewModel.kt"
- line="881"
- column="38"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = runCatching { Uri.parse(this) }.getOrNull() ?: return false"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/cloudtts/CloudTtsViewModel.kt"
- line="1032"
- column="29"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.ColorPreference)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/prefs/ColorPreference.kt"
- line="50"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(uriString)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/coverConfig/CoverAlbumManageViewModel.kt"
- line="123"
- column="27"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(backupPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/CrashHandler.kt"
- line="177"
- column="27"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(backupPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt"
- line="117"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(backupPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt"
- line="151"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.DetailSeekBar)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt"
- line="56"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val a = context.obtainStyledAttributes(attrs)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
- line="39"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
- line="94"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/recycler/DividerNoLast.kt"
- line="121"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val request = DownloadManager.Request(Uri.parse(url))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/service/DownloadService.kt"
- line="103"
- column="51"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension property `Locale.layoutDirection` instead?"
- errorLine1=" get() = (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/recycler/DragSelectTouchHelper.kt"
- line="735"
- column="18"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Int.toDrawable` instead?"
- errorLine1=" return createTransitionDrawable(ColorDrawable(startColor), ColorDrawable(endColor))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DrawableUtils.kt"
- line="26"
- column="41"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Int.toDrawable` instead?"
- errorLine1=" return createTransitionDrawable(ColorDrawable(startColor), ColorDrawable(endColor))"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/DrawableUtils.kt"
- line="26"
- column="68"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.DynamicFrameLayout)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/dynamiclayout/DynamicFrameLayout.kt"
- line="46"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" res = res.withUri(Uri.parse(url))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/exoplayer/ExoPlayerHelper.kt"
- line="70"
- column="35"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.get` instead?"
- errorLine1=" generateParticle(bitmap.getPixel((j + 1) * w, (i + 1) * h), random)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/anima/explosion_field/ExplosionAnimator.kt"
- line="43"
- column="38"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" importBook(Uri.parse(treeUriStr), uri)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt"
- line="151"
- column="28"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val array = context.obtainStyledAttributes(attrs, R.styleable.FilletImageView)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/image/FilletImageView.kt"
- line="26"
- column="21"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(url)"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/file/HandleFileActivity.kt"
- line="140"
- column="39"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" Uri.parse(path)"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/file/HandleFileActivity.kt"
- line="153"
- column="29"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" path.isContentScheme() -> requestManager.load(Uri.parse(path))"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
- line="47"
- column="59"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" path.isContentScheme() -> requestManager.load(Uri.parse(path))"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
- line="63"
- column="59"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" path.isContentScheme() -> Glide.with(context).asFile().load(Uri.parse(path))"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/glide/ImageLoader.kt"
- line="76"
- column="73"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(mText)"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt"
- line="170"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return getBrowserIntent(Uri.parse(url))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/IntentHelp.kt"
- line="14"
- column="33"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `SharedPreferences.edit` instead?"
- errorLine1=" preferences.edit()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/pageestimate/PageEstimateCalibrationStore.kt"
- line="138"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/prefs/Preference.kt"
- line="31"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap(heightPix, heightPix, Bitmap.Config.ARGB_8888)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="98"
- column="35"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="143"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="159"
- column="13"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" val bitmap = Bitmap.createBitmap("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="409"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" var bitmap: Bitmap? = Bitmap.createBitmap("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="451"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/QRCodeUtils.kt"
- line="469"
- column="13"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toColorInt` instead?"
- errorLine1=" runCatching { android.graphics.Color.parseColor(this) }.getOrDefault(0)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/data/repository/ReadBookStyleConfigRepository.kt"
- line="349"
- column="23"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = runCatching { Uri.parse(this) }.getOrNull() ?: return false"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt"
- line="2510"
- column="29"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `SharedPreferences.edit` instead?"
- errorLine1=" context.getSharedPreferences(preferenceName, Context.MODE_PRIVATE)"
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadButtonConfigDelegate.kt"
- line="120"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" Uri.parse("content://downloads/public_downloads"),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/RealPathUtil.kt"
- line="44"
- column="21"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val localBookUri = Uri.parse(book.bookUrl)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt"
- line="71"
- column="28"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Int.toDrawable` instead?"
- errorLine1=" mDefaultDrawable = ColorDrawable(Color.TRANSPARENT)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/theme/Selector.kt"
- line="284"
- column="32"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" context.obtainStyledAttributes(attrs, R.styleable.ShadowLayout)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/ShadowLayout.kt"
- line="63"
- column="13"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withClip` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="302"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="398"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withClip` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="468"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/delegate/SimulationPageDelegate.kt"
- line="500"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withTranslation` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/config/SvgUnderlineSpan.kt"
- line="67"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" intent.data = Uri.parse("package:" + activity.packageName)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/SystemUtils.kt"
- line="27"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" intent.data = Uri.parse("package:" + activity.packageName)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/SystemUtils.kt"
- line="27"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withTranslation` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="523"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withSave` instead?"
- errorLine1=" canvas.save()"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="575"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.get` instead?"
- errorLine1=" val color = if (horizontal) bitmap.getPixel(position, 0) else bitmap.getPixel(0, position)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="821"
- column="41"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.get` instead?"
- errorLine1=" val color = if (horizontal) bitmap.getPixel(position, 0) else bitmap.getPixel(0, position)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="821"
- column="75"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Bitmap.scale` instead?"
- errorLine1=" val scaled = Bitmap.createScaledBitmap(source, width, height, true)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="944"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = android.net.Uri.parse(path)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt"
- line="959"
- column="31"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(fontPath)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/theme/ThemeComponents.kt"
- line="57"
- column="19"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val uri = Uri.parse(uriString)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigViewModel.kt"
- line="419"
- column="19"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" uri = Uri.parse(intent.uri),"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
- line="166"
- column="23"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" emitImportResult(themePackageManager.importPackage(Uri.parse(uri)))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
- line="186"
- column="64"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" emitImportResult(themePackageManager.importLegacyJson(Uri.parse(uri)))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/themeManage/ThemeManageViewModel.kt"
- line="192"
- column="67"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" context.contentResolver.openInputStream(Uri.parse(path))"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/config/ThemePackageManager.kt"
- line="989"
- column="53"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" val fileName = Uri.parse(path).lastPathSegment.orEmpty()"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/help/config/ThemePackageManager.kt"
- line="997"
- column="24"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ThemeRadioNoButton)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt"
- line="18"
- column="26"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val a = context.obtainStyledAttributes("
- errorLine2=" ^">
- <location
- file="src/main/java/io/legado/app/ui/widget/TitleBar.kt"
- line="51"
- column="17"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX function `createBitmap` instead?"
- errorLine1=" return Bitmap.createBitmap(width, height, config)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/anima/explosion_field/Utils.kt"
- line="69"
- column="20"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Context.withStyledAttributes` instead?"
- errorLine1=" val a = context.obtainStyledAttributes(attrs, R.styleable.VerticalSeekBar)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt"
- line="65"
- column="21"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `ViewGroup.isNotEmpty` instead?"
- errorLine1=" val child = if (childCount > 0) getChildAt(0) else null"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBarWrapper.kt"
- line="21"
- column="29"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Canvas.withTranslation` instead?"
- errorLine1=" c.save()"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/utils/ViewExtensions.kt"
- line="169"
- column="9"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Int.toDrawable` instead?"
- errorLine1=" val start = oldColor ?: ColorDrawable(view.solidColor)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/theme/ViewUtils.kt"
- line="34"
- column="33"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `Int.toDrawable` instead?"
- errorLine1=" val end = ColorDrawable(newColor)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/lib/theme/ViewUtils.kt"
- line="35"
- column="19"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return shouldOverrideUrlLoading(Uri.parse(it))"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/browser/WebViewActivity.kt"
- line="257"
- column="49"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return shouldOverrideUrlLoading(Uri.parse(url))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt"
- line="107"
- column="49"/>
- </issue>
- <issue
- id="UseKtx"
- message="Use the KTX extension function `String.toUri` instead?"
- errorLine1=" return shouldOverrideUrlLoading(Uri.parse(url))"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt"
- line="107"
- column="49"/>
- </issue>
- <issue
- id="ModifierNodeInspectableProperties"
- message="BgEffectElement does not override inspectableProperties(). The layout inspector will use the default implementation of this function, which will attempt to read BgEffectElement's properties reflectively. Override inspectableProperties() if you'd like to customize this modifier's presentation in the layout inspector."
- errorLine1="private data class BgEffectElement("
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/components/effect/BgEffectModifier.kt"
- line="36"
- column="20"/>
- </issue>
- <issue
- id="ClickableViewAccessibility"
- message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
- errorLine1=" setOnTouchListener(onCursorTouch)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt"
- line="707"
- column="21"/>
- </issue>
- <issue
- id="ClickableViewAccessibility"
- message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
- errorLine1=" setOnTouchListener(onCursorTouch)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt"
- line="718"
- column="21"/>
- </issue>
- <issue
- id="ConstantLocale"
- 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"
- errorLine1=" private val detailDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
- line="222"
- column="80"/>
- </issue>
- <issue
- id="ConstantLocale"
- 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"
- errorLine1=" private val detailTimeFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/readaloud/cache/TtsCacheViewModel.kt"
- line="223"
- column="80"/>
- </issue>
- <issue
- id="SetTextI18n"
- message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
- errorLine1=" binding.checkSourceTimeout.setText((timeoutMillis / 1000).toString())"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt"
- line="62"
- column="48"/>
- </issue>
- <issue
- id="SetTextI18n"
- message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
- errorLine1=" text = R.string.empty.toString()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/EmptyMessageView.kt"
- line="49"
- column="20"/>
- </issue>
- <issue
- id="SetTextI18n"
- message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
- errorLine1=" binding.message.text = "${viewModel.sourceName} 正在请求跳转链接/应用,是否跳转?""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt"
- line="69"
- column="32"/>
- </issue>
- <issue
- id="SetTextI18n"
- message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
- errorLine1=" tvCount.text = selectCount.toString()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/SelectActionBar.kt"
- line="81"
- column="24"/>
- </issue>
- <issue
- id="SetTextI18n"
- message="Number formatting does not take into account locale settings. Consider using `String.format` instead."
- errorLine1=" tvCountAll.text = allCount.toString()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/io/legado/app/ui/widget/SelectActionBar.kt"
- line="82"
- column="27"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "|", should use `@string` resource"
- errorLine1=" android:text="|""
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout-land/activity_book_info.xml"
- line="325"
- column="29"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "|", should use `@string` resource"
- errorLine1=" android:text="|""
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/activity_book_info.xml"
- line="328"
- column="25"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "4/30", should use `@string` resource"
- errorLine1=" android:text="4/30" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_manga_footer_setting.xml"
- line="194"
- column="17"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "1 / 45", should use `@string` resource"
- errorLine1=" android:text="1 / 45" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_manga_footer_setting.xml"
- line="217"
- column="17"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "2.1%", should use `@string` resource"
- errorLine1=" android:text="2.1%" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_manga_footer_setting.xml"
- line="233"
- column="17"/>
- </issue>
- <issue
- id="HardcodedText"
- message="Hardcoded string "variable", should use `@string` resource"
- errorLine1=" android:hint="variable""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_variable.xml"
- line="33"
- column="17"/>
- </issue>
- <issue
- id="RtlSymmetry"
- message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
- errorLine1=" android:paddingStart="16dp""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/preference_theme_card.xml"
- line="12"
- column="9"/>
- </issue>
- <issue
- id="RtlHardcoded"
- message="Use "`Gravity.START`" instead of "`Gravity.LEFT`" to ensure correct behavior in right-to-left locales"
- errorLine1=" Gravity.BOTTOM or Gravity.LEFT,"
- errorLine2=" ~~~~">
- <location
- file="src/main/java/io/legado/app/ui/book/read/ReadBookController.kt"
- line="572"
- column="39"/>
- </issue>
- <issue
- id="RtlHardcoded"
- message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd="60dp"` to better support right-to-left layouts"
- errorLine1=" android:layout_marginRight="60dp""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_progressbar_view.xml"
- line="15"
- column="9"/>
- </issue>
- <issue
- id="RtlHardcoded"
- message="Consider replacing `android:layout_marginRight` with `android:layout_marginEnd="20dp"` to better support right-to-left layouts"
- errorLine1=" android:layout_marginRight="20dp""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/res/layout/dialog_progressbar_view.xml"
- line="22"
- column="9"/>
- </issue>
- </issues>
|