public AndroidJavaObject ToAjo() { var ajc = new AndroidJavaClass("im.getsocial.sdk.promocodes.PromoCodeBuilder"); var ajo = _code == null?ajc.CallStaticAJO("createRandomCode") : ajc.CallStaticAJO("createWithCode", _code); ajo.CallAJO("withMaxClaimCount", (int)_maxClaimCount) .CallAJO("addData", _data.ToJavaHashMap()) .CallAJO("withTimeLimit", DateToAjo(_startDate), DateToAjo(_endDate)); return(ajo); }
public AndroidJavaObject ToAJO() { if (GoogleMapUtils.IsNotAndroid) { return(null); } switch (_descriptorType) { case ImageDescriptorType.AssetName: using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass)) { try { if (IsAppBinarySplit) { var bitmap = ExpansionFileUtilsClass.AJCCallStaticOnce <AndroidJavaObject>("getBitmap", JniToolkitUtils.Activity, _assetName); return(c.CallStaticAJO("fromBitmap", bitmap)); } return(c.CallStaticAJO("fromAsset", _assetName)); } catch (Exception e) { Debug.LogError("Failed to load bitmap from expansion file: " + _assetName); Debug.LogException(e); return(c.CallStaticAJO("defaultMarker")); } } case ImageDescriptorType.DefaultWithHue: using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass)) { return(c.CallStaticAJO("defaultMarker", _hue)); } case ImageDescriptorType.Texture2D: using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass)) { return(c.CallStaticAJO("fromBitmap", _texure.Texture2DToAndroidBitmap())); } default: using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass)) { return(c.CallStaticAJO("defaultMarker")); } } }
AndroidJavaObject ToAJO() { var activityFeedBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.communities.ActivityFeedViewBuilder"); var activityFeedBuilderAJO = activityFeedBuilderAJOClass.CallStaticAJO("create", AndroidAJOConverter.Convert(_query, "im.getsocial.sdk.communities.ActivitiesQuery")); if (_actionListener != null) { activityFeedBuilderAJO.CallAJO("setActionListener", new ActionListenerProxy(_actionListener)); } if (_onAvatarClickListener != null) { activityFeedBuilderAJO.CallAJO("setAvatarClickListener", new AvatarClickListenerProxy(_onAvatarClickListener)); } if (_onMentionClickListener != null) { activityFeedBuilderAJO.CallAJO("setMentionClickListener", new MentionClickListenerProxy(_onMentionClickListener)); } if (_tagClickListener != null) { activityFeedBuilderAJO.CallAJO("setTagClickListener", new TagClickListenerProxy(_tagClickListener)); } return(activityFeedBuilderAJO); }
public static AndroidJavaObject Parse(string uriString) { using (var uriClass = new AndroidJavaClass(C.UriClass)) { return(uriClass.CallStaticAJO("parse", uriString)); } }
public AndroidJavaObject ToAjo() { var notificationContentClass = new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationContent"); var notificationContent = notificationContentClass.CallStaticAJO("notificationWithText", _text) .CallAJO("withTitle", _title) .CallAJO("withTemplateName", _templateName) .CallAJO("addTemplatePlaceholders", _templatePlaceholders.ToJavaHashMap()) .CallAJO("addActionButtons", _actionButtons.ConvertAll(item => item.ToAjo()).ToJavaList()); if (_action != null) { notificationContent.CallAJO("withAction", _action.ToAjo()); } if (_mediaAttachment != null) { notificationContent.CallAJO("withMediaAttachment", _mediaAttachment.ToAjo()); } if (_customization != null) { notificationContent.CallAJO("withCustomization", _customization.ToAjo()); } if (_badge != null) { notificationContent.CallAJO("withBadge", _badge.ToAjo()); } return(notificationContent); }
public static AndroidJavaObject ClassForName(string className) { using (var clazz = new AndroidJavaClass(C.JavaLangClass)) { return(clazz.CallStaticAJO("forName", className)); } }
public static AndroidJavaObject GetBroadcast(AndroidJavaObject intent, int id) { using (var pic = new AndroidJavaClass(C.AndroidAppPendingIntent)) { return(pic.CallStaticAJO("getBroadcast", AGUtils.Activity, id, intent, FLAG_UPDATE_CURRENT)); } }
public static AndroidJavaObject GetActivity(AndroidJavaObject intent) { using (var pic = new AndroidJavaClass(PendingIntentClass)) { return(pic.CallStaticAJO("getActivity", AGUtils.Activity, 0, intent, FLAG_UPDATE_CURRENT)); } }
public static void OpenCalendarForDate(DateTime dateTime) { if (AGUtils.IsNotAndroid()) { return; } // https://developer.android.com/guide/topics/providers/calendar-provider.html#intents long millis = dateTime.ToMillisSinceEpoch(); using (var calendarContractClass = new AndroidJavaClass(C.AndroidProviderCalendarContract)) { using (var contentUri = calendarContractClass.GetStatic <AndroidJavaObject>("CONTENT_URI")) { using (var contentUriBuilder = contentUri.CallAJO("buildUpon")) { contentUriBuilder.CallAJO("appendPath", "time"); using (var conentUrisClass = new AndroidJavaClass(C.AndroidContentContentUris)) { conentUrisClass.CallStaticAJO("appendId", contentUriBuilder, millis); } var uri = contentUriBuilder.CallAJO("build"); var intent = new AndroidIntent(AndroidIntent.ActionView).SetData(uri); AGUtils.StartActivity(intent.AJO); } } } }
public static AndroidJavaObject FromFile(string filePath) { using (var uriClass = new AndroidJavaClass(C.UriClass)) { return(uriClass.CallStaticAJO("fromFile", AGUtils.NewJavaFile(filePath))); } }
AndroidJavaObject ToAJO() { var activityFeedBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.communities.ActivityDetailsViewBuilder"); var activityDetailsBuilderAJO = activityFeedBuilderAJOClass.CallStaticAJO("create", _activityId); activityDetailsBuilderAJO.CallAJO("setShowActivityFeedView", _showActivityFeedView); if (_actionListener != null) { activityDetailsBuilderAJO.CallAJO("setActionListener", new ActionListenerProxy(_actionListener)); } if (_onAvatarClickListener != null) { activityDetailsBuilderAJO.CallAJO("setAvatarClickListener", new AvatarClickListenerProxy(_onAvatarClickListener)); } if (_onMentionClickListener != null) { activityDetailsBuilderAJO.CallAJO("setMentionClickListener", new MentionClickListenerProxy(_onMentionClickListener)); } if (_tagClickListener != null) { activityDetailsBuilderAJO.CallAJO("setTagClickListener", new TagClickListenerProxy(_tagClickListener)); } if (_commentId != null) { activityDetailsBuilderAJO.CallAJO("setCommentId", _commentId); } return(activityDetailsBuilderAJO); }
private static AndroidJavaObject ToAndroidJavaObject <T>(T type, string javaClass) where T : IConvertible { var reasonClass = new AndroidJavaClass(javaClass); var values = reasonClass.CallStaticAJO("values"); return(new AndroidJavaClass("java.lang.reflect.Array").CallStaticAJO("get", values, type)); }
public AndroidJavaObject ToAjo() { var queryClass = new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationsCountQuery"); var query = _isRead.HasValue ? queryClass.CallStaticAJO(_isRead.Value ? "read" : "unread") : queryClass.CallStaticAJO("readAndUnread"); if (_types.Length > 0) { var types = Array.ConvertAll(_types, type => (int)type); query.CallAJO("ofTypes", types); } return(query); }
static void TurnOnOld() { if (_camera != null) { Debug.LogWarning("Flashlight is already on"); return; } try { AGUtils.RunOnUiThread(() => { using (var camAJC = new AndroidJavaClass(C.AndroidHardwareCamera)) { var cam = camAJC.CallStaticAJO("open"); var camParams = cam.CallAJO("getParameters"); camParams.Call("setFlashMode", CameraParameters_FLASH_MODE_TORCH); cam.Call("setParameters", camParams); cam.Call("startPreview"); _camera = cam; } }); } catch (Exception e) { if (Debug.isDebugBuild) { Debug.Log("Could not enable flashlight:" + e.Message); } } }
public static AndroidJavaObject FromFile(string filePath) { using (var uriClass = new AndroidJavaClass(UriClass)) { return(uriClass.CallStaticAJO("fromFile", new AndroidJavaObject("java.io.File", filePath))); } }
public static AndroidJavaObject Texture2DToAndroidBitmap(Texture2D tex2D, ImageFormat format = ImageFormat.PNG) { byte[] encoded = tex2D.Encode(format); using (var bf = new AndroidJavaClass("android.graphics.BitmapFactory")) { return(bf.CallStaticAJO("decodeByteArray", encoded, 0, encoded.Length)); } }
public AndroidJavaObject ToAjo() { var activitiesQueryClass = new AndroidJavaClass("im.getsocial.sdk.activities.ActivitiesQuery"); var activitiesQuery = _type == Type.Post ? activitiesQueryClass.CallStaticAJO("postsForFeed", _feed) : activitiesQueryClass.CallStaticAJO("commentsToPost", _parentActivityId); activitiesQuery.CallAJO("withLimit", _limit); activitiesQuery.CallAJO("filterByUser", _filterUserId); activitiesQuery.CallAJO("friendsFeed", _isFriendsFeed); activitiesQuery.CallAJO("withTags", _tags.ToJavaStringArray()); if (_filter != Filter.NoFilter) { activitiesQuery.CallAJO("withFilter", _filter.ToAndroidJavaObject(), _filteringActivityId); } return(activitiesQuery); }
public AndroidJavaObject ToAjo() { var notificationCustomizationClass = new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationCustomization"); var notificationCustomization = notificationCustomizationClass.CallStaticAJO("withBackgroundImageConfiguration", BackgroundImageConfiguration) .CallAJO("withTitleColor", TitleColor) .CallAJO("withTextColor", TextColor); return(notificationCustomization); }
public AndroidJavaObject ToAjo() { var usersQueryClass = new AndroidJavaClass("im.getsocial.sdk.invites.ReferralUsersQuery"); var usersQueryInstance = usersQueryClass.CallStaticAJO("usersForEvent", _eventName); usersQueryInstance.CallAJO("setLimit", _limit); usersQueryInstance.CallAJO("setOffset", _offset); return(usersQueryInstance); }
static AndroidJavaObject CreateCameraUpdateAJO(string methodName, params object[] args) { if (GoogleMapUtils.IsNotAndroid) { return(null); } using (var c = new AndroidJavaClass(CameraUpdateFactoryClass)) { return(c.CallStaticAJO(methodName, args)); } }
public AndroidJavaObject ToAjo() { var queryClass = new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationsQuery"); var query = _isRead.HasValue ? queryClass.CallStaticAJO(_isRead.Value ? "read" : "unread") : queryClass.CallStaticAJO("readAndUnread"); query.CallAJO("withLimit", _limit); if (_types.Length > 0) { var types = Array.ConvertAll(_types, type => (int)type); query.CallAJO("ofTypes", types); } if (_filter != Filter.NoFilter) { query.CallAJO("withFilter", _filter.ToAndroidJavaObject(), _notificationId); } return(query); }
AndroidJavaObject ToAJO() { var clazz = new AndroidJavaClass("im.getsocial.sdk.ui.pushnotifications.NotificationCenterViewBuilder"); var notificationCenterViewBuilderAJO = clazz.CallStaticAJO("create", AndroidAJOConverter.Convert(_query, "im.getsocial.sdk.notifications.NotificationsQuery")); if (_notificationClickListener != null) { notificationCenterViewBuilderAJO.CallAJO("setNotificationClickListener", new NotificationClickListenerProxy(_notificationClickListener)); } return(notificationCenterViewBuilderAJO); }
/// <summary> /// Shows the toast with specified text. /// </summary> /// <param name="text">Text to display on toast.</param> /// <param name="length">Duration to show.</param> public static void ShowToast(string text, ToastLength length = ToastLength.Short) { if (AGUtils.IsNotAndroidCheck()) { return; } AGUtils.RunOnUiThread(() => { using (var toast = new AndroidJavaClass(C.AndroidWidgetToast)) { var toastInstance = toast.CallStaticAJO("makeText", AGUtils.Activity, text, (int)length); toastInstance.Call("show"); } } ); }
AndroidJavaObject ToAJO() { var invitesBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.invites.InvitesViewBuilder"); var invitesBuilderAJO = invitesBuilderAJOClass.CallStaticAJO("create"); if (_inviteContent != null) { invitesBuilderAJO.CallAJO("setCustomInviteContent", AndroidAJOConverter.Convert(_inviteContent, "im.getsocial.sdk.invites.InviteContent")); } if (_onInviteComplete != null) { invitesBuilderAJO.CallAJO("setInviteCallback", new InviteUiCallbackProxy(_onInviteComplete, _onInviteCancel, _onInviteFailure)); } return(invitesBuilderAJO); }
public static AndroidJavaObject GetUriFromFilePath(string saveFilePath) { AndroidJavaObject uri; if (AGDeviceInfo.SDK_INT >= AGDeviceInfo.VersionCodes.N) { // Reference: http://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed using (var c = new AndroidJavaClass(FileProviderClass)) { var provider = AGDeviceInfo.GetApplicationPackage() + ".multipicker.fileprovider"; uri = c.CallStaticAJO("getUriForFile", AGUtils.Activity, provider, AGUtils.NewJavaFile(saveFilePath)); } } else { uri = AndroidUri.FromFile(saveFilePath); } return(uri); }
/// <summary> /// /// Turns on the camera flashlight if available /// /// Required permissions in manifest: /// <uses-permission android:name="android.permission.CAMERA" /> /// <uses-feature android:name="android.hardware.camera" /> /// /// <uses-permission android:name="android.permission.FLASHLIGHT"/> /// <uses-feature android:name="android.hardware.camera.flash" android:required="false" /> /// </summary> public static void Enable() { if (AGUtils.IsNotAndroidCheck()) { return; } if (!HasFlashlight()) { Debug.LogWarning("This device does not have a flashlight"); return; } if (_camera != null) { Debug.LogWarning("Flashlight is already on"); return; } try { AGUtils.RunOnUiThread(() => { using (var camAJC = new AndroidJavaClass(CameraClass)) { var cam = camAJC.CallStaticAJO("open"); var camParams = cam.CallAJO("getParameters"); camParams.Call("setFlashMode", CameraParameters_FLASH_MODE_TORCH); cam.Call("setParameters", camParams); cam.Call("startPreview"); _camera = cam; } }); } catch (Exception e) { if (Debug.isDebugBuild) { Debug.Log("Could not enable flashlight:" + e.Message); } } }
public static AndroidJavaObject SaveShareImageToExternalStorage(Texture2D tex2D) { // aTODO update : http://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed string saveFilePath = SaveImageToPictures(tex2D, GoodiesShareImageFileName, GoodiesFileFolder, ImageFormat.PNG); AndroidJavaObject uri; if (AGDeviceInfo.SDK_INT >= AGDeviceInfo.VersionCodes.N) { using (var c = new AndroidJavaClass(FileProviderClass)) { var provider = AGDeviceInfo.GetApplicationPackage() + ".multipicker.fileprovider"; uri = c.CallStaticAJO("getUriForFile", AGUtils.Activity, provider, AGUtils.NewJavaFile(saveFilePath)); } } else { uri = AndroidUri.FromFile(saveFilePath); } return(uri); }
static string GetFileDirectory(string methodName, params object[] args) { if (AGUtils.IsNotAndroidCheck()) { return(null); } try { using (var env = new AndroidJavaClass(C.AndroidOsEnvironment)) { return(env.CallStaticAJO(methodName, args).GetAbsolutePath()); } } catch (Exception e) { Debug.LogWarning(string.Format("Failed to get directory {0} on {1}, Error: {2}", methodName, C.AndroidOsEnvironment, e.Message)); return(null); } }
/// <summary> /// Loads Texture2D from URI /// </summary> /// <returns>The from URI internal.</returns> /// <param name="uri">URI.</param> public static Texture2D TextureFromUriInternal(string uri) { if (string.IsNullOrEmpty(uri)) { return(null); } using (var resolver = ContentResolver) { var uriAjo = AndroidUri.Parse(uri); AndroidJavaObject bitmapAjo; try { var stream = resolver.CallAJO("openInputStream", uriAjo); using (var c = new AndroidJavaClass(C.AndroidGraphicsBitmapFactory)) { bitmapAjo = c.CallStaticAJO("decodeStream", stream); } var compressFormatPng = new AndroidJavaClass(C.AndroidGraphicsBitmapCompressFormat).GetStatic <AndroidJavaObject>("PNG"); var outputStream = new AndroidJavaObject(C.JavaIoBytearrayOutputStream); bitmapAjo.CallBool("compress", compressFormatPng, 100, outputStream); byte[] buffer = outputStream.Call <byte[]>("toByteArray"); var tex = new Texture2D(2, 2); tex.LoadImage(buffer); return(tex); } catch (Exception ex) { if (Debug.isDebugBuild) { Debug.LogException(ex); } return(null); } } }
public AndroidJavaObject ToAjo() { var identityClass = new AndroidJavaClass("im.getsocial.sdk.usermanagement.AuthIdentity"); return(identityClass.CallStaticAJO("createCustomIdentity", ProviderId, ProviderUserId, AccessToken)); }