summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/data/app.h1
-rw-r--r--packaging/org.tizen.apps.spec2
-rw-r--r--src/data/app.c17
-rw-r--r--src/view/view_base.c5
4 files changed, 24 insertions, 1 deletions
diff --git a/include/data/app.h b/include/data/app.h
index d71e112..b0d9e76 100644
--- a/include/data/app.h
+++ b/include/data/app.h
@@ -34,6 +34,7 @@ char *get_pkg_id(struct app_data *adata);
char *get_app_name(struct app_data *adata);
char *get_app_icon(struct app_data *adata);
char *get_pkg_type(struct app_data *adata);
+bool get_app_removable(struct app_data *adata);
bool get_app_favorite(struct app_data *adata, bool *isfavorite);
bool set_app_favorite(struct app_data *adata, bool isfavorite);
bool get_app_icon_bg_color(struct app_data *adata,
diff --git a/packaging/org.tizen.apps.spec b/packaging/org.tizen.apps.spec
index 205b620..bf302e7 100644
--- a/packaging/org.tizen.apps.spec
+++ b/packaging/org.tizen.apps.spec
@@ -1,6 +1,6 @@
Name: org.tizen.apps
Summary: Apps application for Tizen TV based on AirFlex UX
-Version: 0.2
+Version: 0.3.1
Release: 1
Group: Applications/Core Applications
License: Apache-2.0
diff --git a/src/data/app.c b/src/data/app.c
index fb05b3a..7f6b00c 100644
--- a/src/data/app.c
+++ b/src/data/app.c
@@ -29,6 +29,7 @@ struct app_data {
char *name;
char *icon;
char *pkgtype;
+ bool removable;
struct color_data icon_bg;
struct color_data text_bg;
};
@@ -48,6 +49,7 @@ static int _get_app_data_foreach(pkgmgrinfo_appinfo_h handle, void *data)
char *appid, *pkgid, *name, *icon, *pkgtype;
pkgmgrinfo_pkginfo_h pkginfo_h;
bool nodisplay;
+ bool removable = true;
if (!data)
return -1;
@@ -76,6 +78,9 @@ static int _get_app_data_foreach(pkgmgrinfo_appinfo_h handle, void *data)
&pkginfo_h) != PMINFO_R_OK)
return 0;
+ if (pkgmgrinfo_pkginfo_is_removable(pkginfo_h, &removable) != PMINFO_R_OK)
+ return 0;
+
if (pkgmgrinfo_pkginfo_get_type(pkginfo_h, &pkgtype) != PMINFO_R_OK) {
pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo_h);
return 0;
@@ -113,6 +118,8 @@ static int _get_app_data_foreach(pkgmgrinfo_appinfo_h handle, void *data)
if (pkgtype)
adata->pkgtype = strdup(pkgtype);
+ adata->removable = removable;
+
*list = eina_list_append(*list, adata);
OUT:
@@ -181,6 +188,16 @@ char *get_pkg_type(struct app_data *adata)
return adata->pkgtype;
}
+bool get_app_removable(struct app_data *adata)
+{
+ if (!adata) {
+ _ERR("Invalid argument.");
+ return NULL;
+ }
+
+ return adata->removable;
+}
+
bool get_app_favorite(struct app_data *adata, bool *isfavorite)
{
int r;
diff --git a/src/view/view_base.c b/src/view/view_base.c
index 21f3247..9242919 100644
--- a/src/view/view_base.c
+++ b/src/view/view_base.c
@@ -155,6 +155,11 @@ static void _draw_uninstall_popup(struct _priv *priv)
return;
}
+ if (get_app_removable(adata) == false) {
+ utils_add_notify(priv->base, "This application is not removable", STYLE_TOAST, STYLE_TOAST, 3);
+ return;
+ }
+
name = get_app_name(adata);
if (!name)
return;