1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/uriloader/exthandler/android/nsAndroidHandlerApp.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,83 @@ 1.4 +/* -*- Mode: c++; c-basic-offset: 2; tab-width: 20; indent-tabs-mode: nil; -*- 1.5 + * This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#include "nsAndroidHandlerApp.h" 1.10 +#include "AndroidBridge.h" 1.11 + 1.12 +using namespace mozilla::widget::android; 1.13 + 1.14 + 1.15 +NS_IMPL_ISUPPORTS(nsAndroidHandlerApp, nsIHandlerApp, nsISharingHandlerApp) 1.16 + 1.17 +nsAndroidHandlerApp::nsAndroidHandlerApp(const nsAString& aName, 1.18 + const nsAString& aDescription, 1.19 + const nsAString& aPackageName, 1.20 + const nsAString& aClassName, 1.21 + const nsACString& aMimeType, 1.22 + const nsAString& aAction) : 1.23 +mName(aName), mDescription(aDescription), mPackageName(aPackageName), 1.24 + mClassName(aClassName), mMimeType(aMimeType), mAction(aAction) 1.25 +{ 1.26 +} 1.27 + 1.28 +nsAndroidHandlerApp::~nsAndroidHandlerApp() 1.29 +{ 1.30 +} 1.31 + 1.32 +NS_IMETHODIMP 1.33 +nsAndroidHandlerApp::GetName(nsAString & aName) 1.34 +{ 1.35 + aName.Assign(mName); 1.36 + return NS_OK; 1.37 +} 1.38 + 1.39 +NS_IMETHODIMP 1.40 +nsAndroidHandlerApp::SetName(const nsAString & aName) 1.41 +{ 1.42 + mName.Assign(aName); 1.43 + return NS_OK; 1.44 +} 1.45 + 1.46 +NS_IMETHODIMP 1.47 +nsAndroidHandlerApp::GetDetailedDescription(nsAString & aDescription) 1.48 +{ 1.49 + aDescription.Assign(mDescription); 1.50 + return NS_OK; 1.51 +} 1.52 + 1.53 +NS_IMETHODIMP 1.54 +nsAndroidHandlerApp::SetDetailedDescription(const nsAString & aDescription) 1.55 +{ 1.56 + mDescription.Assign(aDescription); 1.57 + 1.58 + return NS_OK; 1.59 +} 1.60 + 1.61 +NS_IMETHODIMP 1.62 +nsAndroidHandlerApp::Equals(nsIHandlerApp *aHandlerApp, bool *aRetval) 1.63 +{ 1.64 + nsCOMPtr<nsAndroidHandlerApp> aApp = do_QueryInterface(aHandlerApp); 1.65 + *aRetval = aApp && aApp->mName.Equals(mName) && 1.66 + aApp->mDescription.Equals(mDescription); 1.67 + return NS_OK; 1.68 +} 1.69 + 1.70 +NS_IMETHODIMP 1.71 +nsAndroidHandlerApp::LaunchWithURI(nsIURI *aURI, nsIInterfaceRequestor *aWindowContext) 1.72 +{ 1.73 + nsCString uriSpec; 1.74 + aURI->GetSpec(uriSpec); 1.75 + return mozilla::widget::android::GeckoAppShell::OpenUriExternal 1.76 + (NS_ConvertUTF8toUTF16(uriSpec), NS_ConvertUTF8toUTF16(mMimeType), mPackageName, mClassName, mAction) ? 1.77 + NS_OK : NS_ERROR_FAILURE; 1.78 +} 1.79 + 1.80 +NS_IMETHODIMP 1.81 +nsAndroidHandlerApp::Share(const nsAString & data, const nsAString & title) 1.82 +{ 1.83 + return mozilla::widget::android::GeckoAppShell::OpenUriExternal(data, NS_ConvertUTF8toUTF16(mMimeType), 1.84 + mPackageName, mClassName, mAction) ? NS_OK : NS_ERROR_FAILURE; 1.85 +} 1.86 +