Skip to content

Commit

Permalink
Wrap the current mobile code in the new repository scheme
Browse files Browse the repository at this point in the history
  • Loading branch information
andydotxyz committed Jan 13, 2021
1 parent febdb5f commit 1e1b49b
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 0 deletions.
2 changes: 2 additions & 0 deletions internal/driver/gomobile/driver.go
Expand Up @@ -414,5 +414,7 @@ func (d *mobileDriver) Device() fyne.Device {
func NewGoMobileDriver() fyne.Driver {
d := new(mobileDriver)
d.animation = &animation.Runner{}

registerRepository(d)
return d
}
7 changes: 7 additions & 0 deletions internal/driver/gomobile/file_android.go
Expand Up @@ -18,6 +18,7 @@ import (
"os"
"unsafe"

"fyne.io/fyne/storage/repository"
"github.com/fyne-io/mobile/app"
)

Expand Down Expand Up @@ -90,3 +91,9 @@ func nativeFileOpen(f *fileOpen) (io.ReadCloser, error) {
stream.stream = ret
return stream, nil
}

func registerRepository(d *mobileDriver) {
repo := &mobileFileRepo{driver: d}
repository.Register("file", repo)
repository.Register("content", repo)
}
7 changes: 7 additions & 0 deletions internal/driver/gomobile/file_desktop.go
Expand Up @@ -6,6 +6,9 @@ import (
"errors"
"io"
"os"

intRepo "fyne.io/fyne/internal/repository"
"fyne.io/fyne/storage/repository"
)

func nativeFileOpen(f *fileOpen) (io.ReadCloser, error) {
Expand All @@ -15,3 +18,7 @@ func nativeFileOpen(f *fileOpen) (io.ReadCloser, error) {

return os.Open(f.uri.String()[7:])
}

func registerRepository(d *mobileDriver) {
repository.Register("file", intRepo.NewFileRepository("file"))
}
7 changes: 7 additions & 0 deletions internal/driver/gomobile/file_ios.go
Expand Up @@ -15,6 +15,8 @@ import "C"
import (
"io"
"unsafe"

"fyne.io/fyne/storage/repository"
)

type secureReadCloser struct {
Expand Down Expand Up @@ -74,3 +76,8 @@ func nativeFileOpen(f *fileOpen) (io.ReadCloser, error) {
fileStruct := &secureReadCloser{url: url, closer: f.done}
return fileStruct, nil
}

func registerRepository(d *mobileDriver) {
repo := &mobileFileRepo{driver: d}
repository.Register("file", repo)
}
34 changes: 34 additions & 0 deletions internal/driver/gomobile/repository.go
@@ -0,0 +1,34 @@
package gomobile

import (
"fyne.io/fyne"
)

type mobileFileRepo struct {
driver *mobileDriver
}

func (m *mobileFileRepo) Exists(u fyne.URI) (bool, error) {
return true, nil // TODO check a file exists
}

func (m *mobileFileRepo) Reader(u fyne.URI) (fyne.URIReadCloser, error) {
return m.driver.FileReaderForURI(u)
}

func (m *mobileFileRepo) CanRead(u fyne.URI) (bool, error) {
return true, nil // TODO check a file can be read
}

func (m *mobileFileRepo) Destroy(string) {
}

func (m *mobileFileRepo) CanList(u fyne.URI) (bool, error) {
return canListURI(u), nil
}

func (m *mobileFileRepo) List(u fyne.URI) ([]fyne.URI, error) {
return listURI(u)
}

// TODO add write support (not yet supported on mobile)

0 comments on commit 1e1b49b

Please sign in to comment.