in ActionOpenDocumentTree/app/src/main/java/com/example/android/ktfiles/DirectoryFragment.kt [49:93]
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
directoryUri = arguments?.getString(ARG_DIRECTORY_URI)?.toUri()
?: throw IllegalArgumentException("Must pass URI of directory to open")
viewModel = ViewModelProviders.of(this)
.get(DirectoryFragmentViewModel::class.java)
val view = inflater.inflate(R.layout.fragment_directory, container, false)
recyclerView = view.findViewById(R.id.list)
recyclerView.layoutManager = LinearLayoutManager(recyclerView.context)
adapter = DirectoryEntryAdapter(object : ClickListeners {
override fun onDocumentClicked(clickedDocument: CachingDocumentFile) {
viewModel.documentClicked(clickedDocument)
}
override fun onDocumentLongClicked(clickedDocument: CachingDocumentFile) {
renameDocument(clickedDocument)
}
})
recyclerView.adapter = adapter
viewModel.documents.observe(viewLifecycleOwner, Observer { documents ->
documents?.let { adapter.setEntries(documents) }
})
viewModel.openDirectory.observe(viewLifecycleOwner, Observer { event ->
event.getContentIfNotHandled()?.let { directory ->
(activity as? MainActivity)?.showDirectoryContents(directory.uri)
}
})
viewModel.openDocument.observe(viewLifecycleOwner, Observer { event ->
event.getContentIfNotHandled()?.let { document ->
openDocument(document)
}
})
return view
}