aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/application/Application.cpp3
-rw-r--r--xbmc/interfaces/builtins/AndroidBuiltins.cpp21
-rw-r--r--xbmc/platform/android/activity/XBMCApp.cpp9
-rw-r--r--xbmc/platform/android/activity/XBMCApp.h3
4 files changed, 27 insertions, 9 deletions
diff --git a/xbmc/application/Application.cpp b/xbmc/application/Application.cpp
index 809b1c7e1d..efd04d613f 100644
--- a/xbmc/application/Application.cpp
+++ b/xbmc/application/Application.cpp
@@ -1521,7 +1521,8 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
pMsg->params.size() > 4 ? pMsg->params[4] : "",
pMsg->params.size() > 5 ? pMsg->params[5] : "",
pMsg->params.size() > 6 ? pMsg->params[6] : "",
- pMsg->params.size() > 7 ? pMsg->params[7] : "");
+ pMsg->params.size() > 7 ? pMsg->params[7] : "",
+ pMsg->params.size() > 8 ? pMsg->params[8] : "");
}
#endif
}
diff --git a/xbmc/interfaces/builtins/AndroidBuiltins.cpp b/xbmc/interfaces/builtins/AndroidBuiltins.cpp
index 3a424a1b19..17f4076e8e 100644
--- a/xbmc/interfaces/builtins/AndroidBuiltins.cpp
+++ b/xbmc/interfaces/builtins/AndroidBuiltins.cpp
@@ -21,6 +21,7 @@
* params[5] = extras (optional)
* params[6] = action (optional)
* params[7] = category (optional)
+ * params[8] = className (optional)
*/
static int LaunchAndroidActivity(const std::vector<std::string>& params)
{
@@ -42,21 +43,31 @@ static int LaunchAndroidActivity(const std::vector<std::string>& params)
/// Function,
/// Description }
/// \table_row2_l{
-/// <b>`StartAndroidActivity(package\,[intent\,dataType\,dataURI])`</b>
+/// <b>`StartAndroidActivity(package\,[intent\,dataType\,dataURI\,flags\,extras\,action\,category\,className])`</b>
/// ,
/// Launch an Android native app with the given package name. Optional parms
-/// (in order): intent\, dataType\, dataURI.
+/// (in order): intent\, dataType\, dataURI\, flags\, extras\, action\,
+/// category\, className.
/// @param[in] package
/// @param[in] intent (optional)
/// @param[in] datatype (optional)
/// @param[in] dataURI (optional)
+/// @param[in] flags (optional)
+/// @param[in] extras (optional)
+/// @param[in] action (optional)
+/// @param[in] category (optional)
+/// @param[in] className (optional)
+/// <p><hr>
+/// @skinning_v20 Added parameters `flags`\,`extras`\,`action`\,`category`\,`className`.
+/// <p>
/// }
/// \table_end
///
CBuiltins::CommandMap CAndroidBuiltins::GetOperations() const
{
- return {
- {"startandroidactivity", {"Launch an Android native app with the given package name. Optional parms (in order): intent, dataType, dataURI.", 1, LaunchAndroidActivity}}
- };
+ return {{"startandroidactivity",
+ {"Launch an Android native app with the given package name. Optional parms (in order): "
+ "intent, dataType, dataURI, flags, extras, action, category, className.",
+ 1, LaunchAndroidActivity}}};
}
diff --git a/xbmc/platform/android/activity/XBMCApp.cpp b/xbmc/platform/android/activity/XBMCApp.cpp
index c1dcd7fe1a..e241db2d50 100644
--- a/xbmc/platform/android/activity/XBMCApp.cpp
+++ b/xbmc/platform/android/activity/XBMCApp.cpp
@@ -971,7 +971,7 @@ std::vector<androidPackage> CXBMCApp::GetApplications() const
return m_applications;
}
-// Note intent, dataType, dataURI, action, category, flags, extras all default to ""
+// Note intent, dataType, dataURI, action, category, flags, extras, className all default to ""
bool CXBMCApp::StartActivity(const std::string& package,
const std::string& intent,
const std::string& dataType,
@@ -979,7 +979,8 @@ bool CXBMCApp::StartActivity(const std::string& package,
const std::string& flags,
const std::string& extras,
const std::string& action,
- const std::string& category)
+ const std::string& category,
+ const std::string& className)
{
CLog::LogF(LOGDEBUG, "package: {}", package);
CLog::LogF(LOGDEBUG, "intent: {}", intent);
@@ -989,6 +990,7 @@ bool CXBMCApp::StartActivity(const std::string& package,
CLog::LogF(LOGDEBUG, "extras: {}", extras);
CLog::LogF(LOGDEBUG, "action: {}", action);
CLog::LogF(LOGDEBUG, "category: {}", category);
+ CLog::LogF(LOGDEBUG, "className: {}", className);
CJNIIntent newIntent = intent.empty() ?
GetPackageManager().getLaunchIntentForPackage(package) :
@@ -1057,6 +1059,9 @@ bool CXBMCApp::StartActivity(const std::string& package,
}
newIntent.setPackage(package);
+ if (!className.empty())
+ newIntent.setClassName(package, className);
+
startActivity(newIntent);
if (xbmc_jnienv()->ExceptionCheck())
{
diff --git a/xbmc/platform/android/activity/XBMCApp.h b/xbmc/platform/android/activity/XBMCApp.h
index fe7d21a200..fa2b516746 100644
--- a/xbmc/platform/android/activity/XBMCApp.h
+++ b/xbmc/platform/android/activity/XBMCApp.h
@@ -166,7 +166,8 @@ public:
const std::string& flags = std::string(),
const std::string& extras = std::string(),
const std::string& action = std::string(),
- const std::string& category = std::string());
+ const std::string& category = std::string(),
+ const std::string& className = std::string());
std::vector<androidPackage> GetApplications() const;
/*!