The open source OpenXR runtime
at main 95 lines 3.0 kB view raw
1// Copyright 2020-2023, Collabora, Ltd. 2// SPDX-License-Identifier: BSL-1.0 3// Author: Rylie Pavlik <rylie.pavlik@collabora.com> 4// Inline implementations: do not include on its own! 5 6#pragma once 7 8#include "android.content.h" 9#include "java.util.h" 10#include <string> 11 12namespace wrap { 13namespace android::content::pm { 14inline os::Bundle PackageItemInfo::getMetaData() const { 15 assert(!isNull()); 16 return get(Meta::data().metaData, object()); 17} 18 19inline std::string PackageItemInfo::getName() const { 20 assert(!isNull()); 21 return get(Meta::data().name, object()); 22} 23 24inline std::string PackageItemInfo::getPackageName() const { 25 assert(!isNull()); 26 return get(Meta::data().packageName, object()); 27} 28 29inline ApplicationInfo ComponentInfo::getApplicationInfo() const { 30 assert(!isNull()); 31 return get(Meta::data().applicationInfo, object()); 32} 33 34inline std::string ApplicationInfo::getNativeLibraryDir() const { 35 assert(!isNull()); 36 return get(Meta::data().nativeLibraryDir, object()); 37} 38 39inline std::string ApplicationInfo::getPublicSourceDir() const { 40 assert(!isNull()); 41 return get(Meta::data().publicSourceDir, object()); 42} 43 44inline ApplicationInfo PackageInfo::getApplicationInfo() const { 45 assert(!isNull()); 46 return get(Meta::data().applicationInfo, object()); 47} 48 49inline std::string PackageInfo::getPackageName() const { 50 assert(!isNull()); 51 return get(Meta::data().packageName, object()); 52} 53 54inline std::string Signature::toCharsString() const { 55 assert(!isNull()); 56 return object().call<std::string>(Meta::data().toCharsString); 57} 58 59inline Signature PackageInfo::getSignature() const { 60 assert(!isNull()); 61 jobject signatures_obj = jni::env()->GetObjectField(object().getHandle(), Meta::data().signaturesId); 62 jobjectArray signatures_array = reinterpret_cast<jobjectArray>(signatures_obj); 63 jobject signature_obj = jni::env()->GetObjectArrayElement(signatures_array, 0); 64 return Signature(signature_obj); 65} 66 67inline ServiceInfo ResolveInfo::getServiceInfo() const { 68 assert(!isNull()); 69 return get(Meta::data().serviceInfo, object()); 70} 71 72inline PackageInfo PackageManager::getPackageInfo(std::string const &name, 73 int32_t flags) { 74 assert(!isNull()); 75 return PackageInfo( 76 object().call<jni::Object>(Meta::data().getPackageInfo, name, flags)); 77} 78 79inline ApplicationInfo 80PackageManager::getApplicationInfo(std::string const &packageName, 81 int32_t flags) { 82 assert(!isNull()); 83 return ApplicationInfo(object().call<jni::Object>( 84 Meta::data().getApplicationInfo, packageName, flags)); 85} 86 87inline java::util::List 88PackageManager::queryIntentServices(Intent const &intent, int32_t flags) { 89 assert(!isNull()); 90 return java::util::List(object().call<jni::Object>( 91 Meta::data().queryIntentServices, intent.object(), flags)); 92} 93 94} // namespace android::content::pm 95} // namespace wrap