--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "CustomMediaAlbum.h"
+
+#include "common.h"
+
+namespace gallery {
+
+ CustomMediaAlbum::CustomMediaAlbum()
+ {
+ }
+
+ CustomMediaAlbum::~CustomMediaAlbum()
+ {
+ }
+
+ void CustomMediaAlbum::addItem(MediaItemSRef item)
+ {
+ m_items.emplace_back(std::move(item));
+ }
+
+ void CustomMediaAlbum::addChangeHandler(const NotiHandler &handler)
+ {
+ LOG_RETURN_VOID(RES_NOT_SUPPORTED, "Wrong call.");
+ }
+
+ void CustomMediaAlbum::delChangeHandler(const NotiHandler &handler)
+ {
+ LOG_RETURN_VOID(RES_NOT_SUPPORTED, "Wrong call.");
+ }
+
+ Result CustomMediaAlbum::forEachMedia(const EachCb cb) const
+ {
+ for (const auto &item: m_items) {
+ if (!cb(item)) {
+ break;
+ }
+ }
+ return RES_OK;
+ }
+
+ Result CustomMediaAlbum::getMediaCount(int &count) const
+ {
+ count = m_items.size();
+ return RES_OK;
+ }
+
+ void CustomMediaAlbum::defragment()
+ {
+ LOG_RETURN_VOID(RES_NOT_SUPPORTED, "Wrong call.");
+ }
+}
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __GALLERY_MODEL_CUSTOM_MEDIA_ALBUM_H__
+#define __GALLERY_MODEL_CUSTOM_MEDIA_ALBUM_H__
+
+#include "IMediaAlbum.h"
+
+namespace gallery {
+
+ UCL_DECLARE_REF_ALIASES(CustomMediaAlbum);
+
+ class CustomMediaAlbum final : public IMediaAlbum {
+ public:
+ CustomMediaAlbum();
+ virtual ~CustomMediaAlbum();
+
+ void addItem(MediaItemSRef item);
+
+ // IMediaAlbum //
+
+ virtual void addChangeHandler(
+ const NotiHandler &handler) final override;
+ virtual void delChangeHandler(
+ const NotiHandler &handler) final override;
+
+ virtual ucl::Result forEachMedia(EachCb cb) const final override;
+ virtual ucl::Result getMediaCount(int &count) const final override;
+
+ virtual void defragment() final override;
+
+ private:
+ MediaItems m_items;
+ };
+}
+
+#endif // __GALLERY_MODEL_CUSTOM_MEDIA_ALBUM_H__
class IMediaAlbum : public ucl::Polymorphic {
public:
- using EachCb = ucl::Delegate<bool(MediaItemSRef &&media)>;
+ using EachCb = ucl::Delegate<bool(MediaItemSRef media)>;
public:
virtual void addChangeHandler(const NotiHandler &handler) = 0;
public:
static MediaItemSRef newInstance(media_info_h media);
static MediaItemSRef newInstance(std::string filePath);
- virtual ~MediaItem();
+ public:
bool isValid() const;
int getFlags() const;
MediaType getType() const;
protected:
friend class ucl::ReffedObj<MediaItem>;
MediaItem(int flags, MediaType type);
+ virtual ~MediaItem();
ucl::Result prepare(media_info_h media);
ucl::Result prepareImage(media_info_h media);
public:
static SoundManagerSRef newInstance();
+ public:
bool isMediaDeviceReady() const;
int getCurrentMediaVolume() const;
m_onChange -= handler;
}
- Result GalleryAlbum::forEachMedia(EachCb cb) const
+ Result GalleryAlbum::forEachMedia(const EachCb cb) const
{
if (!m_isValid) {
LOG_RETURN(RES_INVALID_DATA, "m_isValid: false;");
}
- for (auto item: m_items) {
+ for (const auto &item: m_items) {
if (!item->isValid()) {
WLOG("Fragmented!");
- } else if (!cb(std::move(item))) {
+ } else if (!cb(item)) {
break;
}
}
class GalleryAlbum final : public IMediaAlbum {
public:
static GalleryAlbumSRef newInstance();
- virtual ~GalleryAlbum();
+ public:
// IMediaAlbum //
virtual void addChangeHandler(
private:
friend class ucl::ReffedObj<GalleryAlbum>;
GalleryAlbum();
+ virtual ~GalleryAlbum();
ucl::Result prepare();
}
}
- bool PreviewPage::onEachMedia(MediaItemSRef &&media)
+ bool PreviewPage::onEachMedia(MediaItemSRef media)
{
m_items.emplace_back(makeShared<Item>(
std::move(media), *m_imageGrid, m_items.size()));
void checkViewerPage();
void onAlbumChanged();
- bool onEachMedia(MediaItemSRef &&media);
+ bool onEachMedia(MediaItemSRef media);
void closeTempViews();
void switchToSelectMode();
}
}
- bool ThumbnailPage::onEachMedia(MediaItemSRef &&media)
+ bool ThumbnailPage::onEachMedia(MediaItemSRef media)
{
m_mediaItems.emplace_back(std::move(media));
return true;
int getSafeItemIndex(int itemIndex) const;
void onAlbumChanged();
- bool onEachMedia(MediaItemSRef &&media);
+ bool onEachMedia(MediaItemSRef media);
void onPageExitRequest(Page &page);
profile = wearable-4.0\r
\r
# C/CPP Sources\r
-USER_SRCS = gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp gallery/presenters/pages/ThumbnailPage.cpp ucl/source/appfw/InstanceManagerBase.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp ucl/source/util/logging.cpp gallery/resources.cpp gallery/presenters/pages/ViewerPage.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp gallery/presenters/misc/AtspiHighlightHelper.cpp ucl/source/mvp/ListPresenter.cpp gallery/model/SoundManager.cpp ucl/source/misc/Variant.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/misc/ProcessingPresenter.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp ucl/source/gui/Genlist.cpp gallery/presenters/pages/NoContentPage.cpp gallery/view/ImageViewer.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/view/TouchParser.cpp ucl/source/gui/WidgetItem.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/Gallery.cpp gallery/model/impl/helpers.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/presenters/base/Page.cpp gallery/model/MediaItem.cpp gallery/view/helpers.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/mvp/ListItemPresenter.cpp ucl/source/gui/NaviItem.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/appfw/helpers.cpp ucl/source/gui/EdjeWidget.cpp \r
+USER_SRCS = gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp gallery/model/CustomMediaAlbum.cpp gallery/presenters/pages/ThumbnailPage.cpp ucl/source/appfw/InstanceManagerBase.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp ucl/source/util/logging.cpp gallery/resources.cpp gallery/presenters/pages/ViewerPage.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp gallery/presenters/misc/AtspiHighlightHelper.cpp ucl/source/mvp/ListPresenter.cpp gallery/model/SoundManager.cpp ucl/source/misc/Variant.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/misc/ProcessingPresenter.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp ucl/source/gui/Genlist.cpp gallery/presenters/pages/NoContentPage.cpp gallery/view/ImageViewer.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/view/TouchParser.cpp ucl/source/gui/WidgetItem.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/Gallery.cpp gallery/model/impl/helpers.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/presenters/base/Page.cpp gallery/model/MediaItem.cpp gallery/view/helpers.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/mvp/ListItemPresenter.cpp ucl/source/gui/NaviItem.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/appfw/helpers.cpp ucl/source/gui/EdjeWidget.cpp \r
\r
# EDC Sources\r
USER_EDCS = \r