Packages
mob
0.3.9
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.26
0.6.25
0.6.24
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.2
0.6.1
0.6.0
0.5.18
0.5.17
0.5.16
0.5.15
0.5.14
0.5.11
0.5.10
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
BEAM-on-device mobile framework for Elixir
Current section
Files
Jump to
Current section
Files
lib/mob/photos.ex
defmodule Mob.Photos do
@moduledoc """
Photo / video library picker.
On iOS 14+ no permission is required (the picker itself is sandboxed).
On Android, `READ_MEDIA_IMAGES` / `READ_MEDIA_VIDEO` may be needed.
Results arrive as:
handle_info({:photos, :picked, items}, socket)
handle_info({:photos, :cancelled}, socket)
Each item in `items` is:
%{path: "/tmp/mob_pick_xxx.jpg", type: :image | :video,
width: 1920, height: 1080}
iOS: `PHPickerViewController`. Android: `PickMultipleVisualMedia`.
"""
@spec pick(Mob.Socket.t(), keyword()) :: Mob.Socket.t()
def pick(socket, opts \\ []) do
max = Keyword.get(opts, :max, 1)
types = Keyword.get(opts, :types, [:image]) |> Enum.map(&Atom.to_string/1)
:mob_nif.photos_pick(max, types)
socket
end
end