#!/bin/bash
# Copyright (C) 2013 Intel Corporation
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of works must retain the original copyright notice, this list
#   of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the original copyright notice,
#   this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors
#   may be used to endorse or promote products derived from this work without
#   specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Author:
#        Yue, jianhui <jianhuix.a.yue@intel.com>


function func_install()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    pkgcmd -i -t wgt -q -p $PACKAGENAME
    App_ID=`wrt-launcher -l|grep -w $APP_NAME|awk '{print $NF}'`
    if [ -z $App_ID ];then
      echo "The installation is failed"
      return 1
    else
      echo "The widget is installed successfully"
      return 0
    fi
}

function func_uninstall()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    PKG_ID=`wrt-launcher -l|grep -w $APP_NAME|awk '{print $(NF-1)}'`
    if [ -z $PKG_ID ];then
      echo "The widget is not installed"
      return 1
    fi
    pkgcmd -u -q -t wgt -n $PKG_ID
    WIDGETNAME=`wrt-launcher -l|grep -w $APP_NAME|awk '{print $NF}'`
    if [ -z $WIDGETNAME ];then
      echo "The widget is uninstalled successfully"
      return 0
    else
      echo "uninstall widget failed"
      return 1
    fi
}

function func_launch()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    WIDGETNAME=`wrt-launcher -l|grep -w $APP_NAME|awk '{print $NF}'`
    wrt-launcher -s $WIDGETNAME
    sleep 60
    App_Status=`wrt-launcher -r $WIDGETNAME | grep -w "not running"`
    if [ -z $App_Status ];then
      echo "The widget is launched successfully"
      return 0
    else
      echo "The widget is not launched"
      return 1
    fi
}

function func_launch_other()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    APP_WIDGETNAME=`wrt-launcher -l|grep -w $APP_NAME|awk '{print $NF}'`
    wrt-launcher -s $APP_WIDGETNAME
    sleep 60
    if [ "$APP_NAME" = "lifecycle-launch-installed-app" ];then
        WIDGETNAME = "wrt3lhr012.LifecycleHideRunningApp"
        App_Status=`wrt-launcher -r $WIDGETNAME | grep -w "not running"`
    elif [ "$APP_NAME" = "lifecycle-launch-removed-app" ];then
        WIDGETNAME = "wrt3lhr012.LifecycleHideRunningApp"
        App_Status=`wrt-launcher -r $WIDGETNAME | grep -w "failed"`
    fi
    if [ -z $App_Status ];then
      echo "The widget is launched successfully"
      return 0
    else
      echo "The widget is not launched"
      return 1
    fi
}
