if(appid.length() > PACKAGE_ID_LENGTH) {
m_installerContext.widgetConfig.tzPkgid =
appid.substr(0, PACKAGE_ID_LENGTH);
- } //else: this means appId is broken anyway
+ } else {
+ //old version appid only has 10byte random character is able to install for a while.
+ //this case appid equal pkgid.
+ m_installerContext.widgetConfig.tzPkgid =
+ *configInfo.tizenAppId;
+ shouldMakeAppid = true;
+ }
}
} else {
shouldMakeAppid = true;
LogDebug("Regcomp failed");
}
+ LogDebug("Name : " << name);
if (!name || (regexec(®x, DPL::ToUTF8String(*name).c_str(),
static_cast<size_t>(0), NULL, 0) != REG_NOERROR)) {
// TODO : generate name move to wrt-commons
* limitations under the License.
*/
+#include <regex.h>
#include <widget_uninstall/job_widget_uninstall.h>
#include <widget_uninstall/widget_uninstall_errors.h>
#include <widget_uninstall/task_check.h>
using namespace WrtDB;
namespace { //anonymous
+const char* REG_TIZEN_PKGID_PATTERN = "^[a-zA-Z0-9]{10}$";
class UninstallerTaskFail :
public DPL::TaskDecl<UninstallerTaskFail>
{
m_context.removeFinished = false;
m_context.uninstallStep = UninstallerContext::UNINSTALL_START;
m_context.job = this;
- m_context.tzAppid = tizenAppId;
m_context.isExternalWidget = getExternalWidgetFlag();
Try
{
- WrtDB::WidgetDAOReadOnly dao(DPL::FromUTF8String(tizenAppId));
+ regex_t regx;
+ if(regcomp(®x, REG_TIZEN_PKGID_PATTERN, REG_NOSUB | REG_EXTENDED)!=0){
+ LogDebug("Regcomp failed");
+ }
+
+ if ((regexec(®x, tizenAppId.c_str(),
+ static_cast<size_t>(0), NULL, 0) == REG_NOERROR)) {
+ TizenAppId appid =
+ WrtDB::WidgetDAOReadOnly::getTzAppId(
+ DPL::FromUTF8String(tizenAppId));
+ LogDebug("Get appid from pkgid : " << appid);
+ m_context.tzAppid = DPL::ToUTF8String(appid);
+ } else {
+ m_context.tzAppid = tizenAppId;
+ }
+ WrtDB::WidgetDAOReadOnly dao(DPL::FromUTF8String(m_context.tzAppid));
m_context.tzPkgid = DPL::ToUTF8String(dao.getTizenPkgId());
m_context.locations = WidgetLocation(m_context.tzPkgid);
m_context.locations->registerAppid(m_context.tzAppid);