If you're familiar enough with the vehicle you can knock it out in about an hour but you've got to know what you're doing.
In your case, it looks like it's been repaired prior. You should try to do the repair yourself before hiring someone to do it. If successful, you'll save quite a bit of money.
After removing the HL lay it flat. Fold back the fabric and place a piece of cardboard or a large towel between the detached fabric and the still attached fabric so as not to get spray adhesive on the still attached fabric.
Remove any crumbled foam by vacuuming or blowing it off lightly.
Using 3M 90 adhesive spray, apply it to both the fabric and the headliner board. Spray evenly to avoid puddles.
Now wait approx 5 mins.
Begin laying the fabric back in place starting at the part where it's still attached and working toward the outer edge. Keep the fabric taught as you lay it in place to avoid wrinkles. Once back in place, rub the area well with a clean hand to ensure good adhesion.
Now, go drink a cold one or watch an episode of something. DO NOT immediately attempt to replace the repaired headliner until the adhesive has completely dried!
Also, don't get any wild ideas about cleaning the headliner. It's tempting since it's out of the car and easily accessible but don't! And do not get it wet under any circumstances! The remaining factory adhesive has failed and any moisture will disintegrate the remaining grip between the fabric and headliner and it will release instantly.
Once it's dry, carefully replace the headliner in vehicle carefully with clean, dry hands. Secure the sides first, then the front, and finally the rear.
This is one of the tasks I do on a regular basis on various makes and models. Follow these directions to the letter and you should successfully make the repair.