package Ġat . gu ger . money book . core . ui . shape čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġcom . google . android . material . bottom app bar . Bottom AppBar č Ċ import Ġcom . google . android . material . bottom app bar . Bottom AppBar Top Edge T reatment č Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton č Ċ import Ġcom . google . android . material . shape . Shape Path čĊč Ċ /** čĊ Ġ* ĠA Ġ[ Bottom AppBar ] Ġtop Ġedge Ġthat Ġworks Ġwith Ġa Ġdi amond Ġsh aped Ġ[ Floating ActionButton ]. čĊ Ġ*/ č Ċ class ĠBottom AppBar Cut C orners Top Edge ( private Ġval Ġfab Margin : ĠFloat , Ġrounded Corner Radius : ĠFloat , Ġprivate Ġval Ġc rad le Vertical Offset : ĠFloat ) Ġ: čĊĠĠĠ ĠBottom AppBar Top Edge T reatment ( fab Margin , Ġrounded Corner Radius , Ġc rad le Vertical Offset ) Ġ{ čĊčĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") čĊĠĠĠ Ġoverride Ġfun Ġget Edge Path ( length : ĠFloat , Ġcenter : ĠFloat , Ġinterpolation : ĠFloat , Ġshape Path : ĠShape Path ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( fab Di ameter Ġ== Ġ 0 . 0 f ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Path . lineTo ( length , Ġ 0 . 0 f ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġdi amond Size Ġ= Ġfab Di ameter Ġ/ Ġ 2 . 0 f čĊĠĠĠĠĠĠĠ Ġval Ġmiddle Ġ= Ġcenter Ġ+ Ġhorizontal Offset čĊčĊĠĠĠĠĠĠĠ Ġval Ġvertical Offset R ation Ġ= Ġc rad le Vertical Offset Ġ/ Ġdi amond Size čĊĠĠĠĠĠĠĠ Ġif Ġ( vertical Offset R ation Ġ>= Ġ 1 . 0 f ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Path . lineTo ( length , Ġ 0 . 0 f ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġshape Path . lineTo ( middle Ġ- Ġ( fab Margin Ġ+ Ġdi amond Size Ġ- Ġc rad le Vertical Offset ), Ġ 0 . 0 f ) čĊĠĠĠĠĠĠĠ Ġshape Path . lineTo ( middle , Ġ( di amond Size Ġ- Ġc rad le Vertical Offset Ġ+ Ġfab Margin ) Ġ* Ġinterpolation ) čĊĠĠĠĠĠĠĠ Ġshape Path . lineTo ( middle Ġ+ Ġ( fab Margin Ġ+ Ġdi amond Size Ġ- Ġc rad le Vertical Offset ), Ġ 0 . 0 f ) čĊĠĠĠĠĠĠĠ Ġshape Path . lineTo ( length , Ġ 0 . 0 f ) čĊĠĠĠ Ġ} č Ċ }