package Ġcom . commit 4 5 1 . gitlab . util Ċ Ċ import Ġretrofit 2 . Response Ċ import Ġtim ber . log . Tim ber Ċ Ċ /** Ċ Ġ* ĠParses Ġlink Ġheaders Ġfrom Ġa Ġretrofit Ġ[ Response ] Ċ Ġ* Ġ@ see Ġ[ https :// www . w 3 . org / wiki / Link Header ]( https :// www . w 3 . org / wiki / Link Header ) Ċ Ġ*/ Ċ object ĠLink Header Parser Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠNEXT _ PAGE _ SUFFIX Ġ= Ġ" rel =\" next \"" ĊĊĠĠĠ Ġfun Ġparse ( response : ĠResponse < *> ): ĠPagination Data Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġresponse . headers ()[" Link "] ĊĠĠĠĠĠĠĠ Ġif Ġ( header Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Page Part Ġ= Ġheader . split ("," . to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġit . contains ( NEXT _ PAGE _ SUFFIX ) Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Start Ġ= Ġnext Page Part . indexOf ('< ') Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink End Ġ= Ġnext Page Part . indexOf (' >') ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġnext Page Part . substring ( link Start , Ġlink End ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPagination Data ( next ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠPagination Data ( val Ġnext : ĠString ?) Ċ } Ċ