package Ġcom . js ongo . my base frm . aspect Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ProgressBar Ċ import Ġcn . j igu ang . im ui . chat input . model . File Item Ċ import Ġcn . j igu ang . im ui . chat input . photo . Select Photo View Ċ import Ġorg . aspect j . lang . Pro ceeding Join Point Ċ import Ġorg . aspect j . lang . annotation . Around Ċ import Ġorg . aspect j . lang . annotation . Aspect Ċ import Ġorg . aspect j . lang . annotation . Point cut Ċ import Ġkotlin . concurrent . thread Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ ï¼ļ Ġjs ongo Ċ Ġ* Ġ@ date Ġ ï¼ļ Ġ 2 0 2 0 / 2 / 2 Ġ 2 1 : 2 2 Ċ Ġ* Ġ@ desc Ġ: Ċ Ġ*/ Ċ @ Aspect Ċ class ĠFile Item Aspect Ġ{ ĊĊĠĠĠ Ġ@ Point cut (" execution (* Ġcn . j igu ang . im ui . chat input . model . File Item . compareTo (.. )) ") ĊĠĠĠ Ġfun Ġfile Item Sort Point cut () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Around (" file Item Sort Point cut () ") ĊĠĠĠ Ġfun Ġfile Item Sort Aspect ( join Point : ĠPro ceeding Join Point ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġjoin Point . args [ 0 ] Ġ?: Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjoin Point . proceed () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Point cut (" execution (* Ġcn . j igu ang . im ui . chat input . photo . Select Photo View . init Data (.. )) ") ĊĠĠĠ Ġfun Ġselect Photo View Init DataPoint cut () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Around (" select Photo View Init DataPoint cut () ") ĊĠĠĠ Ġfun Ġselect Photo View Init Data Aspect ( join Point : ĠPro ceeding Join Point ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Photo View Ġ= Ġjoin Point .` this ` Ġas ĠSelect Photo View ĊĊĠĠĠĠĠĠĠ Ġval Ġselect Photo View Clazz Ġ= ĠSelect Photo View :: class . java ĊĊĠĠĠĠĠĠĠ Ġval Ġhas Permission Method Ġ= Ġselect Photo View Clazz . getDeclared Method (" has Permission ") ĊĠĠĠĠĠĠĠ Ġhas Permission Method . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( has Permission Method . invoke ( select Photo View ) Ġas ĠBoolean ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Photo View Clazz . getDeclared Field (" m ProgressBar "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( get ( select Photo View ) Ġas ĠProgress Bar ). visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Photos Ġ= Ġselect Photo View Clazz . getDeclared Method (" get Photos "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke ( select Photo View ) Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Videos Ġ= Ġselect Photo View Clazz . getDeclared Method (" get Videos "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke ( select Photo View ) Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġselect Photo View Clazz . getDeclared Field (" m Media Handler "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( select Photo View ) Ġas ĠHandler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get Photos Ġ&& Ġget Videos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Photo View Clazz . getDeclared Field (" m File Items "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( select Photo View ) Ġas ĠMutable List < File Item > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sort () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . send Empty Message ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . send Empty Message ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }