[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / platform / android / filesystem / AndroidAppDirectory.cpp
blobc2af2aae47ede249b34b12c2cdb3de47af7ce358
1 /*
2 * Copyright (C) 2012-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "AndroidAppDirectory.h"
11 #include "CompileInfo.h"
12 #include "FileItem.h"
13 #include "URL.h"
14 #include "filesystem/File.h"
15 #include "utils/StringUtils.h"
16 #include "utils/URIUtils.h"
17 #include "utils/log.h"
19 #include "platform/android/activity/XBMCApp.h"
21 #include <vector>
23 using namespace XFILE;
25 bool CAndroidAppDirectory::GetDirectory(const CURL& url, CFileItemList &items)
27 std::string dirname = url.GetFileName();
28 URIUtils::RemoveSlashAtEnd(dirname);
29 CLog::Log(LOGDEBUG, "CAndroidAppDirectory::GetDirectory: {}", dirname);
30 std::string appName = CCompileInfo::GetAppName();
31 StringUtils::ToLower(appName);
32 std::string className = CCompileInfo::GetPackage();
34 if (dirname == "apps")
36 const std::vector<androidPackage> applications = CXBMCApp::Get().GetApplications();
37 if (applications.empty())
39 CLog::Log(LOGERROR, "CAndroidAppDirectory::GetDirectory Application lookup listing failed");
40 return false;
42 for (auto& i : applications)
44 if (i.packageName == className.c_str())
45 continue;
46 CFileItemPtr pItem(new CFileItem(i.packageName));
47 pItem->m_bIsFolder = false;
48 std::string path =
49 StringUtils::Format("androidapp://{}/{}/{}", url.GetHostName(), dirname, i.packageName);
50 pItem->SetPath(path);
51 pItem->SetLabel(i.packageLabel);
52 pItem->SetArt("thumb", path+".png");
53 pItem->m_dwSize = -1; // No size
54 items.Add(pItem);
56 return true;
59 CLog::Log(LOGERROR, "CAndroidAppDirectory::GetDirectory Failed to open {}", url.Get());
60 return false;