diff options
-rw-r--r-- | xbmc/application/Application.cpp | 3 | ||||
-rw-r--r-- | xbmc/interfaces/builtins/AndroidBuiltins.cpp | 21 | ||||
-rw-r--r-- | xbmc/platform/android/activity/XBMCApp.cpp | 9 | ||||
-rw-r--r-- | xbmc/platform/android/activity/XBMCApp.h | 3 |
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; /*! |