When dealing with complex lifecycles like Fragments, it is important
to expose the reliance of the Fragment on the Activity, since they
have different lifecycles.
Just cast to AppDetails instead of adding complexity with unneeded
Interfaces. The actual instance and class will be the same with or
without the Interfaces, so it does not help with lifecycle issues.
The methods that implement the interfaces only hide the fact that they
rely on an active instance of AppDetails, which can lead to
lifecycle-related crashes.
This is a step along the way to streamlining AppDetails Activity so that it
only uses Fragments when they are beneficial.