You define the FAB’s meaning
The FAB should trigger the single most important action for the view. Whatever the user needs to complete that action, consider it approved. From Google:
A floating action button represents the primary action in an application.
Bottom sheets are all about action
Bottom sheets are a powerful tool in Material. They can provide a grid of actions, deep link to other app information, or provide extended app functionality. That makes the feature a very reasonable FAB result. According to the Material spec:
Bottom sheets are displayed only as a result of a user-initiated action [...].
Modal bottom sheets are alternatives to menus, or simple dialogs [...].
Modal bottom sheets may present actions in a list or grid as an alternative to menus or simple dialogs.
This example from the spec is very directly related to the workflow you described.
Where your experience gets complicated
IMHO, the FAB-to-bottom sheet interaction isn't the concern here — your workflow needs rethinking. Try flipping the order of things and ask your app to do a little more work.
Here's how I would redesign the user's responsibility:
- The FAB triggers a source selector (Dropbox, Drive, etc).
- Based on source selection, open the appropriate file browser.
- On return, your app detects file type.
On step 1, offer an
just once preference chooser so they can "set it and forget it".